Spec-Zone.ru › GTK 3.20

GtkStack

GtkStack — Стек-контейнер

Функции

GtkWidget * gtk_stack_new ()
void gtk_stack_add_named ()
void gtk_stack_add_titled ()
GtkWidget * gtk_stack_get_child_by_name ()
void gtk_stack_set_visible-child ()
GtkWidget * gtk_stack_get_visible_child ()
void gtk_stack_set_visible_child_name ()
const gchar * gtk_stack_get_visible_child_name ()
void gtk_stack_set_visible_child_full ()
void gtk_stack_set_homogeneous ()
gboolean gtk_stack_get_homogeneous ()
void gtk_stack_set_hhomogeneous ()
gboolean gtk_stack_get_hhomogeneous ()
void gtk_stack_set_vhomogeneous ()
gboolean gtk_stack_get_vhomogeneous ()
void gtk_stack_set_transition_duration ()
guint gtk_stack_get_transition_duration ()
void gtk_stack_set_transition_type ()
GtkStackTransitionType gtk_stack_get_transition_type ()
gboolean gtk_stack_get_transition_running ()
gboolean gtk_stack_get_interpolate-size ()
void gtk_stack_set_interpolate-size ()

Свойства

gboolean hhomogeneous Чтение/Запись
gboolean homogeneous Чтение/Запись
gboolean interpolate-size Чтение/Запись
guint transition-duration Чтение/Запись
gboolean transition-running Чтение
GtkStackTransitionType transition-type Чтение/Запись
gboolean vhomogeneous Чтение/Запись
GtkWidget * visible-child Чтение/Запись
gchar * visible-child-name Чтение/Запись

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

gchar * иконное имя Чтение/Запись
gchar * имя Чтение/Запись
gboolean требует внимания Чтение/Запись
gint позиция Чтение/Запись
gchar * заголовок Чтение/Запись

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

структура GtkStack
перечисление GtkStackTransitionType

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkStack

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

GtkStack реализует AtkImplementorIface и GtkBuildable.

Включенные файлы

#include <gtk/gtk.h>

Описание

Виджет GtkStack — это контейнер, который отображает только один из своих дочерних элементов одновременно. В отличие от GtkNotebook, GtkStack не предоставляет пользователю возможность изменять видимый дочерний элемент. Вместо этого, для этой функциональности можно использовать виджет GtkStackSwitcher вместе с GtkStack.

Переходы между страницами могут быть анимированы как слайды или плавные переходы. Это можно контролировать с помощью gtk_stack_set_transition_type(). Эти анимации учитывают настройку “gtk-enable-animations”.

Виджет GtkStack был добавлен в GTK+ 3.10.

CSS-узлы

GtkStack имеет один CSS-узел под названием stack.

Функции

gtk_stack_new ()

GtkWidget *
gtk_stack_new (void);

Создаёт новый контейнер GtkStack.

Возвращает

новый GtkStack

С версии: 3.10

gtk_stack_add_named ()

void
gtk_stack_add_named (GtkStack *stack,
                     GtkWidget *child,
                     const gchar *name);

Добавляет дочерний элемент в stack. Дочерний элемент идентифицируется по name.

Параметры

stack

a GtkStack

child

виджет для добавления

name

имя для child

С версии: 3.10

gtk_stack_add_titled ()

void
gtk_stack_add_titled (GtkStack *stack,
                      GtkWidget *child,
                      const gchar *name,
                      const gchar *title);

Добавляет дочерний элемент в stack. Дочерний элемент идентифицируется по name. title будет использоваться GtkStackSwitcher для отображения child в строке вкладок, поэтому оно должно быть коротким.

Параметры

stack

a GtkStack

child

виджет для добавления

name

имя для child

title

человекопонятное имя для child

С версии: 3.10

gtk_stack_get_child_by_name ()

GtkWidget *
gtk_stack_get_child_by_name (GtkStack *stack,
                             const gchar *name);

Находит дочерний элемент GtkStack с заданным именем. Возвращает NULL, если такого дочернего элемента нет.

Параметры

stack

a GtkStack

name

имя искомого дочернего элемента

Возвращает

запрашиваемый дочерний элемент GtkStack.

[transfer none][nullable]

С версии: 3.12

gtk_stack_set_visible_child ()

void
gtk_stack_set_visible_child (GtkStack *stack,
                             GtkWidget *child);

Делает child видимым дочерним элементом stack.

Если child отличается от текущего видимого дочернего элемента, переход между ними будет анимирован с типом перехода stack.

Обратите внимание, что виджет child должен быть видимым (см. gtk_widget_show()), чтобы стать видимым дочерним элементом stack.

Параметры

stack

a GtkStack

child

дочерний элемент stack

С версии: 3.10

gtk_stack-get-visible-child ()

GtkWidget *
gtk_stack_get_visible_child (GtkStack *stack);

Возвращает текущий видимый дочерний элемент stack, или NULL, если видимых дочерних элементов нет.

Параметры

stack

a GtkStack

Возвращает

видимый дочерний элемент GtkStack.

[transfer none][nullable]

С версии: 3.10

gtk_stack_set_visible_child_name ()

void
gtk_stack_set_visible_child_name (GtkStack *stack,
                                  const gchar *name);

Делает видимым дочерний элемент с заданным именем.

Если child отличается от текущего видимого дочернего элемента, переход между ними будет анимирован с типом перехода stack.

Обратите внимание, что виджет дочернего элемента должен быть видимым (см. gtk_widget_show()), чтобы стать видимым дочерним элементом stack.

Параметры

stack

a GtkStack

name

имя дочернего элемента, который нужно сделать видимым

С версии: 3.10

gtk_stack_get_visible_child_name ()

const gchar *
gtk_stack_get_visible_child_name (GtkStack *stack);

Возвращает имя текущего видимого дочернего элемента stack, или NULL, если видимых дочерних элементов нет.

Параметры

stack

a GtkStack

Возвращает

имя видимого дочернего элемента GtkStack.

[transfer none][nullable]

С версии: 3.10

gtk_stack_set_visible_child_full ()

void
gtk_stack_set_visible_child_full (GtkStack *stack,
                                  const gchar *name,
                                  GtkStackTransitionType transition);

Делает видимым дочерний элемент с заданным именем.

Обратите внимание, что виджет дочернего элемента должен быть видимым (см. gtk_widget_show()), чтобы стать видимым дочерним элементом stack.

Параметры

stack

a GtkStack

name

имя дочернего элемента, который нужно сделать видимым

transition

тип перехода

С версии: 3.10

gtk_stack_set_homogeneous ()

void
gtk_stack_set_homogeneous (GtkStack *stack,
                           gboolean homogeneous);

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

Начиная с версии 3.16, однородность можно контролировать отдельно для горизонтального и вертикального размера с помощью свойств “hhomogeneous” и “vhomogeneous”.

Параметры

stack

a GtkStack

homogeneous

TRUE для установки однородности stack

С версии: 3.10

gtk_stack_get_homogeneous ()

gboolean
gtk_stack_get_homogeneous (GtkStack *stack);

Получает значение однородности stack. См. gtk_stack_set_homogeneous().

Параметры

stack

a GtkStack

Возвращаемое значение

значение однородности stack.

С версии: 3.10

gtk_stack_set_hhomogeneous ()

void
gtk_stack_set_hhomogeneous (GtkStack *stack,
                            gboolean hhomogeneous);

Устанавливает GtkStack в горизонтально однородный или неоднородный режим. Если он однородный, GtkStack запросит одинаковую ширину для всех своих дочерних элементов. Если нет, ширина стека может измениться, когда другой дочерний элемент станет видимым.

Параметры

stack

a GtkStack

hhomogeneous

TRUE для установки горизонтальной однородности stack

С версии: 3.16

gtk_stack_get_hhomogeneous ()

gboolean
gtk_stack_get_hhomogeneous (GtkStack *stack);

Получает значение горизонтальной однородности stack. См. gtk_stack_set_hhomogeneous().

Параметры

stack

a GtkStack

Возвращаемое значение

значение горизонтальной однородности stack.

С версии: 3.16

gtk_stack_set_vhomogeneous ()

void
gtk_stack_set_vhomogeneous (GtkStack *stack,
                            gboolean vhomogeneous);

Устанавливает GtkStack в вертикально однородный или неоднородный режим. Если он однородный, GtkStack запросит одинаковую высоту для всех своих дочерних элементов. Если нет, высота стека может измениться, когда другой дочерний элемент станет видимым.

Параметры

stack

a GtkStack

vhomogeneous

TRUE для установки вертикальной однородности stack

С версии: 3.16

gtk_stack_get_vhomogeneous ()

gboolean
gtk_stack_get_vhomogeneous (GtkStack *stack);

Получает значение вертикальной однородности stack. См. gtk_stack_set_vhomogeneous().

Параметры

stack

a GtkStack

Возвращаемое значение

значение вертикальной однородности stack.

С версии: 3.16

gtk_stack_set_transition_duration ()

void
gtk_stack_set_transition_duration (GtkStack *stack,
                                   guint duration);

Устанавливает продолжительность переходов между страницами в stack.

Параметры

stack

a GtkStack

duration

новая продолжительность в миллисекундах

С версии: 3.10

gtk_stack_get_transition_duration ()

guint
gtk_stack_get_transition_duration (GtkStack *stack);

Возвращает продолжительность (в миллисекундах) переходов между страницами в stack.

Параметры

stack

a GtkStack

Возвращаемое значение

продолжительность перехода

С версии: 3.10

gtk_stack_set_transition_type ()

void
gtk_stack_set_transition_type (GtkStack *stack,
                               GtkStackTransitionType transition);

Устанавливает тип анимации, который будет использоваться для переходов между страницами в stack. Доступны различные типы эффектов затемнения и слайдов.

Тип перехода можно изменять во время выполнения без проблем, поэтому можно изменить анимацию в зависимости от страницы, которая должна стать текущей.

Параметры

stack

a GtkStack

transition

новый тип перехода

С версии: 3.10

gtk_stack_get_transition_type ()

GtkStackTransitionType
gtk_stack_get_transition_type (GtkStack *stack);

Получает тип анимации, который будет использоваться для переходов между страницами в stack.

Параметры

stack

a GtkStack

Возвращаемое значение

текущий тип перехода stack

С версии: 3.10

gtk_stack_get_transition_running ()

gboolean
gtk_stack_get_transition_running (GtkStack *stack);

Возвращает, находится ли stack в данный момент в процессе перехода с одной страницы на другую.

Параметры

stack

a GtkStack

Возвращает

TRUE если переход выполняется, FALSE в противном случае.

С версии: 3.12

gtk_stack_get_interpolate_size ()

gboolean
gtk_stack_get_interpolate_size (GtkStack *stack);

Возвращает, настроен ли GtkStack на интерполяцию размеров дочерних элементов при переключении страниц.

Параметры

stack

A GtkStack

Возвращает

TRUE если размеры дочерних элементов интерполируются

С версии: 3.18

gtk_stack_set_interpolate_size ()

void
gtk_stack_set_interpolate_size (GtkStack *stack,
                                gboolean interpolate_size);

Устанавливает, будет ли stack интерполировать свой размер при изменении видимого дочернего элемента. Если свойство “interpolate-size” установлено в TRUE, stack будет интерполировать свой размер между текущим и тем, который он будет иметь после изменения видимого дочернего элемента, в соответствии с заданной продолжительностью перехода.

Параметры

stack

A GtkStack

interpolate_size

новое значение

С версии: 3.18

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

struct GtkStack

struct GtkStack;

enum GtkStackTransitionType

Эти перечисляемые значения описывают возможные переходы между страницами в виджете GtkStack.

В это перечисление со временем могут быть добавлены новые значения.

Элементы

GTK_STACK_TRANSITION_TYPE_NONE

Без перехода

GTK_STACK_TRANSITION_TYPE_CROSSFADE

Кроссфейд

GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT

Слайд справа налево

GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT

Слайд слева направо

GTK_STACK_TRANSITION_TYPE_SLIDE_UP

Слайд снизу вверх

GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN

Слайд сверху вниз

GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT

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

GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN

Слайд сверху вниз или снизу вверх в зависимости от порядка

GTK_STACK_TRANSITION_TYPE_OVER_UP

Закрыть старую страницу, сдвинув вверх. С версии 3.12

GTK_STACK_TRANSITION_TYPE_OVER_DOWN

Закрыть старую страницу, сдвинув вниз. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_OVER_LEFT

Закрыть старую страницу, сдвинув влево. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_OVER_RIGHT

Закрыть старую страницу, сдвинув вправо. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_UNDER_UP

Открыть новую страницу, сдвинув вверх. С версии 3.12

GTK_STACK_TRANSITION_TYPE_UNDER_DOWN

Открыть новую страницу, сдвинув вниз. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_UNDER_LEFT

Открыть новую страницу, сдвинув влево. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT

Открыть новую страницу, сдвинув вправо. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN

Закрыть старую страницу, сдвинув вверх, или открыть новую страницу, сдвинув вниз, в зависимости от порядка. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_OVER_DOWN_UP

Закрыть старую страницу, сдвинув вниз, или открыть новую страницу, сдвинув вверх, в зависимости от порядка. С версии: 3.14

GTK_STACK_TRANSITION_TYPE_OVER_LEFT_RIGHT

Закрыть старую страницу, сдвинув влево, или открыть новую страницу, сдвинув вправо, в зависимости от порядка. С версии: 3.14

GTK_STACK_TRANSITION_TYPE_OVER_RIGHT_LEFT

Закрыть старую страницу, сдвинув вправо, или открыть новую страницу, сдвинув влево, в зависимости от порядка. С версии: 3.14

Подробное описание свойств

Свойство “hhomogeneous”

  “hhomogeneous”             gboolean

TRUE, если стеку выделяется одинаковая ширина для всех дочерних элементов.

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

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

С версии: 3.16

Свойство “homogeneous”

  “homogeneous”              gboolean

Однородное масштабирование.

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

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

Свойство “interpolate-size”

  “interpolate-size”         gboolean

Определяет, будет ли размер плавно меняться при переключении между дочерними элементами с разными размерами.

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

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

Свойство “transition-duration”

  “transition-duration”      guint

Продолжительность анимации в миллисекундах.

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

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

Свойство “transition-running”

  “transition-running”       gboolean

Указывает, выполняется ли в данный момент переход.

Флаги: Чтение

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

Свойство “transition-type”

  “transition-type”          GtkStackTransitionType

Тип анимации, используемой для перехода.

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

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

Свойство “vhomogeneous”

  “vhomogeneous”             gboolean

TRUE, если стеку выделяется одинаковая высота для всех дочерних элементов.

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

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

С версии: 3.16

Свойство “visible-child”

  “visible-child”            GtkWidget *

Виджет, который в данный момент отображается в стеке.

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

Свойство “visible-child-name”

  “visible-child-name”       gchar *

Имя виджета, который в данный момент отображается в стеке.

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

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

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

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

  “icon-name”                gchar *

Имя значка страницы дочернего элемента.

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

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

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

  “name”                     gchar *

Имя страницы дочернего элемента.

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

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

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

  “needs-attention”          gboolean

Устанавливает флаг, указывающий, требует ли дочерний элемент внимания пользователя. Это используется GtkStackSwitcher для изменения внешнего вида соответствующей кнопки, когда страница требует внимания, но не является текущей.

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

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

С версии: 3.12

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

  “position”                 gint

Индекс дочернего элемента в родительском элементе.

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

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

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

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

  “title”                    gchar *

Заголовок страницы дочернего элемента.

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

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

См. также

GtkNotebook, GtkStackSwitcher

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

Spec-Zone.ru

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