GtkPopover
GtkPopover — Контекстно-зависимые всплывающие окна
Функции
Свойства
| GtkPopoverConstraint | constrain-to | Чтение / Запись |
| gboolean | modal | Чтение / Запись |
| GdkRectangle * | pointing-to | Чтение / Запись |
| GtkPositionType | position | Чтение / Запись |
| GtkWidget * | relative-to | Чтение / Запись |
| gboolean | transitions-enabled | Чтение / Запись |
Сигналы
| void | closed | Запуск последним |
Типы и значения
| struct | GtkPopover |
| enum | GtkPopoverConstraint |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkContainer ╰── GtkBin ╰── GtkPopover ╰── GtkPopoverMenu
Реализованные интерфейсы
GtkPopover реализует AtkImplementorIface и GtkBuildable.
Файлы
#include <gtk/gtk.h>
Описание
GtkPopover — это контекстное окно, напоминающее пузырёк, предназначенное в первую очередь для предоставления контекстно-зависимой информации или параметров. Поповеры прикрепляются к виджету, переданному при создании в gtk_popover_new(), или обновляются позже с помощью gtk_popover_set_relative_to(). По умолчанию они указывают на всю область виджета, хотя это поведение можно изменить с помощью gtk_popover_set_pointing_to().
Положение поповера относительно прикреплённого к нему виджета также можно изменить с помощью gtk_popover_set_position().
По умолчанию GtkPopover выполняет захват GTK+, чтобы гарантировать, что события ввода перенаправляются на него во время его отображения, а также для того, чтобы поповер закрывался в ожидаемых ситуациях (щелчки вне поповера или нажатие клавиши Esc). Если такое модальное поведение для поповера нежелательно, можно вызвать gtk_popover_set_modal() для настройки его поведения.
GtkPopover как замена меню
GtkPopover часто используется для замены меню. Для этого он поддерживает заполнение из GMenuModel с помощью gtk_popover_new_from_model(). В дополнение ко всем обычным функциям модели меню, эта функция поддерживает отображение разделов в модели в более компактной форме, как строка кнопок-иконок вместо пунктов меню.
Для использования этого отображения установите атрибут «display-hint» раздела в «horizontal-buttons» и установите иконки элементов с помощью атрибута «verb-icon».
<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>CSS-узлы
GtkPopover имеет единственный CSS-узел под названием popover. Он всегда получает класс стиля .background, а также получает класс стиля .menu, если он похож на меню (например, GtkPopoverMenu или создан с помощью gtk_popover_new_from_model().
Конкретные применения GtkPopover, такие как всплывающие окна выбора с помощью сенсорного экрана или лупы в GtkEntry или GtkTextView, получают такие классы стилей, как .touch-selection или .magnifier, чтобы их отличить от обычных поповеров.
Функции
gtk_popover_new ()
GtkWidget *
gtk_popover_new (GtkWidget *relative_to); Создаёт новый всплывающее меню, указывающее на relative_to
Параметры
relative_to | GtkWidget к которому относится всплывающее меню. | [allow-none] |
Возвращаемое значение
новый GtkPopover
С: 3.12
gtk_popover_new_from_model ()
GtkWidget * gtk_popover_new_from_model (GtkWidget *relative_to,GMenuModel *model);
Создаёт GtkPopover и заполняет его в соответствии с model. Всплывающее меню указывает на виджет relative_to.
Созданные кнопки подключены к действиям, найденным в GtkApplicationWindow, к которому принадлежит всплывающее меню — обычно путём привязки к виджету, находящемуся в иерархии виджетов GtkApplicationWindows.
Действия также могут быть добавлены с помощью gtk_widget_insert_action_group() в виджете меню или в любом из его родительских виджетов.
Параметры
relative_to | GtkWidget к которому относится всплывающее меню. | [allow-none] |
model |
Возвращаемое значение
новый GtkPopover
С: 3.12
gtk_popover_bind_model ()
void gtk_popover_bind_model (GtkPopover *popover,GMenuModel *model,const gchar *action_namespace);
Устанавливает связь между GtkPopover и GMenuModel.
Содержимое popover удаляется и затем заполняется пунктами меню в соответствии с model. При изменении model, popover обновляется. Вызов этой функции дважды для popover с разными model приведет к замене первой привязки на привязку к новому модели. Если model равен NULL, то любая предыдущая привязка отменяется, и все дочерние элементы удаляются.
Если action_namespace отличен от NULL, то эффект будет таким, как если бы все действия, упомянутые в model, имели свои имена, префиксные именем пространства имён, плюс точка. Например, если действие «quit» упомянуто, а action_namespace равно «app», то эффективное имя действия будет «app.quit».
Эта функция использует GtkActionable для определения имени действия и целевых значений для созданных пунктов меню. Если вы хотите использовать другую группу действий, кроме «app» и «win», или если вы хотите использовать GtkMenuShell вне GtkApplicationWindow, то вам необходимо присоединить свою собственную группу действий к иерархии виджетов, используя gtk_widget_insert_action_group(). Например, если вы создали группу с действием «quit» и вставили её с именем «mygroup», то вы бы использовали имя действия «mygroup.quit» в вашем GMenuModel.
Параметры
popover | ||
model | модель GMenuModel для привязки или | [allow-none] |
action_namespace | пространство имён для действий в | [allow-none] |
С: 3.12
gtk_popover_set_relative_to ()
void gtk_popover_set_relative_to (GtkPopover *popover,GtkWidget *relative_to);
Устанавливает новый виджет для привязки к popover. Если popover виден, положение будет обновлено.
Примечание: владение всплывающими меню всегда передаётся виджету relative_to, поэтому, если relative_to установлено в NULL для прикреплённого popover, оно будет отсоединено от предыдущего виджета и, следовательно, уничтожено, если не будет создано дополнительных ссылок.
Параметры
popover | ||
relative_to | [allow-none] |
С: 3.12
gtk_popover_get_relative_to ()
GtkWidget *
gtk_popover_get_relative_to (GtkPopover *popover); Возвращает виджет, к которому popover в настоящее время прикреплён.
Параметры
popover |
С: 3.12
gtk_popover_set_pointing-to ()
void gtk_popover_set_pointing_to (GtkPopover *popover,const GdkRectangle *rect);
Устанавливает прямоугольник, к которому будет указывать popover, в системе координат виджета, к которому прикреплён popover, см. gtk_popover_set_relative_to().
Параметры
popover | ||
rect | прямоугольник для указания |
С: 3.12
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 | предпочтительное положение всплывающей подсказки |
С: 3.12
gtk_popover_get_position ()
GtkPositionType
gtk_popover_get_position (GtkPopover *popover); Возвращает предпочтительное положение popover .
Параметры
popover |
Возвращаемое значение
Предпочтительное положение.
gtk_popover_set_constrain_to ()
void gtk_popover_set_constrain_to (GtkPopover *popover,GtkPopoverConstraint constraint);
Устанавливает ограничение для позиционирования этой всплывающей подсказки.
Обратите внимание, что не все платформы поддерживают свободное размещение всплывающих подсказок и могут уже накладывать ограничения.
Параметры
popover | ||
constraint | новое ограничение |
С: 3.20
gtk_popover_get_constrain_to ()
GtkPopoverConstraint
gtk_popover_get_constrain_to (GtkPopover *popover); Возвращает ограничение для размещения этой всплывающей подсказки. См. gtk_popover_set_constrain_to().
Параметры
popover |
Возвращаемое значение
ограничение для размещения этой всплывающей подсказки.
С: 3.20
gtk_popover_set_modal ()
void gtk_popover_set_modal (GtkPopover *popover,gboolean modal);
Устанавливает, является ли popover модальным. Модальная всплывающая подсказка захватывает весь ввод внутри главного окна и захватывает фокус клавиатуры при отображении. Щелчок вне области всплывающей подсказки или нажатие клавиши Esc закроет всплывающую подсказку и освободит ввод.
Параметры
popover | ||
modal | TRUE для захвата всего ввода внутри главного окна |
С: 3.12
gtk_popover_get_modal ()
gboolean
gtk_popover_get_modal (GtkPopover *popover); Возвращает, является ли всплывающая подсказка модальной. См. gtk_popover_set_modal, чтобы увидеть последствия этого.
Параметры
popover |
Возвращаемое значение
TRUE, если popover модальное
С: 3.12
gtk_popover_set_transitions_enabled ()
void gtk_popover_set_transitions_enabled (GtkPopover *popover,gboolean transitions_enabled);
Устанавливает, включены ли переходы при показе/скрытии этой всплывающей подсказки
Параметры
popover | ||
transitions_enabled | Включены ли переходы |
С: 3.16
gtk_popover_get_transitions_enabled ()
gboolean
gtk_popover_get_transitions_enabled (GtkPopover *popover); Возвращает, включены ли переходы при показе/скрытии этой всплывающей подсказки.
Параметры
popover |
Возвращаемое значение
TRUE, если переходы показа и скрытия заданной всплывающей подсказки включены, FALSE в противном случае.
С: 3.16
gtk_popover_set_default_widget ()
void gtk_popover_set_default_widget (GtkPopover *popover,GtkWidget *widget);
Устанавливает виджет, который должен быть установлен как виджет по умолчанию во время показа всплывающей подсказки (см. gtk_window_set_default()). GtkPopover запоминает предыдущий виджет по умолчанию и восстанавливает его при закрытии всплывающей подсказки.
Параметры
popover | ||
widget | новый виджет по умолчанию или | [allow-none] |
С: 3.18
gtk_popover_get_default_widget ()
GtkWidget *
gtk_popover_get_default_widget (GtkPopover *popover); Получает виджет, который должен быть установлен по умолчанию во время отображения всплывающего окна.
Параметры
popover |
С: 3.18
Типы и значения
struct GtkPopover
struct GtkPopover;
перечисление GtkPopoverConstraint
Описывает ограничения для позиционирования всплывающих окон. В будущем в это перечисление могут быть добавлены дополнительные значения.
Члены
GTK_POPOVER_CONSTRAINT_NONE | Не накладывать ограничений на позицию всплывающего окна, кроме тех, которые накладывает реализация. | |
GTK_POPOVER_CONSTRAINT_WINDOW | Ограничить всплывающее окно границами окна, к которому оно прикреплено. |
С: 3.20
Подробности свойств
Свойство “constrain-to”
“constrain-to” GtkPopoverConstraint
Устанавливает ограничение для позиции всплывающего окна.
Флаги: Чтение / Запись
Значение по умолчанию: GTK_POPOVER_CONSTRAINT_WINDOW
С: 3.20
Свойство “modal”
“modal” gboolean
Устанавливает, является ли всплывающее окно модальным (так что другие элементы в окне не получают ввод, пока всплывающее окно отображается).
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
С: 3.12
Свойство “pointing-to”
“pointing-to” GdkRectangle *
Помечает определённый прямоугольник для указания.
Флаги: Чтение / Запись
С: 3.12
Свойство “position”
“position” GtkPositionType
Устанавливает предпочтительную позицию всплывающего окна.
Флаги: Чтение / Запись
Значение по умолчанию: GTK_POS_TOP
С: 3.12
Подробности сигналов
© 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/GtkPopover.html