GtkPopover
GtkPopover — Контекстно-зависимые всплывающие окна
Функции
| GtkWidget * | gtk_popover_new () |
| void | gtk_popover_popup () |
| void | gtk_popover_popdown () |
| void | gtk_popover_present () |
| void | gtk_popover_set_child () |
| GtkWidget * | gtk_popover_get_child () |
| void | gtk_popover_set_pointing_to () |
| gboolean | gtk_popover_get_pointing_to () |
| void | gtk_popover_set_position () |
| GtkPositionType | gtk_popover_get_position () |
| void | gtk_popover_set_autohide () |
| gboolean | gtk_popover_get_autohide () |
| void | gtk_popover_set_has_arrow () |
| gboolean | gtk_popover_get_has_arrow () |
| void | gtk_popover_set_offset () |
| void | gtk_popover_get_offset () |
| void | gtk_popover_set_default_widget () |
| void | gtk_popover_set_cascade_popdown () |
| gboolean | gtk_popover_get_cascade_popdown () |
| gboolean | gtk_popover_get_mnemonics_visible () |
| void | gtk_popover_set_mnemonics_visible () |
Свойства
| gboolean | autohide | Чтение / Запись |
| gboolean | cascade-popdown | Чтение / Запись |
| GtkWidget * | child | Чтение / Запись |
| GtkWidget * | default-widget | Чтение / Запись |
| gboolean | has-arrow | Чтение / Запись |
| gboolean | mnemonics-visible | Чтение / Запись |
| GdkRectangle * | pointing-to | Чтение / Запись |
| GtkPositionType | position | Чтение / Запись |
Сигналы
| void | activate-default | Действие |
| void | closed | Выполнить последним |
Типы и значения
| struct | GtkPopover |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkPopover
├── GtkEmojiChooser
╰── GtkPopoverMenu
Реализованные интерфейсы
GtkPopover реализует GtkAccessible, GtkBuildable, GtkConstraintTarget, GtkShortcutManager и GtkNative.
Файлы
#include <gtk/gtk.h>
Описание
GtkPopover — это контекстное окно в виде всплывающего пузырька, предназначенное в первую очередь для предоставления контекстно-зависимой информации или опций. Всплывающие окна прикрепляются к виджету, устанавливаясь с помощью gtk_widget_set_parent(). По умолчанию они указывают на всю область виджета, хотя это поведение можно изменить с помощью gtk_popover_set_pointing_to().
Положение всплывающего окна относительно прикреплённого к нему виджета также можно изменить с помощью gtk_popover_set_position().
По умолчанию GtkPopover выполняет захват, чтобы обеспечить перенаправление событий ввода в него во время отображения, а также для того, чтобы всплывающее окно было закрыто в ожидаемых ситуациях (щелчки за пределами всплывающего окна или нажатие клавиши Escape). Если такая модальная работа нежелательна для всплывающего окна, можно вызвать gtk_popover_set_autohide(), чтобы настроить его поведение.
GtkPopover как замена меню
GtkPopover часто используется для замены меню. Лучший способ сделать это — использовать подкласс GtkPopoverMenu, который поддерживает заполнение из GMenuModel с помощью gtk_popover_menu_new_from_model().
Узлы CSS
<section>
<attribute name="display-hint">horizontal-buttons</attribute>
<item>
<attribute name="label">Cut</attribute>
<attribute name="action">app.cut</attribute>
<attribute name="verb-icon">edit-cut-symbolic</attribute>
</item>
<item>
<attribute name="label">Copy</attribute>
<attribute name="action">app.copy</attribute>
<attribute name="verb-icon">edit-copy-symbolic</attribute>
</item>
<item>
<attribute name="label">Paste</attribute>
<attribute name="action">app.paste</attribute>
<attribute name="verb-icon">edit-paste-symbolic</attribute>
</item>
</section>Дочерний узел содержимого всегда получает класс стиля .background, а само всплывающее окно получает класс стиля .menu, если всплывающее окно похоже на меню (т.е. GtkPopoverMenu).
Конкретные применения GtkPopover, такие как всплывающие окна выбора касанием или увеличители в GtkEntry или GtkTextView, получают классы стилей, такие как .touch-selection или .magnifier, чтобы отличить их от обычных всплывающих окон.
При непосредственном оформлении всплывающего окна у узла всплывающего окна обычно не должно быть фона.
Обратите внимание, что для достижения соответствующего визуального отображения стрелки GtkPopover использует пользовательское рисование для узла стрелки. Это позволяет стрелке динамически изменять форму, но также ограничивает возможности ее оформления с помощью CSS. В частности, стрелка рисуется поверх границы узла содержимого, чтобы они выглядели как одна фигура, что означает, что ширина границы узла содержимого и узла стрелки должна быть одинаковой. Стрелка также не поддерживает никакую форму границы, кроме сплошной, нет радиуса границы, только одна ширина границы (используется ширина нижней границы) и нет теней.
Функции
gtk_popover_new ()
GtkWidget *
gtk_popover_new (void); Создаёт новый всплывающее окно.
Возвращает
новое всплывающее окно
gtk_popover_popup ()
void
gtk_popover_popup (GtkPopover *popover); Выводит popover. Это отличается от вызова gtk_widget_show(), так как показывает всплывающее окно с анимацией. Если вы хотите показать всплывающее окно без анимации, используйте gtk_widget_show().
Параметры
popover |
gtk_popover_popdown ()
void
gtk_popover_popdown (GtkPopover *popover); Скрывает popover. Это отличается от вызова gtk_widget_hide(), так как скрывает всплывающее окно с анимацией. Если вы хотите скрыть всплывающее окно без анимации, используйте gtk_widget_hide().
Параметры
popover |
gtk_popover_present ()
void
gtk_popover_present (GtkPopover *popover); Отображает всплывающее окно пользователю.
Параметры
popover |
gtk_popover_set_child ()
void gtk_popover_set_child (GtkPopover *popover,GtkWidget *child);
Устанавливает дочерний виджет для popover.
Параметры
popover | ||
child | дочерний виджет. | [allow-none] |
gtk_popover_get_child ()
GtkWidget *
gtk_popover_get_child (GtkPopover *popover); Получает дочерний виджет popover.
Параметры
popover |
Возвращает
дочерний виджет popover .
[nullable][transfer none]
gtk_popover_set_pointing-to ()
void gtk_popover_set_pointing_to (GtkPopover *popover,const GdkRectangle *rect);
Устанавливает прямоугольник, к которому будет направлен popover в системе координат родителя popover.
Параметры
popover | ||
rect | прямоугольник для указания |
gtk_popover_get_pointing-to ()
gboolean gtk_popover_get_pointing_to (GtkPopover *popover,GdkRectangle *rect);
Если был установлен прямоугольник для указания, функция вернёт TRUE и заполнит rect соответствующим прямоугольником; в противном случае вернёт FALSE и заполнит rect координатами привязанного виджета.
Параметры
popover | ||
rect | место для хранения прямоугольника. | [out] |
Возвращает
TRUE если прямоугольник для указания был установлен.
gtk_popover_set_position ()
void gtk_popover_set_position (GtkPopover *popover,GtkPositionType position);
Устанавливает предпочтительное положение для отображения popover. Если popover в настоящее время отображается, оно будет обновлено немедленно.
Это предпочтение будет учтено по возможности, хотя при недостатке места (например, если всплывающее окно близко к краям окна), GtkPopover может выбрать отображение с противоположной стороны
Параметры
popover | ||
position | предпочтительное положение всплывающего окна |
gtk_popover_get_position ()
GtkPositionType
gtk_popover_get_position (GtkPopover *popover); Возвращает предпочтительное положение popover.
Параметры
popover |
Возвращает
Предпочтительное положение.
gtk_popover_set_autohide ()
void gtk_popover_set_autohide (GtkPopover *popover,gboolean autohide);
Устанавливает, является ли popover модальным.
Модальное всплывающее окно получит фокус клавиатуры при отображении. Щелчок за пределами области всплывающего окна или нажатие клавиши Esc закроет всплывающее окно.
Вызов этой функции для уже отображаемого всплывающего окна с новым значением autohide, отличным от текущего, приведёт к скрытию всплывающего окна.
Параметры
popover | ||
autohide | TRUE для закрытия всплывающего окна при щелчках за его пределами |
gtk_popover_get_autohide ()
gboolean
gtk_popover_get_autohide (GtkPopover *popover); Возвращает, является ли всплывающее окно модальным.
См. gtk_popover_set_autohide() для последствий этого.
Параметры
popover |
Возвращает
TRUE, если popover модальное
gtk_popover_set_has-arrow ()
void gtk_popover_set_has_arrow (GtkPopover *popover,gboolean has_arrow);
Устанавливает, должен ли этот всплывающее окно рисовать стрелку, указывающую на виджет, относительно которого оно размещено.
Параметры
popover | ||
has_arrow |
|
gtk_popover_get_has-arrow ()
gboolean
gtk_popover_get_has_arrow (GtkPopover *popover); Получает, отображается ли на этом всплывающем окне стрелка, указывающая на виджет, относительно которого оно размещено.
Параметры
popover |
Возвращает
наличие стрелки у всплывающего окна
gtk_popover_set_offset ()
void gtk_popover_set_offset (GtkPopover *popover,int x_offset,int y_offset);
Устанавливает смещение, используемое при расчёте позиции всплывающего окна.
Эти значения используются при подготовке GtkPopupLayout для позиционирования всплывающего окна.
Параметры
popover | объект GtkPopover | |
x_offset | смещение по оси X для корректировки позиции | |
y_offset | смещение по оси Y для корректировки позиции |
gtk_popover_get_offset ()
void gtk_popover_get_offset (GtkPopover *popover,int *x_offset,int *y_offset);
Получает смещение, заданное ранее функцией gtk_popover_set_offset().
Параметры
popover | объект GtkPopover | |
x_offset | место для хранения значения x_offset. | [out][nullable] |
y_offset | место для хранения значения y_offset. | [out][nullable] |
gtk_popover_set_default_widget ()
void gtk_popover_set_default_widget (GtkPopover *popover,GtkWidget *widget);
Widget по умолчанию — это widget, который активируется при нажатии пользователем Enter в диалоговом окне (например). Эта функция устанавливает или сбрасывает widget по умолчанию для GtkPopover.
Параметры
popover | объект GtkPopover | |
widget | дочерний widget объекта | [allow-none] |
gtk_popover_set_cascade_popdown ()
void gtk_popover_set_cascade_popdown (GtkPopover *popover,gboolean cascade_popdown);
Если cascade_popdown имеет значение TRUE, всплывающее окно будет закрыто при закрытии модального дочернего всплывающего окна. Если FALSE, popover останется видимым.
Параметры
popover | Объект GtkPopover | |
cascade_popdown | TRUE, если всплывающее окно должно закрыться после закрытия дочернего окна |
gtk_popover_get_cascade_popdown ()
gboolean
gtk_popover_get_cascade_popdown (GtkPopover *popover); Возвращает, будет ли всплывающее окно закрыто после закрытия модального дочернего окна.
Параметры
popover | объект GtkPopover |
Возвращаемое значение
TRUE, если popover будет закрыто после закрытия модального дочернего окна.
gtk_popover_get_mnemonics_visible ()
gboolean
gtk_popover_get_mnemonics_visible (GtkPopover *popover); Получает значение свойства “mnemonics-visible”.
Параметры
popover | объект GtkPopover |
Возвращаемое значение
TRUE , если в этом всплывающем окне должны быть видны мнемоники
gtk_popover_set_mnemonics_visible ()
void gtk_popover_set_mnemonics_visible (GtkPopover *popover,gboolean mnemonics_visible);
Устанавливает свойство “mnemonics-visible”.
Параметры
popover | объект GtkPopover | |
mnemonics_visible | новое значение |
Типы и значения
struct GtkPopover
struct GtkPopover;
Подробное описание свойств
Свойство “autohide”
“autohide” gboolean
Определяет, должен ли всплывающее окно закрываться при щелчке вне его.
Владелец: GtkPopover
Флаги: Чтение/Запись
Значение по умолчанию: TRUE
Свойство “cascade-popdown”
“cascade-popdown” gboolean
Определяет, закрывается ли всплывающее окно после закрытия дочернего всплывающего окна.
Владелец: GtkPopover
Флаги: Чтение/Запись
Значение по умолчанию: FALSE
Свойство “default-widget”
“default-widget” GtkWidget *
Widget по умолчанию.
Владелец: GtkPopover
Флаги: Чтение/Запись
Свойство “has-arrow”
“has-arrow” gboolean
Определяет, будет ли отображаться стрелка.
Владелец: GtkPopover
Флаги: Чтение/Запись
Значение по умолчанию: TRUE
Свойство “mnemonics-visible”
“mnemonics-visible” gboolean
Определяет, будут ли отображаться мнемоники в этом всплывающем окне.
Владелец: GtkPopover
Флаги: Чтение/Запись
Значение по умолчанию: FALSE
Свойство “pointing-to”
“pointing-to” GdkRectangle *
Прямоугольник, к которому указывает всплывающее окно.
Владелец: GtkPopover
Флаги: Чтение/Запись
Свойство “position”
“position” GtkPositionType
Позиция, в которой должно располагаться всплывающее окно.
Владелец: GtkPopover
Флаги: Чтение/Запись
Значение по умолчанию: GTK_POS_BOTTOM
Подробное описание сигналов
Сигнал “activate-default”
void user_function (GtkPopover *self, gpointer user_data)
Сигнал ::activate-default — это сигнал привязки к горячей клавише, который генерируется при активации widget по умолчанию для self .
Параметры
self | объект GtkPopover, который получил сигнал | |
user_data | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Действие
Сигнал “closed”
void user_function (GtkPopover *self, gpointer user_data)
Сигнал ::closed генерируется при закрытии всплывающего окна.
Параметры
self | объект GtkPopover, который получил сигнал | |
user_data | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Выполняется последним
© 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/GtkPopover.html