Spec-Zone.ru › GTK 4.0

GtkOverlay

GtkOverlay — Контейнер, который накладывает виджеты друг на друга

Функции

GtkWidget * gtk_overlay_new ()
void gtk_overlay_set_child ()
GtkWidget * gtk_overlay_get_child ()
void gtk_overlay_add_overlay ()
void gtk_overlay_remove_overlay ()
gboolean gtk_overlay_get_measure_overlay ()
void gtk_overlay_set_measure_overlay ()
gboolean gtk_overlay_get_clip_overlay ()
void gtk_overlay_set_clip_overlay ()

Свойства

GtkWidget * child Чтение / Запись

Сигналы

gboolean get-child-position Выполняется последним

Типы и значения

GtkOverlay

Иерархия объектов

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkOverlay

Реализованные интерфейсы

GtkOverlay реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.

Включения

#include <gtk/gtk.h>

Описание

GtkOverlay — это контейнер, который содержит один главный дочерний элемент, поверх которого он может разместить «наложение» виджетов. Позиция каждого наложенного виджета определяется его свойствами “halign” и “valign”. Например, виджет с обоими выравниваниями, установленными на GTK_ALIGN_START, будет размещен в верхнем левом углу контейнера GtkOverlay, в то время как наложение с halign, установленным на GTK_ALIGN_CENTER, и valign, установленным на GTK_ALIGN_END, будет расположено на нижнем краю GtkOverlay, по горизонтали по центру. Положение можно настроить, задав поля отступа дочернего элемента отличными от нуля.

Более сложная позиционирование наложений возможна с помощью подключения к сигналу “get-child-position”.

Минимальные и естественные размеры наложения — это размеры его главного дочернего элемента. Размеры наложенных дочерних элементов не учитываются при измерении этих предпочтительных размеров.

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.

gtk_overlay_set_child ()

void
gtk_overlay_set_child (GtkOverlay *overlay,
                       GtkWidget *child);

Устанавливает дочерний виджет для overlay .

Параметры

overlay

объект GtkOverlay

child

дочерний виджет.

[allow-none]

gtk_overlay_get_child ()

GtkWidget *
gtk_overlay_get_child (GtkOverlay *overlay);

Получает дочерний виджет для overlay .

Параметры

overlay

объект GtkOverlay

Возвращает

дочерний виджет для overlay .

[nullable][transfer none]

gtk_overlay_add_overlay ()

void
gtk_overlay_add_overlay (GtkOverlay *overlay,
                         GtkWidget *widget);

Добавляет widget к overlay .

Виджет будет размещён поверх основного виджета, добавленного с помощью gtk_overlay_set_child().

Положение widget определяется его свойствами “halign” и “valign”.

Параметры

overlay

объект GtkOverlay

widget

виджет GtkWidget, который необходимо добавить в контейнер

gtk_overlay_remove_overlay ()

void
gtk_overlay_remove_overlay (GtkOverlay *overlay,
                            GtkWidget *widget);

Удаляет наложение, добавленное с помощью gtk_overlay_add_overlay().

Параметры

overlay

объект GtkOverlay

widget

виджет GtkWidget, который необходимо удалить

gtk_overlay_get_measure_overlay ()

gboolean
gtk_overlay_get_measure_overlay (GtkOverlay *overlay,
                                 GtkWidget *widget);

Получает, включён ли размер widget в вычисление размера overlay .

Параметры

overlay

объект GtkOverlay

widget

дочерний виджет GtkOverlay

Возвращает

включён ли виджет в вычисление размера

gtk_overlay_set_measure_overlay ()

void
gtk_overlay_set_measure_overlay (GtkOverlay *overlay,
                                 GtkWidget *widget,
                                 gboolean measure);

Устанавливает, включён ли widget в вычисление размера overlay .

Наложение запросит размер самого большого дочернего виджета, для которого это свойство установлено в TRUE. Виджеты, которые не включены, могут быть нарисованы вне области overlay, если они слишком велики.

Параметры

overlay

объект GtkOverlay

widget

дочерний виджет GtkOverlay

measure

включать ли виджет в вычисление размера

gtk_overlay_get_clip_overlay ()

gboolean
gtk_overlay_get_clip_overlay (GtkOverlay *overlay,
                              GtkWidget *widget);

Получает, должен ли widget быть обрезано в родительском элементе.

Параметры

overlay

объект GtkOverlay

widget

дочерний виджет GtkOverlay

Возвращает

нужно ли обрезать виджет в родительском элементе.

gtk_overlay_set_clip_overlay ()

void
gtk_overlay_set_clip_overlay (GtkOverlay *overlay,
                              GtkWidget *widget,
                              gboolean clip_overlay);

Устанавливает, должен ли widget быть обрезано в родительском элементе.

Параметры

overlay

объект GtkOverlay

widget

дочерний виджет GtkOverlay

clip_overlay

обрезать ли виджет

Типы и значения

GtkOverlay

typedef struct _GtkOverlay GtkOverlay;

Подробности свойств

Свойство “child”

  “child”                    GtkWidget *

Дочерний виджет.

Владелец: GtkOverlay

Флаги: Чтение/Запись

Подробности сигналов

Сигнал “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 был заполнен

Флаги: Выполняется последним

© 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/GtkOverlay.html

Spec-Zone.ru

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