Spec-Zone.ru › GTK 3.22

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

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

gint индекс Чтение/Запись
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>.

Функции

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

новый индекс 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”                    gint

Индекс наложения в родительском элементе, -1 для основного дочернего элемента.

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

Допустимые значения: >= -1

Значение по умолчанию: 0

С: 3.18

Свойство дочернего элемента “pass-through”

  “pass-through”             gboolean

Пропускает ввод, не влияет на основной дочерний элемент.

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

Значение по умолчанию: 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

место для возврата размещения.

[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.gnome.org/gtk3/3.22/GtkOverlay.html

Spec-Zone.ru

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