Книга: Основы программирования в Linux

GtkMessageDialog

GtkMessageDialog

Для очень простых диалоговых окон даже тип GtkDialog излишне сложен.

GtkDialog
 +----GtkMessageDialog

С помощью типа GtkMessageDialog вы можете создать информационное диалоговое окно одной строкой программного кода.

GtkWidget* gtk_message_dialog_new(GtkWindow *parent,
 GtkDialogFlags flags, GtkMessageType type,
 GtkButtonsType buttons, const gchar *message_format, ...);

Эта функция создает диалоговое окно, снабженное пиктограммами, заголовком и настраиваемыми кнопками. Параметр type задает готовую пиктограмму и заголовок диалогового окна в соответствии с его предполагаемым назначением; например, окно с предупреждением содержит пиктограмму предупреждения в виде треугольника. Существует четыре возможных варианта для простых диалоговых окон, с которыми вы будете сталкиваться чаще всего:

? GTK_MESSAGE_INFO;

? GTK_MESSAGE_WARNING;

? GTK_MESSAGE_QUESTION;

? GTK_MESSAGE_ERROR.

Вы также можете выбрать значение GTK_MESSAGE_OTHER, применяемое в тех случаях, когда не используются перечисленные типы. Для окна типа GtkMessageDialog можно передать тип GtkButtonsType (табл. 16.4) вместо перечисления всех кнопок по очереди.

Таблица 16.4

Тип GtkButtonsType Описание
GTK_BUTTONS_OK Кнопка OK
GTK_BUTTONS_CLOSE Кнопка Close
GTK_BUTTONS_CANCEL Кнопка Cancel
GTK_BUTTONS_YES_NO Кнопки Yes и No
GTK_BUTTONS_OK_CANCEL Кнопки OK и Cancel
GTK_BUTTONS_NONE Нет кнопок

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

GtkWidget *dialog = gtk_message_dialog_new(main_window,
 GTK_DIALOG_DESTROY_WITH_PARENT,
 GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
 "Are you sure you wish to delete %s?", filename);
result = gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);

Это диалоговое окно будет отображаться так, как показано на рис. 16.14.


Рис. 16.14

Окно типа GtkMessageDialog — простейший способ обмена информацией или получения ответов на вопросы типа "да/нет". Вы воспользуетесь им в следующем разделе, когда примените полученные знания для создания GUI вашего приложения для работы с базой данных компакт-дисков.

Оглавление книги


Генерация: 2.148. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз