Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Properties  |  Style Properties

GtkMessageDialog

GtkMessageDialog Окно сообщений.

Краткое описание

#include <gtk/gtk.h> GtkMessageDialog; enum GtkMessageType; enum GtkButtonsType; GtkWidget* gtk_message_dialog_new (GtkWindow *parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, const gchar *message_format, ...); GtkWidget* gtk_message_dialog_new_with_markup (GtkWindow *parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, const gchar *message_format, ...); void gtk_message_dialog_set_markup (GtkMessageDialog *message_dialog, const gchar *str); void gtk_message_dialog_set_image (GtkMessageDialog *dialog, GtkWidget *image); void gtk_message_dialog_format_secondary_text (GtkMessageDialog *message_dialog, const gchar *message_format, ...); void gtk_message_dialog_format_secondary_markup (GtkMessageDialog *message_dialog, const gchar *message_format, ...);

Иерархия объектов

GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkContainer +----GtkBin +----GtkWindow +----GtkDialog +----GtkMessageDialog

Осуществляемые интерфейсы

GtkMessageDialog осуществляет AtkImplementorIface.

Свойства

"buttons" GtkButtonsType : Write / Construct Only "image" GtkWidget : Read / Write "message-type" GtkMessageType : Read / Write / Construct "secondary-text" gchararray : Read / Write "secondary-use-markup" gboolean : Read / Write "text" gchararray : Read / Write "use-markup" gboolean : Read / Write

Свойства стиля

"message-border" gint : Read "use-separator" gboolean : Read

Описание

GtkMessageDialog представляет диалог с изображением типа сообщения (Error, Question, etc.) расположенным рядом с некоторым текстом. Это просто удобный виджет; вы можете сконструировать эквивалент GtkMessageDialog из GtkDialog без больших усилий, но GtkMessageDialog сохраняет тип.

Легчайший путь выполнить модальный диалог сообщения это использование gtk_dialog_run(), хотя вы можете поместить флаг GTK_DIALOG_MODAL, gtk_dialog_run() автоматически создаёт диалог модальным и ожидает ответа от пользователя. gtk_dialog_run() возвращает когда нажата какая нибудь кнопка диалога.

Пример 2. Модальный диалог.

dialog = gtk_message_dialog_new (main_application_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Error loading file '%s': %s", filename, g_strerror (errno)); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog);

Вы можете сделать не модальный диалог GtkMessageDialog как показано в следующем примере:

Пример 3. Не модальный диалог.

dialog = gtk_message_dialog_new (main_application_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Error loading file '%s': %s", filename, g_strerror (errno)); /* Закрывает диалог когда пользователь отреагировал на него (например нажал кнопку) */ g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog);

Детали

GtkMessageDialog

typedef struct _GtkMessageDialog GtkMessageDialog;

перечисление GtkMessageType

typedef enum { GTK_MESSAGE_INFO, GTK_MESSAGE_WARNING, GTK_MESSAGE_QUESTION, GTK_MESSAGE_ERROR } GtkMessageType;

Тип сообщения которое будет отображено в диалоге.

GTK_MESSAGE_INFO

Информационное сообщение

GTK_MESSAGE_WARNING

Не критическое предупреждение

GTK_MESSAGE_QUESTION

Вопрос нуждающийся в выборе

GTK_MESSAGE_ERROR

Сообщение о критической ошибке


перечисление GtkButtonsType

typedef enum { GTK_BUTTONS_NONE, GTK_BUTTONS_OK, GTK_BUTTONS_CLOSE, GTK_BUTTONS_CANCEL, GTK_BUTTONS_YES_NO, GTK_BUTTONS_OK_CANCEL } GtkButtonsType;

Предварительно подготовленные кнопки для диалога. Если нет соответствующей альтернативы, просто используется GTK_BUTTONS_NONE затем вызывается gtk_dialog_add_buttons().

GTK_BUTTONS_NONE

Нет никаких кнопок

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_message_dialog_new ()

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

Создаёт новый диалог сообщения, который является простым диалогом со значком, указывающим тип сообщения (error, warning, etc.) и некоторым текстом который может видеть пользователь. Когда пользователь нажимает кнопку издаётся сигнал "response" с ответным IDs из GtkResponseType. Смотрите GtkDialog для подробностей.

parent :

Переходный родитель, или NULL

flags :

флаги

type :

Тип сообщения

buttons :

Установка используемых кнопок

message_format :

printf()- стиль форматирования стоки, или NULL

... :

Аргументы для message_format

Возвращает :

новый GtkMessageDialog


gtk_message_dialog_new_with_markup ()

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

Создаёт новый диалог сообщение, который является простым диалогом со значком, указывающим тип сообщения (error, warning, etc.) и некоторым текстом который маркирован с Pango text markup language. Когда пользователь нажимает кнопку издаётся сигнал "response" с ответным IDs из GtkResponseType. Смотрите GtkDialog для подробностей.

Специальные символы XML помещаемые как аргументы в printf() будут автоматически сброшены по необходимости. (Смотрите g_markup_printf_escaped() чтобы понять как это осуществляется.) Обычно это всё что вам нужно, но если вы хотите в качестве метки использовать существующую строку маркированную Pango, то вам нужно использовать gtk_message_dialog_set_markup(), так как вы не сможете поместить любую маркированную строку как формат (может содержать символы '%') или как строковый аргумент.

GtkWidget *dialog; dialog = gtk_message_dialog_new (main_application_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, NULL); gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog), markup);

parent :

Переходный родитель, или NULL

flags :

флаги

type :

Тип сообщения

buttons :

Установленные кнопки для использования

message_format :

printf()- стиль форматирования строки, или NULL

... :

Аргументы для message_format

Возвращает :

новый GtkMessageDialog

Начиная с версии 2.4


gtk_message_dialog_set_markup ()

void gtk_message_dialog_set_markup (GtkMessageDialog *message_dialog, const gchar *str);

Устанавливает текст диалога сообщения как str, который маркирован Pango text markup language.

message_dialog :

GtkMessageDialog

str :

Маркированная строка (смотрите Pango markup format)

Начиная с версии 2.4


gtk_message_dialog_set_image ()

void gtk_message_dialog_set_image (GtkMessageDialog *dialog, GtkWidget *image);

Устанавливает значок диалога как image.

dialog :

GtkMessageDialog

image :

изображение

Начиная с версии 2.10


gtk_message_dialog_format_secondary_text ()

void gtk_message_dialog_format_secondary_text (GtkMessageDialog *message_dialog, const gchar *message_format, ...);

Устанавливает вторичный текст диалога сообщения как message_formatprintf()- стилем).

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

message_dialog :

GtkMessageDialog

message_format :

printf()- стиль форматирования строки, или NULL

... :

Аргументы для message_format

Начиная с версии 2.6


gtk_message_dialog_format_secondary_markup ()

void gtk_message_dialog_format_secondary_markup (GtkMessageDialog *message_dialog, const gchar *message_format, ...);

Устанавливает вторичный текст сообщения как message_formatprintf()- стиль), который маркирован Pango text markup language.

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

Из-за оплошности, эта функция не сбрасывает специальные символы XML как это делает gtk_message_dialog_new_with_markup(). Поэтому, если параметры содержат специальные символы XML, вы должны использовать g_markup_printf_escaped() для их сброса.

gchar *msg; msg = g_markup_printf_escaped (message_format, ...); gtk_message_dialog_format_secondary_markup (message_dialog, "%s", msg); g_free (msg);

message_dialog :

GtkMessageDialog

message_format :

printf()- стиль маркированной строки (смотрите Pango markup format), или NULL

... :

Аргументы для message_format

Начиная с версии 2.6

Свойства деталей

Свойство "buttons"

  "buttons"              GtkButtonsType        : Write / Construct Only

The buttons shown in the message dialog.

Значение по умолчанию: GTK_BUTTONS_NONE


Свойство "image"

  "image"                GtkWidget             : Read / Write

Изображение для этого диалога.

Начиная с версии 2.10


Свойство "message-type"

  "message-type"         GtkMessageType        : Read / Write / Construct

Тип сообщения.

Значение по умолчанию: GTK_MESSAGE_INFO


Свойство "secondary-text"

  "secondary-text"       gchararray            : Read / Write

Вторичный текст диалога сообщения.

Значение по умолчанию: NULL

Начиная с версии 2.10


Свойство "secondary-use-markup"

  "secondary-use-markup" gboolean              : Read / Write

TRUE если вторичный текст диалога включает Pango маркировку. Смотрите pango_parse_markup().

Значение по умолчанию: FALSE

Начиная с версии 2.10


Свойство "text"

  "text"                 gchararray            : Read / Write

Первичный текст диалога сообщений. Если диалог имеет вторичный текст, первичный выглядит как заголовок.

Значение по умолчанию: NULL

Начиная с версии 2.10


Свойство "use-markup"

  "use-markup"           gboolean              : Read / Write

TRUE если первичный текст диалога включает Pango маркировку. Смотрите pango_parse_markup().

Значение по умолчанию: FALSE

Начиная с версии 2.10



Свойства деталей стиля

Свойство стиля "message-border"

  "message-border"       gint                  : Read

Ширина кромки вокруг метки и изображения в диалоге сообщения.

Допустимые значения: >= 0

Значение по умолчанию: 12


Свойство стиля "use-separator"

  "use-separator"        gboolean              : Read

Включать ли разделитель между текстом диалога сообщения и кнопками.

Значение по умолчанию: FALSE

Смотрите также

GtkDialog