GtkOverlay
GtkOverlay — Контейнер, который накладывает виджеты друг на друга
Функции
Свойства дочерних элементов
| gint | индекс | Чтение/Запись |
| gboolean | пропускание | Чтение/Запись |
Типы и значения
| struct | GtkOverlay |
| struct | GtkOverlayClass |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkContainer ╰── GtkBin ╰── GtkOverlay
Реализованные интерфейсы
GtkOverlay реализует AtkImplementorIface и GtkBuildable.
Файлы включения
#include <gtk/gtk.h>
Описание
GtkOverlay — это контейнер, который содержит один главный дочерний элемент, поверх которого он может размещать виджеты-«наложения». Позиция каждого виджета-наложения определяется его свойствами “halign” и “valign”. Например, виджет с обоими выравниваниями, установленными в GTK_ALIGN_START, будет размещён в левом верхнем углу контейнера GtkOverlay, а наложение с halign, установленным в GTK_ALIGN_CENTER, и valign, установленным в GTK_ALIGN_END, будет расположено в нижней части GtkOverlay, по горизонтали по центру. Позицию можно скорректировать, установив свойства отступов дочернего элемента на значения, отличные от нуля.
Более сложные расположения наложений возможны, подключившись к сигналу “получение-позиции-дочернего-элемента”.
GtkOverlay как GtkBuildable
Реализация GtkOverlay интерфейса GtkBuildable поддерживает размещение дочернего элемента в качестве наложения, указав «overlay» в качестве атрибута «type» элемента <child>.
Функции
gtk_overlay_new ()
GtkWidget *
gtk_overlay_new (void); Создаёт новый GtkOverlay.
Возвращаемое значение
новый объект GtkOverlay.
С: 3.2
gtk_overlay_add_overlay ()
void gtk_overlay_add_overlay (GtkOverlay *overlay,GtkWidget *widget);
Добавляет widget в overlay.
Виджет будет расположен поверх основного виджета, добавленного с помощью gtk_container_add().
Положение widget определяется его свойствами “halign” и “valign”.
Параметры
overlay | объект GtkOverlay | |
widget | GtkWidget, который будет добавлен в контейнер |
С: 3.2
gtk_overlay_reorder_overlay ()
void gtk_overlay_reorder_overlay (GtkOverlay *overlay,GtkWidget *child,gint position);
Перемещает child в новое index в списке overlay дочерних элементов. Список содержит наложения в порядке их добавления в overlay.
Индекс виджета в списке overlay дочерних элементов определяет порядок отрисовки дочерних элементов при перекрытии. Первый дочерний элемент рисуется снизу. Это также влияет на порядок фокуса по умолчанию.
Параметры
overlay | объект GtkOverlay | |
child | накладываемый GtkWidget, который нужно переместить | |
position | новый индекс |
gtk_overlay_get_overlay_pass_through ()
gboolean gtk_overlay_get_overlay_pass_through (GtkOverlay *overlay,GtkWidget *widget);
Функция-обёртка для получения значения свойства “pass-through” дочернего элемента widget.
Параметры
overlay | объект GtkOverlay | |
widget | дочерний элемент наложения GtkOverlay |
Возвращаемое значение
будет ли виджет пропускать вход.
С: 3.18
gtk_overlay_set_overlay_pass_through ()
void gtk_overlay_set_overlay_pass_through (GtkOverlay *overlay,GtkWidget *widget,gboolean pass_through);
Функция-обёртка для установки значения свойства “pass-through” дочернего элемента widget.
Параметры
overlay | объект GtkOverlay | |
widget | дочерний элемент наложения GtkOverlay | |
pass_through | должен ли дочерний элемент пропускать вход |
С: 3.18
Типы и значения
struct GtkOverlay
struct GtkOverlay;
struct GtkOverlayClass
struct GtkOverlayClass {
GtkBinClass parent_class;
gboolean (*get_child_position) (GtkOverlay *overlay,
GtkWidget *widget,
GtkAllocation *allocation);
};
Члены
| Сигнал, испускаемый для определения положения и размера дочерних виджетов наложения. |
Подробное описание свойств дочерних элементов
Свойство дочернего элемента “index”
“index” gint
Индекс наложения в родительском элементе, -1 для основного дочернего элемента.
Флаги: Чтение/Запись
Допустимые значения: >= -1
Значение по умолчанию: 0
Свойство дочернего элемента “pass-through”
“pass-through” gboolean
Пропускать вход, не влияет на основной дочерний элемент.
Флаги: Чтение/Запись
Значение по умолчанию: FALSE
Подробное описание сигналов
Сигнал “get-child-position”
gboolean user_function (GtkOverlay *overlay, GtkWidget *widget, GdkRectangle *allocation, gpointer user_data)
Сигнал ::get-child-position испускается для определения положения и размера дочерних виджетов наложения. Обработчик этого сигнала должен заполнить allocation желаемым положением и размером для widget, относительно 'главного' дочернего элемента overlay .
Обработчик по умолчанию для этого сигнала использует свойства widget halign и valign для определения позиции и присваивает виджету его естественный размер (за исключением того, что выравнивание GTK_ALIGN_FILL приведет к тому, что наложение будет занимать всю ширину/высоту). Если основной дочерний элемент является GtkScrolledWindow, наложения размещаются относительно его содержимого.
Параметры
overlay | объект GtkOverlay | |
widget | дочерний виджет для позиционирования | |
allocation | место возврата распределения. | [type Gdk.Rectangle][out caller-allocates] |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Возвращаемое значение
TRUE если allocation был заполнен
Флаги: Run Last
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkOverlay.html