GtkHeaderBar
GtkHeaderBar — Прямоугольник с центрированным дочерним элементом
Функции
| GtkWidget * | gtk_header_bar_new () |
| void | gtk_header_bar_set_title_widget () |
| GtkWidget * | gtk_header_bar_get-title-widget () |
| void | gtk_header_bar_pack-start () |
| void | gtk_header_bar_pack-end () |
| void | gtk_header_bar_remove () |
| void | gtk_header_bar_set-show-title-buttons () |
| gboolean | gtk_header_bar_get-show-title-buttons () |
| void | gtk_header_bar_set-decoration-layout () |
| const char * | gtk_header_bar_get-decoration-layout () |
Свойства
| char * | decoration-layout | Чтение / Запись |
| gboolean | show-title-buttons | Чтение / Запись |
| GtkWidget * | title-widget | Чтение / Запись |
Типы и значения
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkHeaderBar
Реализованные интерфейсы
GtkHeaderBar реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkHeaderBar похож на горизонтальный GtkBox. Он позволяет размещать дочерние элементы в начале или конце. Кроме того, он позволяет отображать заголовок окна. Заголовок будет центрирован относительно ширины прямоугольника, даже если дочерние элементы с обеих сторон занимают разное пространство.
GtkHeaderBar может добавлять стандартные элементы управления рамкой окна, такие как кнопки минимизации, максимизации и закрытия, или значок окна.
По этим причинам GtkHeaderBar является естественным выбором для использования в качестве пользовательского виджета заголовка окна GtkWindow (см. gtk_window_set_titlebar()), поскольку он предоставляет функции, типичные для заголовков, при этом позволяя добавлять дочерние виджеты.
Реализация GtkHeaderBar интерфейса GtkBuildable поддерживает добавление дочерних элементов в начало или конец, указывая «начало» или «конец» в качестве атрибута «тип» элемента <child>, или устанавливая виджет заголовка, задавая значение «заголовок».
По умолчанию GtkHeaderBar использует GtkLabel, отображающий заголовок окна, в котором он находится, в качестве виджета заголовка, что эквивалентно следующему определению пользовательского интерфейса:
CSS узлы
<object class="GtkHeaderBar">
<property name="title-widget">
<object class="GtkLabel">
<property name="label" translatable="yes">Label</property>
<property name="single-line-mode">True</property>
<property name="ellipsize">end</property>
<property name="width-chars">5</property>
<style>
<class name="title"/>
</style>
</object>
</property>
</object>CSS узел GtkHeaderBar называется headerbar. Он содержит подузел windowhandle, который содержит поднод box, который содержит два поднода box в начале и конце заголовка, а также узел центра, который представляет заголовок.
Каждый из прямоугольников содержит поднод windowcontrols, см. GtkWindowControls для получения подробностей, а также другие дочерние элементы.
Удобство доступа
GtkHeaderBar использует роль GTK_ACCESSIBLE_ROLE_GROUP.
Функции
gtk_header_bar_new ()
GtkWidget *
gtk_header_bar_new (void); Создаёт новый виджет GtkHeaderBar.
Возвращаемое значение
новый GtkHeaderBar
gtk_header_bar_set_title_widget ()
void gtk_header_bar_set_title_widget (GtkHeaderBar *bar,GtkWidget *title_widget);
Устанавливает заголовок для GtkHeaderBar.
При значении NULL, верхняя панель отобразит заголовок окна, в котором она содержится.
Заголовок должен помочь пользователю идентифицировать текущий вид. Для достижения того же стиля, что и встроенный заголовок, используйте класс стиля «title».
Вы должны установить виджет заголовка в NULL, чтобы метка заголовка окна снова стала видимой.
Параметры
bar | ||
title_widget | виджет, используемый для заголовка. | [allow-none] |
gtk_header_bar_get_title_widget ()
GtkWidget *
gtk_header_bar_get_title_widget (GtkHeaderBar *bar); Возвращает виджет заголовка панели. См. gtk_header_bar_set_title_widget().
Параметры
bar |
Возвращаемое значение
виджет заголовка панели, или NULL если явно не был задан.
[nullable][transfer none]
gtk_header_bar_pack_start ()
void gtk_header_bar_pack_start (GtkHeaderBar *bar,GtkWidget *child);
Добавляет child в bar, размещая его относительно начала bar.
Параметры
bar | ||
child | the GtkWidget для добавления в |
gtk_header_bar_pack_end ()
void gtk_header_bar_pack_end (GtkHeaderBar *bar,GtkWidget *child);
Добавляет child в bar, размещая его относительно конца bar.
Параметры
bar | ||
child | the GtkWidget для добавления в |
gtk_header_bar_remove ()
void gtk_header_bar_remove (GtkHeaderBar *bar,GtkWidget *child);
Удаляет элемент из bar после добавления его с помощью gtk_header_bar_pack_start(), gtk_header_bar_pack_end() или gtk_header_bar_set_title_widget().
Параметры
bar | ||
child | элемент для удаления |
gtk_header_bar_set_show_title_buttons ()
void gtk_header_bar_set_show_title_buttons (GtkHeaderBar *bar,gboolean setting);
Устанавливает, отображать ли стандартные кнопки заголовка окна (закрыть, максимизировать, минимизировать).
Параметры
bar | ||
setting |
|
gtk_header_bar_get_show_title_buttons ()
gboolean
gtk_header_bar_get_show_title_buttons (GtkHeaderBar *bar); Возвращает, отображаются ли стандартные кнопки заголовка окна.
Параметры
bar |
Возвращаемое значение
TRUE если кнопки заголовка отображаются
gtk_header_bar_set_decoration-layout ()
void gtk_header_bar_set_decoration_layout (GtkHeaderBar *bar,const char *layout);
Устанавливает макет декораций для этой верхней панели, перезаписывая значение “gtk-decoration-layout”.
Существуют веские причины для перезаписи значения, такие как дизайн верхней панели, который не позволяет кнопкам занимать место справа, или предлагает место только для одной кнопки закрытия. Раздельные верхние панели — ещё один пример переопределения.
Формат строки — это имена кнопок, разделённые запятыми. Двоеточие разделяет кнопки, которые должны отображаться слева, от тех, что справа. Распознаваемые имена кнопок: minimize, maximize, close и icon (иконка окна).
Например, «icon:minimize,maximize,close» указывает иконку слева и кнопки minimize, maximize и close справа.
Параметры
bar | ||
layout | макет декораций, или | [allow-none] |
gtk_header_bar_get_decoration-layout ()
const char *
gtk_header_bar_get_decoration_layout (GtkHeaderBar *bar); Получает макет декораций, установленный с помощью gtk_header_bar_set_decoration_layout().
Параметры
bar |
Возвращаемое значение
макет декораций.
[nullable]
Типы и значения
GtkHeaderBar
typedef struct _GtkHeaderBar GtkHeaderBar;
Подробное описание свойств
Свойство “decoration-layout”
“decoration-layout” char *
Макет декораций для кнопок. Если это свойство не установлено, используется значение “gtk-decoration-layout”.
См. gtk_header_bar_set_decoration_layout() для получения информации о формате этой строки.
Владелец: GtkHeaderBar
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “show-title-buttons”
“show-title-buttons” gboolean
Определяет, отображать ли кнопки заголовка, такие как «закрыть», «минимизировать», «максимизировать».
Какие кнопки фактически отображаются и где определяется свойством “decoration-layout”, а также состоянием окна (например, кнопка закрытия не будет отображаться, если окно нельзя закрыть).
Владелец: GtkHeaderBar
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “title-widget”
“title-widget” GtkWidget *
Виджет заголовка для отображения.
Владелец: GtkHeaderBar
Флаги: Чтение / Запись
См. также
© 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/GtkHeaderBar.html