GtkPaned
GtkPaned — Виджет с двумя регулируемыми панелями
Функции
| GtkWidget * | gtk_paned_new () |
| void | gtk_paned_add1 () |
| void | gtk_paned_add2 () |
| void | gtk_paned_pack1 () |
| void | gtk_paned_pack2 () |
| GtkWidget * | gtk_paned_get_child1 () |
| GtkWidget * | gtk_paned_get_child2 () |
| void | gtk_paned_set_position () |
| gint | gtk_paned_get_position () |
| GdkWindow * | gtk_paned_get_handle_window () |
| void | gtk_paned_set_wide_handle () |
| gboolean | gtk_paned_get_wide_handle () |
Свойства
| gint | max-position | Чтение |
| gint | min-position | Чтение |
| gint | position | Чтение / Запись |
| gboolean | position-set | Чтение / Запись |
| gboolean | wide-handle | Чтение / Запись |
Свойства стиля
| gint | handle-size | Чтение |
Сигналы
Типы и значения
| struct | GtkPaned |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkContainer ╰── GtkPaned ├── GtkHPaned ╰── GtkVPaned
Реализованные интерфейсы
GtkPaned реализует AtkImplementorIface, GtkBuildable и GtkOrientable.
Включаемые файлы
#include <gtk/gtk.h>
Описание
GtkPaned содержит два раздела, расположенных горизонтально или вертикально. Разделительная линия между двумя разделами может настраиваться пользователем перетаскиванием ползунка.
Вкладки виджетов добавляются в разделы виджета с помощью gtk_paned_pack1() и gtk_paned_pack2(). По умолчанию распределение между двумя элементами устанавливается на основе запрошенных размеров элементов, но пользователь может его изменить.
Виджет разделов рисует разделитель между двумя дочерними виджетами и небольшой ползунок, который пользователь может перетаскивать для изменения раздела. Он не рисует никаких рельефов вокруг дочерних элементов или вокруг разделителя. (Пространство, в котором находится разделитель, называется прорезью.) Часто полезно поместить каждый дочерний элемент внутри GtkFrame с типом тени, установленным на GTK_SHADOW_IN, чтобы прорезь отображалась как гребень. Разделитель не рисуется, если один из дочерних элементов отсутствует.
Для каждого дочернего элемента можно задать два параметра, resize и shrink. Если resize имеет значение «истина», то при изменении размера GtkPaned этот дочерний элемент будет увеличиваться или уменьшаться вместе с виджетом разделов. Если shrink имеет значение «истина», то пользователь может сделать этот дочерний элемент меньше, чем запрошенный размер. Установка shrink в значение FALSE позволяет приложению установить минимальный размер. Если resize имеет значение «ложь» для обоих дочерних элементов, то это интерпретируется как если бы resize было установлено в «истина» для обоих дочерних элементов.
Приложение может установить положение ползунка так, как будто его установил пользователь, вызвав gtk_paned_set_position().
CSS-узлы
GtkPaned имеет главный CSS-узел с именем paned и под-узел для разделителя с именем separator. Под-узлу присваивается класс стиля .wide, когда ожидается, что разделы будут широкими.
В горизонтальной ориентации узлы дочерних элементов всегда располагаются слева направо. Поэтому :first-child всегда будет выбирать самый левый дочерний элемент, независимо от направления текста.
Создание виджета разделов с минимальными размерами.
paned ├── <child> ├── separator[.wide] ╰── <child>
Функции
gtk_paned_new ()
GtkWidget *
gtk_paned_new (GtkOrientation orientation); Создаёт новый виджет GtkPaned.
Параметры
orientation | ориентация разделителя. |
Возвращает
новый GtkPaned.
С: 3.0
gtk_paned_add1 ()
void gtk_paned_add1 (GtkPaned *paned,GtkWidget *child);
Добавляет дочерний элемент в верхнюю или левую панель с параметрами по умолчанию. Эквивалентно gtk_paned_pack1 (paned, child, FALSE, TRUE).
Параметры
paned | виджет разделителя | |
child | дочерний элемент для добавления |
gtk_paned_add2 ()
void gtk_paned_add2 (GtkPaned *paned,GtkWidget *child);
Добавляет дочерний элемент в нижнюю или правую панель с параметрами по умолчанию. Эквивалентно gtk_paned_pack2 (paned, child, TRUE, TRUE).
Параметры
paned | виджет разделителя | |
child | дочерний элемент для добавления |
gtk_paned_pack1 ()
void gtk_paned_pack1 (GtkPaned *paned,GtkWidget *child,gboolean resize,gboolean shrink);
Добавляет дочерний элемент в верхнюю или левую панель.
Параметры
paned | виджет разделителя | |
child | дочерний элемент для добавления | |
resize | должен ли этот дочерний элемент расширяться при изменении размера виджета разделителя? | |
shrink | можно ли уменьшить размер этого дочернего элемента меньше требуемого? |
gtk_paned_pack2 ()
void gtk_paned_pack2 (GtkPaned *paned,GtkWidget *child,gboolean resize,gboolean shrink);
Добавляет дочерний элемент в нижнюю или правую панель.
Параметры
paned | виджет разделителя | |
child | дочерний элемент для добавления | |
resize | должен ли этот дочерний элемент расширяться при изменении размера виджета разделителя? | |
shrink | можно ли уменьшить размер этого дочернего элемента меньше требуемого? |
gtk_paned_get_child1 ()
GtkWidget *
gtk_paned_get_child1 (GtkPaned *paned); Получает первый дочерний элемент виджета разделителя.
Параметры
paned | виджет GtkPaned |
С: 2.4
gtk_paned_get_child2 ()
GtkWidget *
gtk_paned_get_child2 (GtkPaned *paned); Получает второй дочерний элемент виджета разделителя.
Параметры
paned | виджет GtkPaned |
С: 2.4
gtk_paned_set_position ()
void gtk_paned_set_position (GtkPaned *paned,gint position);
Устанавливает положение разделителя между двумя панелями.
Параметры
paned | виджет GtkPaned | |
position | позиция разделителя в пикселях. Отрицательное значение означает, что позиция не задана. |
gtk_paned_get_position ()
gint
gtk_paned_get_position (GtkPaned *paned); Получает положение разделителя между двумя панелями.
Параметры
paned | виджет GtkPaned |
Возвращает
позицию разделителя
gtk_paned_get_handle_window ()
GdkWindow *
gtk_paned_get_handle_window (GtkPaned *paned); Возвращает GdkWindow разделителя. Эта функция полезна при обработке событий нажатия или перемещения, позволяя отличить окно разделителя от окна дочернего элемента.
Параметры
paned | виджет GtkPaned |
Возвращает
окно разделителя.
[transfer none]
С: 2.20
gtk_paned_set_wide_handle ()
void gtk_paned_set_wide_handle (GtkPaned *paned,gboolean wide);
Устанавливает свойство «wide-handle».
Параметры
paned | виджет GtkPaned | |
wide | новое значение для свойства «wide-handle» |
С: 3.16
Типы и значения
struct GtkPaned
struct GtkPaned;
Подробное описание свойств
Свойство “max-position”
“max-position” gint
Максимально возможное значение свойства position. Это свойство выводится из размера и возможности изменения размера дочерних виджетов.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 2147483647
С версии: 2.4
Свойство “min-position”
“min-position” gint
Минимально возможное значение свойства position. Это свойство выводится из размера и возможности изменения размера дочерних виджетов.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 0
С версии: 2.4
Свойство “position”
“position” gint
Положение разделителя панели в пикселях (0 — полностью слева/сверху).
Флаги: Чтение / Запись
Допустимые значения: >= 0
Значение по умолчанию: 0
Свойство “position-set”
“position-set” gboolean
Истинно, если свойство Position должно использоваться.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “wide-handle”
“wide-handle” gboolean
Установление этого свойства в TRUE указывает, что панели необходимо обеспечить более выраженное визуальное разделение (например, потому что они разделяют два блокнота, ряды вкладок которых в противном случае сливаются визуально).
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
С версии: 3.16
Подробное описание свойств дочерних элементов
Свойство “resize” дочернего элемента
“resize” gboolean
Свойство «resize» дочернего элемента определяет, расширяется ли и сжимается ли дочерний элемент вместе с виджетом панели.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
С версии: 2.4
Свойство “shrink” дочернего элемента
“shrink” gboolean
Свойство «shrink» дочернего элемента определяет, может ли дочерний элемент быть меньше своего запрошенного размера.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
С версии: 2.4
Подробное описание свойств стиля
Свойство “handle-size” стиля
“handle-size” gint
Ширина ручки.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 5
Подробное описание сигналов
Сигнал “accept-position”
gboolean user_function (GtkPaned *widget, gpointer user_data)
Сигнал ::accept-position — это сигнал для привязки клавиш, который генерируется для подтверждения текущего положения ручки при перемещении ее с помощью сочетаний клавиш.
Стандартная привязка для этого сигнала — Return или Пробел.
Параметры
widget | объект, получивший сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
С версии: 2.0
Сигнал “cancel-position”
gboolean user_function (GtkPaned *widget, gpointer user_data)
Сигнал ::cancel-position — это сигнал для привязки клавиш, который генерируется для отмены перемещения положения ручки с помощью сочетаний клавиш. Положение ручки будет сброшено до значения, существовавшего до начала перемещения.
Стандартная привязка для этого сигнала — Escape.
Параметры
widget | объект, получивший сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
С версии: 2.0
Сигнал “cycle-child-focus”
gboolean user_function (GtkPaned *widget, gboolean reversed, gpointer user_data)
Сигнал ::cycle-child-focus — это сигнал для привязки клавиш, который генерируется для переключения фокуса между дочерними элементами панели.
Стандартная привязка — F6.
Параметры
widget | объект, получивший сигнал | |
reversed | направление переключения (вперед или назад) | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
С версии: 2.0
Сигнал “cycle-handle-focus”
gboolean user_function (GtkPaned *widget, gboolean reversed, gpointer user_data)
Сигнал ::cycle-handle-focus — это сигнал для привязки клавиш, который генерируется для переключения захвата фокуса панелью, что позволяет пользователю изменять положение ручки с помощью сочетаний клавиш.
Стандартная привязка для этого сигнала — F8.
Параметры
widget | объект, получивший сигнал | |
reversed | направление переключения (вперед или назад) | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
С версии: 2.0
Сигнал “move-handle”
gboolean user_function (GtkPaned *widget, GtkScrollType scroll_type, gpointer user_data)
Сигнал ::move-handle — это сигнал для привязки клавиш, который генерируется для перемещения ручки, когда пользователь использует сочетания клавиш для ее перемещения.
Параметры
widget | объект, получивший сигнал | |
scroll_type | тип прокрутки GtkScrollType | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
С версии: 2.0
Сигнал “toggle-handle-focus”
gboolean user_function (GtkPaned *widget, gpointer user_data)
Сигнал ::toggle-handle-focus — это сигнал для привязки клавиш, который генерируется для подтверждения текущего положения ручки и последующего переключения фокуса на следующий виджет в цепочке фокуса.
Стандартная привязка — Tab.
Параметры
widget | объект, получивший сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
С версии: 2.0
© 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/GtkPaned.html