Читаем Linux: Полное руководство полностью

 GtkWidget *entry) {

 domain = gtk_entry_get_text(GTK_ENTRY(entry));

 printf("Domain: %s\n", domain);

}

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

 GtkWidget *window; /* Окно */

 GtkWidget *button; /* Кнопка */

 GtkWidget *table; /* Таблица для размещения виджитов */

 GtkWidget *label; /* Надпись */

 /* Как видите, все виджиты одного типа — GtkWidget,

  поэтому мы могли бы обойтись даже тремя виджитами — для

  окна, таблицы и для всех остальных элементов GUI*/

 int i;

 /* Инициализация любой GTK-программы */

 gtk_init (&argc, &argv);

 /* Создаем новое окно */

 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

 /* Устанавливаем заголовок окна */

 gtk_window_set_title (GTK_WINDOW(window), "Resolver");

 /* Устанавливаем реакцию на кнопку закрытия окна.

  Сигнал - delete_event. Вызываем функцию delete_event(),

  которая описана выше */

 gtk_signal_connect (GTK_OBJECT (window), "delete_event",

  GTK_SIGNAL_FUNC(delete_event), NULL);

 /* Устанавливаем рамку окна */

 gtk_container_set_border_width(GTK_CONTAINER (window), 20);

 /* Создаем таблицу 3x3 */

 table = gtk_table_new (3, 3, TRUE);

 /* Помещаем таблицу в контейнер. Обязательно! */

 gtk_container_add(GTK_CONTAINER (window), table);

 /* Рисуем надписи, помещаем их в таблицу и отображаем.

  Обратите внимание, что в этом случае нам не нужно объявлять

  отдельную переменную для каждой надписи */

 label = gtk_label_new("Domain: ");

 /* О координатах ячеек поговорим после этого листинга */

 gtk_table_attach_defaults(GTK_TABLE(table),

  label, 0, 1, 0, 1);

 gtk_widget_show(label);

 label = gtk_label_new("DNS #1: ");

 gtk_table_attach_defaults(GTK_TABLE(table),

  label, 0, 1, 1, 2);

 gtk_widget_show(label);

 label = gtk_label_new("DNS #2: ");

 gtk_table_attach_defaults(GTK_TABLE(table),

  label, 0, 1, 2, 3);

 gtk_widget_show (label);

 /* Заполняем наш массив полей ввода. По аналогии с Delphi,

  я назвал массив edit[]*/

 for (i=0; i<3; i++) {

  /* Новое поле */

  edit[i] = gtk_entry_new();

  /* Если забыть этот оператор, пользователь ничего не

   сможет ввести */

  gtk_entry_set_editable(GTK_ENTRY(edit[i]), 1);

  /* Определяем одну для всех реакцию на сигнал activate -

   нажатие Enter*/

  gtk_signal_connect(GTK_OBJECT(edit[i]), "activate",

   GTK_SIGNAL_FUNC(enter_callback), edit[i]);

  /* Помещаем edit[i] в таблицу */

  gtk_table_attach_defaults (GTK_TABLE(table),

   edit[i], 1, 2, i, i+1);

  /* Показываем */

  gtk_widget_show(edit[i]);

 }

 /* Создаем кнопку "OK", помещаем в таблицу,

  определяем реакцию на нажатие и показываем */

 button = gtk_button_new_with_label("OK");

 gtk_table_attach_defaults(GTK_TABLE(table),

  button, 2, 3, 0, 1);

 gtk_signal_connect(GTK_OBJECT(button), "clicked",

Перейти на страницу:

Все книги серии Полное руководство

Похожие книги

Полное руководство по Microsoft Windows XP
Полное руководство по Microsoft Windows XP

В книге известного американского автора описывается среда ОС Windows XP и принципы ее функционирования, приведен сравнительный анализ Windows XP с предшествующими версиями операционной системы Windows. Рассматриваются вопросы применения и модификации нового интерфейса с целью получения прямого доступа ко всем функциям Windows XP обсуждаются варианты подключения к компьютерным сетям. Несколько разделов посвящены работе с реестром и конфигурационными файлами, мультимедийным функциям и разнообразным системным службам, а также методам решения проблем с программным обеспечением и оборудованием. Особое внимание уделено обеспечению безопасности операционной системы.Издание адресовано пользователям и сетевым администраторам, желающим активно применять возможности операционной системы Windows XP (в том числе и недокументированные).

Джон Поль Мюллер , Питер Нортон

ОС и Сети, интернет / ОС и Сети / Книги по IT