GtkOverlay
GtkOverlay — Контейнер, который перекрывает виджеты друг над другом
Функции
| GtkWidget * | gtk_overlay_new () |
| void | gtk_overlay_add_overlay () |
| void | gtk_overlay_reorder_overlay () |
| gboolean | gtk_overlay_get_overlay_pass_through () |
| void | gtk_overlay_set_overlay_pass_through () |
Сигналы
| 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>.
Узлы CSS
GtkOverlay имеет единственный узел CSS с именем «overlay». Дочерние элементы перекрытия, чьи выравнивания приводят к их размещению на краю, получают классы стилей «.left», «.right», «.top» и/или «.bottom» в соответствии с их положением.
Функции
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,int index_);
Перемещает child в новую index в списке overlay дочерних элементов. Список содержит наложения в порядке их добавления в overlay по умолчанию. Также см. «index».
Индекс виджета в списке дочерних элементов overlay определяет порядок рисования дочерних элементов, если они перекрываются. Первый дочерний элемент рисуется снизу. Это также влияет на порядок цепочки фокуса по умолчанию.
Параметры
overlay | объект GtkOverlay | |
child | накладываемый GtkWidget, который нужно переместить | |
index_ | новый индекс |
С: 3.18
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” int
Индекс дочернего элемента наложения в родительском элементе (или -1 для основного дочернего элемента). См. gtk_overlay_reorder_overlay().
Владелец: GtkOverlay
Флаги: Чтение/Запись
Допустимые значения: >= -1
Значение по умолчанию: 0
С: 3.18
Свойство дочернего элемента “pass-through”
“pass-through” gboolean
Пропускать ли ввод через дочерний элемент наложения к основному дочернему элементу. (Конечно, это не имеет эффекта, если установлено на самом основном дочернем элементе.)
Владелец: GtkOverlay
Флаги: Чтение/Запись
Значение по умолчанию: FALSE
С: 3.18
Подробное описание сигналов
Сигнал “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 | место возврата назначения. | [тип Gdk.Rectangle][вызывающая сторона выделяет память] |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Возвращаемое значение
TRUE, если allocation был заполнен
Флаги: Последний запуск
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkOverlay.html