button_add = gtk_button_new_with_label('Добавить');

 button_clear = gtk_button_new_with_label('Очистить');

 button_hide_show = gtk_button_new_with_label('Спрятать/отобразить');

 gtk_box_pack_start(GTK_BOX(hbox), button_add,

  TRUE, TRUE, 0);

 gtk_box_pack_start(GTK_BOX(hbox), button_clear,

  TRUE, TRUE, 0);

 gtk_box_pack_start(GTK_BOX(hbox), button_hide_show,

  TRUE, TRUE, 0);

 /* Связываем обработчики */

 gtk_signal_connect_object(GTK_OBJECT(button_add),

  'clicked',

  GTK_SIGNAL_FUNC(button_add_clicked), (gpointer) clist);

  gtk_signal_connect_object(GTK_OBJECT(button_clear),

  'clicked',

  GTK_SIGNAL_FUNC(button_clear_clicked),(gpointer)clist);

 gtk_signal_connect_object(GTK_OBJECT(button_hide_show),

  'clicked', GTK_SIGNAL_FUNC(button_hide_show_clicked),

  (gpointer)clist);

 gtk_widget_show(button_add);

 gtk_widget_show(button_clear);

 gtk_widget_show(button_hide_show);

 gtk_widget_show(window);

 gtk_main();

 return(0);

}

Программа работает так: при нажатии кнопки Добавить создается список, состоящий из названий четырех популярных дистрибутивов Linux. Кнопка Очистить очищает список, а Спрятать/отобразить прячет или отображает заголовки списка. При щелчке на определенной ячейке списка на консоль выводится соответствующее сообщение — координаты ячейки и ее текст.

Рис 23.5.

< … стр. 639–640 … >

void destroy(GtkWidget *widget, gpointer data);

static void button_click(GtkWidget *widget, gpointer data);

int main(int argc, char *argv[]) {

 GtkWidget *window;

 GtkWidget *button;

 GtkWidget *label;

 w_ctrl ctrl;

 gchar *caption;

 setlocale(LC_ALL, 'ru_RU.KOI8-R');

 caption = g_strdup_printf('Доброго времени суток!');

 gtk_init(&argc, &argv);

 window = gtk_window_new( GTK_WINDOW_TOPLEVEL);

 gtk_signal_connect(GTK_OBJECT(window), 'delete_event',

  GTK_SIGNAL_FUNC(delete_event), NULL);

 gtk_signal_connect(GTK_OBJECT(window), 'destroy',

  GTK_SIGNAL_FUNC(destroy), &ctrl);

 gtk_window_set_title(GTK_WINDOW(window), caption);

 gtk_container_set_border_width(GTK_CONTAINER(window), 10);

 button = gtk_button_new();

 label = gtk_label_new(' -== Нажмите кнопку ==- ' );

 ctrl.app_window = window;

 ctrl.label = label;

 gtk_container_add(GTK_CONTAINER(button), label);

 gtk_container_add(GTK_CONTAINER(window), button);

 gtk_signal_connect(GTK_OBJECT(button), 'clicked',

  GTK_SIGNAL_FUNC(button_click), &ctrl);

 gtk_widget_show_all(window);

 gtk_main();

 return(0);

}

// ****************************************************

void quit_confirm(GtkWidget *widget) {

 GtkWidget *quit_form;

 GtkWidget *label;

 GtkWidget *yes_button, *no_button;

 quit_form = gtk_dialog_new();

 gtk_window_set_position(GTK_WINDOW(quit_form),

  GTK_WIN_POS_CENTER);

 gtk_container_set_border_width(GTK_CONTAINER(quit_form),

  10);

 label =

  gtk_label_new(' Вы действительно хотите выйти? *);

 yes_button = gtk_button_new_with_label('Да');

 no_button = gtk_button_new_with_label('Нет');

 gtk_signal_connect_object(GTK_OBJECT(yes_button),

  'clicked',

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату