GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Style Properties |
GtkMessageDialogGtkMessageDialog Окно сообщений. |
#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);
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 |
Сообщение о критической ошибке |
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 |
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 |
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
void gtk_message_dialog_set_markup (GtkMessageDialog *message_dialog,
const gchar *str);
Устанавливает текст диалога сообщения как str, который маркирован Pango text markup language.
message_dialog : |
|
str : |
Маркированная строка (смотрите Pango markup format) |
Начиная с версии 2.4
void gtk_message_dialog_set_image (GtkMessageDialog *dialog,
GtkWidget *image);
Устанавливает значок диалога как image
.
|
|
|
изображение |
Начиная с версии 2.10
void gtk_message_dialog_format_secondary_text
(GtkMessageDialog *message_dialog,
const gchar *message_format,
...);
Устанавливает вторичный текст диалога сообщения как message_format (с printf()- стилем).
Помните эта установка вторичного текста делает первичный текст полужирным, если вы не обеспечили явную разметку.
message_dialog : |
|
message_format : |
printf()- стиль форматирования строки, или NULL |
... : |
Аргументы для message_format |
Начиная с версии 2.6
void gtk_message_dialog_format_secondary_markup
(GtkMessageDialog *message_dialog,
const gchar *message_format,
...);
Устанавливает вторичный текст сообщения как message_format (с printf()- стиль), который маркирован 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 : |
|
message_format : |
printf()- стиль маркированной строки (смотрите Pango markup format), или NULL |
... : |
Аргументы для message_format |
Начиная с версии 2.6
"buttons" GtkButtonsType : Write / Construct OnlyThe 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
Смотрите также