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 | Чтение/Запись/Конструирование |
Типы и значения
Иерархия объектов
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 | текст первой кнопки или | [allow-none] |
... | идентификатор ответа для первой кнопки, затем дополнительные кнопки, завершая список |
Возвращает
новый 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 | идентификатор ответа для |
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 | идентификатор ответа для кнопки |
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 | текст кнопки | |
... | идентификатор ответа для первой кнопки, затем пары «текст-идентификатор ответа», завершая список |
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 |
Возвращаемое значение
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 | ||
setting |
|
gtk_info_bar_get_revealed ()
gboolean
gtk_info_bar_get_revealed (GtkInfoBar *info_bar); Возвращает, отображается ли информационная панель в данный момент.
Параметры
info_bar |
Возвращаемое значение
текущее значение свойства “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 | ||
revealed | Новое значение свойства |
gtk_info_bar_add_child ()
void gtk_info_bar_add_child (GtkInfoBar *info_bar,GtkWidget *widget);
Добавляет виджет в область содержимого информационной панели.
Параметры
info_bar | ||
widget | виджет, который нужно добавить |
gtk_info_bar_remove_child ()
void gtk_info_bar_remove_child (GtkInfoBar *info_bar,GtkWidget *widget);
Удаляет виджет из области содержимого информационной панели после добавления с помощью gtk_info_bar_add_child().
Параметры
info_bar | ||
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 | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Выполнить последним
См. также
© 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