Spec-Zone.ru › GTK 3.24

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 ()

Свойства дочерних элементов

int индекс Чтение / Запись
gboolean пропуск Чтение / Запись

Сигналы

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_

новый индекс child в списке дочерних элементов наложения overlay, начиная с 0. Значение, меньшее нуля, означает конец списка

С: 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);
};

Члены

get_child_position ()

Сигнал, который генерируется для определения положения и размера дочерних виджетов наложения.

Подробное описание свойств дочерних элементов

Свойство дочернего элемента “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

Spec-Zone.ru

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