краткое описание#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); деталиgtkmessagedialogtypedef struct _gtkmessagedialog gtkmessagedialog; перечисление gtkmessagetypetypedef enum { gtk_message_info, gtk_message_warning, gtk_message_question, gtk_message_error } gtkmessagetype; тип сообщения которое будет отображено в диалоге.
перечисление gtkbuttonstypetypedef 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_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 для подробностей.
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);
начиная с версии 2.4 gtk_message_dialog_set_markup ()void gtk_message_dialog_set_markup (gtkmessagedialog *message_dialog, const gchar *str); устанавливает текст диалога сообщения как str, который маркирован pango text markup language.
начиная с версии 2.4 gtk_message_dialog_set_image ()void gtk_message_dialog_set_image (gtkmessagedialog *dialog, gtkwidget *image);
устанавливает значок диалога как
начиная с версии 2.10 gtk_message_dialog_format_secondary_text ()void gtk_message_dialog_format_secondary_text (gtkmessagedialog *message_dialog, const gchar *message_format, ...); устанавливает вторичный текст диалога сообщения как message_format (с printf()- стилем). помните эта установка вторичного текста делает первичный текст полужирным, если вы не обеспечили явную разметку.
начиная с версии 2.6 gtk_message_dialog_format_secondary_markup ()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);
начиная с версии 2.6 свойства деталейсвойство "buttons""buttons" gtkbuttonstype : write / construct only the buttons shown in the message dialog. значение по умолчанию: gtk_buttons_none свойство "
|