Spec-Zone.ru › GTK 4.0

GtkMessageDialog

GtkMessageDialog — Удобное окно сообщения

Функции

GtkWidget * gtk_message_dialog_new ()
GtkWidget * gtk_message_dialog_new_with_markup ()
void gtk_message_dialog_set_markup ()
void gtk_message_dialog_format_secondary_text ()
void gtk_message_dialog_format_secondary_markup ()
GtkWidget * gtk_message_dialog_get_message_area ()

Свойства

GtkButtonsType buttons Запись / Только для создания
GtkWidget * message-area Чтение
GtkMessageType message-type Чтение / Запись / Только для создания
char * secondary-text Чтение / Запись
gboolean secondary-use-markup Чтение / Запись
char * text Чтение / Запись
gboolean use-markup Чтение / Запись

Типы и Значения

struct GtkMessageDialog
enum GtkMessageType
enum GtkButtonsType

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkWindow
                ╰── GtkDialog
                    ╰── GtkMessageDialog

Реализованные интерфейсы

GtkMessageDialog реализует GtkAccessible, GtkBuildable, GtkConstraintTarget, GtkNative, GtkShortcutManager и GtkRoot.

Файлы заголовков

#include <gtk/gtk.h>

Описание

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

Самый простой способ создать модальное диалоговое окно — использовать флаг GTK_DIALOG_MODAL, который вызовет gtk_window_set_modal() внутри. Диалоговое окно предотвратит взаимодействие с родительским окном до тех пор, пока оно не будет скрыто или уничтожено. Вы можете использовать сигнал “response”, чтобы узнать, когда пользователь закрыл диалоговое окно.

Пример использования модального диалогового окна:

Вы можете сделать немодальное GtkMessageDialog, просто опустив флаг GTK_DIALOG_MODAL:

GtkMessageDialog как GtkBuildable

Реализация GtkMessageDialog интерфейса GtkBuildable экспонирует область сообщения как внутренний дочерний элемент с именем «message_area».

Функции

gtk_message_dialog_new ()

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

Создаёт новый диалог с сообщением, являющийся простым диалогом с текстом, который пользователь может увидеть. Когда пользователь нажимает кнопку, генерируется сигнал «response» со значениями ID ответа из GtkResponseType. Подробнее см. GtkDialog.

Параметры

parent

родительский диалог, или NULL для отсутствия.

[allow-none]

flags

флаги

type

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

buttons

набор кнопок

message_format

строка формата в стиле printf, или NULL.

[allow-none]

...

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

Возвращаемое значение

новый GtkMessageDialog.

[transfer none]

gtk_message_dialog_new_with_markup ()

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

Создаёт новый диалог с сообщением, являющийся простым диалогом с текстом, форматированным с помощью языка разметки текста Pango. Когда пользователь нажимает кнопку, генерируется сигнал «response» со значениями ID ответа из GtkResponseType. Подробнее см. GtkDialog.

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

Параметры

parent

родительский диалог, или NULL для отсутствия.

[allow-none]

flags

флаги

type

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

buttons

набор кнопок

message_format

строка формата в стиле printf, или NULL.

[allow-none]

...

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

Возвращаемое значение

новый GtkMessageDialog

gtk_message_dialog_set_markup ()

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

Устанавливает текст диалога с сообщением на str, форматированный с помощью языка разметки текста Pango.

Параметры

message_dialog

a GtkMessageDialog

str

строка разметки (см. формат разметки Pango)

gtk_message_dialog_format_secondary_text ()

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

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

Параметры

message_dialog

a GtkMessageDialog

message_format

строка формата в стиле printf, или NULL.

[allow-none]

...

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

gtk_message_dialog_format_secondary_markup ()

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

Устанавливает вторичный текст диалога с сообщением на message_format (в стиле printf()), форматированный с помощью языка разметки текста Pango.

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

GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL;
dialog = gtk_message_dialog_new (parent_window,
                                 flags,
                                 GTK_MESSAGE_ERROR,
                                 GTK_BUTTONS_CLOSE,
                                 "Error reading “%s”: %s",
                                 filename,
                                 g_strerror (errno));
// Destroy the dialog when the user responds to it
// (e.g. clicks a button)

g_signal_connect (dialog, "response",
                  G_CALLBACK (gtk_window_destroy),
                  NULL);

Параметры

message_dialog

a GtkMessageDialog

message_format

строка разметки в стиле printf (см. формат разметки Pango), или NULL

...

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

gtk_message_dialog_get_message_area ()

GtkWidget *
gtk_message_dialog_get_message_area (GtkMessageDialog *message_dialog);

Возвращает область сообщения диалога. Это ящик, в котором упакованы основные и дополнительные метки диалога. Можно добавлять собственные дополнительные элементы в этот ящик, и они будут отображаться ниже этих меток. См. gtk_dialog_get_content_area() для соответствующей функции в родительском GtkDialog.

Параметры

message_dialog

a GtkMessageDialog

Возвращаемое значение

A GtkBox, соответствующий области «message area» в message_dialog .

[transfer none]

Типы и значения

struct GtkMessageDialog

struct GtkMessageDialog;

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

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

Элементы

GTK_MESSAGE_INFO

Сообщение информационного характера

GTK_MESSAGE_WARNING

Сообщение о предупреждении (некритичное)

GTK_MESSAGE_QUESTION

Вопрос, требующий выбора

GTK_MESSAGE_ERROR

Сообщение об ошибке (критичное)

GTK_MESSAGE_OTHER

Ни одно из вышеперечисленного

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

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

Обратите внимание, что GTK_BUTTONS_OK, GTK_BUTTONS_YES_NO и GTK_BUTTONS_OK_CANCEL не рекомендуются руководством по разработке интерфейса пользователя GNOME (GNOME Human Interface Guidelines).

Элементы

GTK_BUTTONS_NONE

нет кнопок

GTK_BUTTONS_OK

кнопка ОК

GTK_BUTTONS_CLOSE

кнопка Закрыть

GTK_BUTTONS_CANCEL

кнопка Отмена

GTK_BUTTONS_YES_NO

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

GTK_BUTTONS_OK_CANCEL

кнопки ОК и Отмена

Подробное описание свойств

Свойство “buttons”

  “buttons”                  GtkButtonsType

Кнопки, отображаемые в диалоговом окне сообщения.

Владелец: GtkMessageDialog

Флаги: Запись / Только для создания

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

Свойство “message-area”

  “message-area”             GtkWidget *

Объект GtkBox, соответствующий области с сообщением в этом диалоговом окне. Подробное описание этой области см. в gtk_message_dialog_get_message_area().

Владелец: GtkMessageDialog

Флаги: Чтение

Свойство “message-type”

  “message-type”             GtkMessageType

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

Владелец: GtkMessageDialog

Флаги: Чтение / Запись / Создание

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

Свойство “secondary-text”

  “secondary-text”           char *

Дополнительный текст диалогового окна сообщения.

Владелец: GtkMessageDialog

Флаги: Чтение / Запись

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

Свойство “secondary-use-markup”

  “secondary-use-markup”     gboolean

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

Владелец: GtkMessageDialog

Флаги: Чтение / Запись

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

Свойство “text”

  “text”                     char *

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

Владелец: GtkMessageDialog

Флаги: Чтение / Запись

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

Свойство “use-markup”

  “use-markup”               gboolean

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

Владелец: GtkMessageDialog

Флаги: Чтение / Запись

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

См. также

GtkDialog

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkMessageDialog.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API