Чтение онлайн

на главную - закладки

Жанры

Linux: Полное руководство

Аллен Питер В.

Шрифт:

 gtk_widget_show(button);

 group = gtk_radio_button_group(GTK_RADIO_BUTTON(button));

 button =

gtk_radio_button_new_with_label(group, "Mandrake");

 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),

TRUE);

 gtk_box_pack_start(GTK_BOX(box2), button,

TRUE, TRUE, 0);

 gtk_widget_show(button);

 button = gtk_radio_button_new_with_label(

gtk_radio_button_group(GTK_RADIO_BUTTON(button)),

"ALT Linux");

 gtk_box_pack_start(GTK_BOX(box2), button,

TRUE, TRUE, 0);

 gtk_widget_show(button);

 separator = gtk_hseparator_new;

 gtk_box_pack_start(GTK_BOX(box1), separator,

FALSE, TRUE, 0);

 gtk_widget_show(separator);

 box2 = gtk_vbox_new(FALSE, 10);

 gtk_container_set_border_width(GTK_CONTAINER(box2), 10);

 gtk_box_pack_start(GTK_BOX(box1), box2, FALSE, TRUE, 0);

 gtk_widget_show(box2);

 button = gtk_button_new_with_label("OK");

 gtk_signal_connect_object(GTK_OBJECT (button),

"clicked", GTK_SIGNAL_FUNC(close_application),

GTK_OBJECT(window));

 gtk_box_pack_start(GTK_BOX (box2), button,

TRUE, TRUE, 0);

 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);

 gtk_widget_grab_default(button);

 gtk_widget_show(button);

 gtk_widget_show(window);

 gtk_main;

 return(0);

}

Рис. 23.4.

Зависимые переключатели

23.4.4. Список

Виджит CList представляет собой список, состоящий из нескольких колонок. Ячейки такого списка могут содержать текстовые значения. Мы можем обратиться отдельно к каждой ячейке списка. Создать список можно одной из функций:

GtkWidget *gtk_clist_new(gint columns);

GtkWidget *gtk_clist_new_with_titles(gint columns,

 gchar *titles[]);

Первая функция создает список без заголовков, а вторая с заголовками. Параметр columns задает число колонок.

Добавить элемент в список позволяют функции:

gint gtk_clist_prepend(GtkCList *clist, gchar *text[]);

gint gtk_clist_append(GtkCList *clist, gchar *text[]);

Первая функция добавляет новый элемент в начало списка, а вторая — в его конец. Если вам необходимо вставить элемент в определенную позицию, вам нужно использовать

функцию:

void gtk_clist_insert(GtkCList *clist, gint row, gchar *text[]);

Она позволяет вставить новый элемент в строку row. Нумерация строк списка начинается с 0.

Для удаления элементов списка можно использовать одну из функций:

void gtk_clist_remove(GtkCList *clist, gint row);

void gtk_clist_clear(GtkCList *clist);

Первая удаляет строку row, а вторая очищает весь список.

Рассмотрим листинг 23.8, в котором демонстрируется работа со списком CList. Программа снабжена подробными комментариями, поэтому рекомендую внимательно читать исходный код.

Листинг 23.8. Применение виджита CList

#include <gtk/gtk.h>

/* Нужен для функции setlocale */

#include <locale.h>

/* Добавляет список - обработчик кнопки Добавить */

void button_add_clicked(gpointer data) {

 int indx;

 /* Простой список */

 gchar *dist[4][2] = { { "1", "Red Hat Linux" },

{ "2", "Mandrake Linux" },

{ "3", "ALT Linux" },

{ "4", "ASP Linux" } };

 for(indx=0; indx < 4; indx++)

gtk_clist_append((GtkCList *) data, dist[indx]);

 return;

}

/* Обработчик нажатия кнопки Очистить */

void button_clear_clicked(gpointer data) {

 /* Очищаем список */

 gtk_clist_clear((GtkCList *)data);

 return;

}

/* Функция прячет/отображает заголовки */

void button_hide_show_clicked(gpointer data) {

 /* 0 = сейчас видим заголовки */

 static short int flag = 0;

 if (flag == 0) {

/* прячем заголовки */

gtk_clist_column_titles_hide((GtkCList *)data);

flag++;

 } else {

/* Отображаем заголовки */

gtk_clist_column_titles_show((GtkCList *)data);

 }

 return;

}

/* Данная функция будет вызвана, если пользователь выберет

 элемент */

void selection_made(GtkWidget *clist, gint row,

 gint column, GdkEventButton *event, gpointer data) {

 gchar *text;

 /* Получаем выбранный текст (элемент списка) */

Поделиться:
Популярные книги

Черный Маг Императора 10

Герда Александр
10. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 10

Прапорщик. Назад в СССР. Книга 6

Гаусс Максим
6. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 6

Ярар. Начало

Грехов Тимофей
1. Ярар
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ярар. Начало

Адвокат

Константинов Андрей Дмитриевич
1. Бандитский Петербург
Детективы:
боевики
8.00
рейтинг книги
Адвокат

Кодекс Охотника. Книга ХХ

Винокуров Юрий
20. Кодекс Охотника
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга ХХ

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Меченный смертью. Том 2

Юрич Валерий
2. Меченный смертью
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Меченный смертью. Том 2

Золото Советского Союза: назад в 1975

Майоров Сергей
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Золото Советского Союза: назад в 1975

Жена по ошибке

Ардова Алиса
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Жена по ошибке

Наследник, скрывающий свой Род

Тарс Элиан
2. Десять Принцев Российской Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Наследник, скрывающий свой Род

Барон ломает правила

Ренгач Евгений
11. Закон сильного
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Барон ломает правила

Личный аптекарь императора. Том 5

Карелин Сергей Витальевич
5. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
7.50
рейтинг книги
Личный аптекарь императора. Том 5

На границе империй. Том 3

INDIGO
3. Фортуна дама переменчивая
Фантастика:
космическая фантастика
5.63
рейтинг книги
На границе империй. Том 3

Кодекс Охотника. Книга XXXV

Винокуров Юрий
35. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXV