Spec-Zone.ru › GTK 4.0

GtkInfoBar

GtkInfoBar — Сообщать пользователю важные сообщения

Функции

GtkWidget * gtk_info_bar_new ()
GtkWidget * gtk_info_bar_new_with_buttons ()
void gtk_info_bar_add_action_widget ()
void gtk_info_bar_remove_action_widget ()
GtkWidget * gtk_info_bar_add_button ()
void gtk_info_bar_add_buttons ()
void gtk_info_bar_set_response_sensitive ()
void gtk_info_bar_set_default_response ()
void gtk_info_bar_response ()
void gtk_info_bar_set_message_type ()
GtkMessageType gtk_info_bar_get_message_type ()
gboolean gtk_info_bar_get_show_close_button ()
void gtk_info_bar_set_show_close_button ()
gboolean gtk_info_bar_get_revealed ()
void gtk_info_bar_set_revealed ()
void gtk_info_bar_add_child ()
void gtk_info_bar_remove_child ()

Свойства

GtkMessageType message-type Чтение/Запись/Конструирование
gboolean revealed Чтение/Запись
gboolean show-close-button Чтение/Запись/Конструирование

Сигналы

void close Действие
void response Последнее выполнение

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

GtkInfoBar

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkInfoBar

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

GtkInfoBar реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.

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

#include <gtk/gtk.h>

Описание

GtkInfoBar — виджет, который можно использовать для отображения сообщений пользователю без показа диалогового окна. Он часто временно отображается в верхней или нижней части документа. В отличие от GtkDialog, у которого область действий расположена внизу, у GtkInfoBar она расположена сбоку.

API GtkInfoBar очень похож на GtkDialog, что позволяет добавлять кнопки в область действий с помощью gtk_info_bar_add_button() или gtk_info_bar_new_with_buttons(). Чувствительность виджетов действий можно контролировать с помощью gtk_info_bar_set_response_sensitive().

Для добавления виджетов в основную область содержимого GtkInfoBar используйте gtk_info_bar_add_child().

Подобно GtkMessageDialog, содержимое GtkInfoBar можно классифицировать как сообщения об ошибках, предупреждения, информационные сообщения и т. д. с помощью gtk_info_bar_set_message_type(). GTK может использовать тип сообщения, чтобы определить, как отобразить сообщение.

Простой пример использования GtkInfoBar:

GtkWidget *message_label;
GtkWidget *widget;
GtkWidget *grid;
GtkInfoBar *bar;

// set up info bar
widget = gtk_info_bar_new ();
bar = GTK_INFO_BAR (widget);
grid = gtk_grid_new ();

message_label = gtk_label_new ("");
gtk_info_bar_add_child (bar, message_label);
gtk_info_bar_add_button (bar,
                         _("_OK"),
                         GTK_RESPONSE_OK);
g_signal_connect (bar,
                  "response",
                  G_CALLBACK (gtk_widget_hide),
                  NULL);
gtk_grid_attach (GTK_GRID (grid),
                 widget,
                 0, 2, 1, 1);

// ...

// show an error message
gtk_label_set_text (GTK_LABEL (message_label), "An error occurred!");
gtk_info_bar_set_message_type (bar, GTK_MESSAGE_ERROR);
gtk_widget_show (bar);

GtkInfoBar как GtkBuildable

Реализация GtkInfoBar интерфейса GtkBuildable предоставляет область содержимого и область действий как внутренние дочерние элементы с именами «content_area» и «action_area».

GtkInfoBar поддерживает пользовательский элемент <action-widgets>, который может содержать несколько элементов <action-widget>. Атрибут «response» указывает числовой ответ, а содержимое элемента — это идентификатор виджета (который должен быть дочерним элементом диалоговых окон action_area).

CSS узлы

GtkInfoBar имеет один CSS узел с именем infobar. Узел может получить один из стилей .info, .warning, .error или .question в зависимости от типа сообщения. Если информационная панель показывает кнопку закрытия, к этой кнопке будет применено свойство .close.

Функции

gtk_info_bar_new ()

GtkWidget *
gtk_info_bar_new (void);

Создаёт новый объект GtkInfoBar.

Возвращает

новый объект GtkInfoBar

gtk_info_bar_new_with_buttons ()

GtkWidget *
gtk_info_bar_new_with_buttons (const char *first_button_text,
                               ...);

Создаёт новый GtkInfoBar с кнопками. Пары «текст кнопки/идентификатор ответа» должны быть перечислены, завершая список указателем NULL. Идентификатор ответа может быть любым положительным числом или одним из значений в перечислении GtkResponseType. Если пользователь нажмёт одну из этих кнопок диалога, GtkInfoBar отправит сигнал «response» с соответствующим идентификатором ответа.

Параметры

first_button_text

текст первой кнопки или NULL.

[allow-none]

...

идентификатор ответа для первой кнопки, затем дополнительные кнопки, завершая список NULL

Возвращает

новый GtkInfoBar

gtk_info_bar_add_action_widget ()

void
gtk_info_bar_add_action_widget (GtkInfoBar *info_bar,
                                GtkWidget *child,
                                int response_id);

Добавляет активируемый виджет в область действий GtkInfoBar, подключив обработчик сигнала, который отправит сигнал “response” в области сообщения, когда виджет будет активирован. Виджет добавляется в конец области действий.

Параметры

info_bar

объект GtkInfoBar

child

активируемый виджет

response_id

идентификатор ответа для child

gtk_info_bar_remove_action_widget ()

void
gtk_info_bar_remove_action_widget (GtkInfoBar *info_bar,
                                   GtkWidget *widget);

Удаляет виджет из области действий info_bar после его добавления с помощью вызова gtk_info_bar_add_action_widget() или gtk_info_bar_add_button().

Параметры

info_bar

объект GtkInfoBar

widget

виджет действия для удаления

gtk_info_bar_add_button ()

GtkWidget *
gtk_info_bar_add_button (GtkInfoBar *info_bar,
                         const char *button_text,
                         int response_id);

Добавляет кнопку с заданным текстом и настраивает её так, что при нажатии на кнопку будет отправлен сигнал «response» с указанным идентификатором response_id. Кнопка добавляется в конец области действий информационной панели. Виджет кнопки возвращается, но обычно он не нужен.

Параметры

info_bar

объект GtkInfoBar

button_text

текст кнопки

response_id

идентификатор ответа для кнопки

Возвращает

виджет GtkButton, который был добавлен.

[transfer none][type Gtk.Button]

gtk_info_bar_add_buttons ()

void
gtk_info_bar_add_buttons (GtkInfoBar *info_bar,
                          const char *first_button_text,
                          ...);

Добавляет дополнительные кнопки, аналогично многократному вызову gtk_info_bar_add_button(). Список аргументов должен быть NULL-завершён, как и в gtk_info_bar_new_with_buttons(). Каждая кнопка должна иметь как текст, так и идентификатор ответа.

Параметры

info_bar

объект GtkInfoBar

first_button_text

текст кнопки

...

идентификатор ответа для первой кнопки, затем пары «текст-идентификатор ответа», завершая список NULL

gtk_info_bar_set_response_sensitive ()

void
gtk_info_bar_set_response_sensitive (GtkInfoBar *info_bar,
                                     int response_id,
                                     gboolean setting);

Вызывает gtk_widget_set_sensitive (widget, setting) для каждого виджета в области действий информационной панели с заданным идентификатором response_id. Удобный способ сделать кнопки диалога чувствительными/нечувствительными.

Параметры

info_bar

объект GtkInfoBar

response_id

идентификатор ответа

setting

TRUE для чувствительности

gtk_info_bar_set_default_response ()

void
gtk_info_bar_set_default_response (GtkInfoBar *info_bar,
                                   int response_id);

Устанавливает последний виджет в области действий информационной панели с заданным идентификатором response_id в качестве виджета по умолчанию для диалога. Нажатие «Ввод» обычно активирует виджет по умолчанию.

Обратите внимание, что эта функция в настоящее время требует info_bar для добавления в иерархию виджетов.

Параметры

info_bar

объект GtkInfoBar

response_id

идентификатор ответа

gtk_info_bar_response ()

void
gtk_info_bar_response (GtkInfoBar *info_bar,
                       int response_id);

Отправляет сигнал «response» с заданным response_id.

Параметры

info_bar

объект GtkInfoBar

response_id

идентификатор ответа

gtk_info_bar_set_message_type ()

void
gtk_info_bar_set_message_type (GtkInfoBar *info_bar,
                               GtkMessageType message_type);

Устанавливает тип сообщения для области сообщения.

GTK использует этот тип для определения способа отображения сообщения.

Параметры

info_bar

объект GtkInfoBar

message_type

значение GtkMessageType

gtk_info_bar_get_message_type ()

GtkMessageType
gtk_info_bar_get_message_type (GtkInfoBar *info_bar);

Возвращает тип сообщения для области сообщения.

Параметры

info_bar

объект GtkInfoBar

Возвращает

тип сообщения области сообщения.

gtk_info_bar_get_show_close_button ()

gboolean
gtk_info_bar_get_show_close_button (GtkInfoBar *info_bar);

Возвращает, будет ли виджет отображать стандартную кнопку закрытия.

Параметры

info_bar

a GtkInfoBar

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

TRUE если виджет отображает стандартную кнопку закрытия

gtk_info_bar_set_show_close_button ()

void
gtk_info_bar_set_show_close_button (GtkInfoBar *info_bar,
                                    gboolean setting);

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

Параметры

info_bar

a GtkInfoBar

setting

TRUE для включения кнопки закрытия

gtk_info_bar_get_revealed ()

gboolean
gtk_info_bar_get_revealed (GtkInfoBar *info_bar);

Возвращает, отображается ли информационная панель в данный момент.

Параметры

info_bar

a GtkInfoBar

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

текущее значение свойства “revealed”

gtk_info_bar_set_revealed ()

void
gtk_info_bar_set_revealed (GtkInfoBar *info_bar,
                           gboolean revealed);

Устанавливает свойство “revealed” в значение revealed. Изменение этого значения заставит info_bar раскрыться (TRUE) или скрыться (FALSE) с помощью плавного перехода.

Примечание: это не отображает или скрывает info_bar в смысле “visible”, поэтому раскрытие не имеет эффекта, если “visible” имеет значение FALSE.

Параметры

info_bar

a GtkInfoBar

revealed

Новое значение свойства

gtk_info_bar_add_child ()

void
gtk_info_bar_add_child (GtkInfoBar *info_bar,
                        GtkWidget *widget);

Добавляет виджет в область содержимого информационной панели.

Параметры

info_bar

a GtkInfoBar

widget

виджет, который нужно добавить

gtk_info_bar_remove_child ()

void
gtk_info_bar_remove_child (GtkInfoBar *info_bar,
                           GtkWidget *widget);

Удаляет виджет из области содержимого информационной панели после добавления с помощью gtk_info_bar_add_child().

Параметры

info_bar

a GtkInfoBar

widget

виджет, добавленный в область содержимого

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

GtkInfoBar

typedef struct _GtkInfoBar GtkInfoBar;

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

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

  “message-type”             GtkMessageType

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

Тип может использоваться для определения внешнего вида информационной панели.

Владелец: GtkInfoBar

Флаги: Чтение / Запись / Конструктор

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

Свойство “revealed”

  “revealed”                 gboolean

Управляет отображением содержимого информационной панели.

Владелец: GtkInfoBar

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

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

Свойство “show-close-button”

  “show-close-button”        gboolean

Включает ли стандартную кнопку закрытия.

Владелец: GtkInfoBar

Флаги: Чтение / Запись / Конструктор

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

Подробное описание сигналов

Сигнал “close”

void
user_function (GtkInfoBar *infobar,
               gpointer    user_data)

Сигнал ::close — это сигнал для назначенных сочетаний клавиш, который генерируется, когда пользователь использует сочетание клавиш для закрытия информационной панели.

По умолчанию для этого сигнала назначена клавиша Escape.

Параметры

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Действие

Сигнал “response”

void
user_function (GtkInfoBar *info_bar,
               int         response_id,
               gpointer    user_data)

Генерируется при нажатии виджета действия или при вызове программистом gtk_info_bar_response(). response_id зависит от нажатого виджета действия.

Параметры

info_bar

объект, на котором генерируется сигнал

response_id

идентификатор ответа

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполнить последним

См. также

GtkStatusbar, GtkMessageDialog

© 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/GtkInfoBar.html

Spec-Zone.ru

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