The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру