Spec-Zone.ru › GTK 4.0

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

a GtkPopover

gtk_popover_popdown ()

void
gtk_popover_popdown (GtkPopover *popover);

Скрывает popover. Это отличается от вызова gtk_widget_hide(), так как скрывает всплывающее окно с анимацией. Если вы хотите скрыть всплывающее окно без анимации, используйте gtk_widget_hide().

Параметры

popover

a GtkPopover

gtk_popover_present ()

void
gtk_popover_present (GtkPopover *popover);

Отображает всплывающее окно пользователю.

Параметры

popover

a GtkPopover

gtk_popover_set_child ()

void
gtk_popover_set_child (GtkPopover *popover,
                       GtkWidget *child);

Устанавливает дочерний виджет для popover.

Параметры

popover

a GtkPopover

child

дочерний виджет.

[allow-none]

gtk_popover_get_child ()

GtkWidget *
gtk_popover_get_child (GtkPopover *popover);

Получает дочерний виджет popover.

Параметры

popover

a GtkPopover

Возвращает

дочерний виджет popover .

[nullable][transfer none]

gtk_popover_set_pointing-to ()

void
gtk_popover_set_pointing_to (GtkPopover *popover,
                             const GdkRectangle *rect);

Устанавливает прямоугольник, к которому будет направлен popover в системе координат родителя popover.

Параметры

popover

a GtkPopover

rect

прямоугольник для указания

gtk_popover_get_pointing-to ()

gboolean
gtk_popover_get_pointing_to (GtkPopover *popover,
                             GdkRectangle *rect);

Если был установлен прямоугольник для указания, функция вернёт TRUE и заполнит rect соответствующим прямоугольником; в противном случае вернёт FALSE и заполнит rect координатами привязанного виджета.

Параметры

popover

a GtkPopover

rect

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

[out]

Возвращает

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

gtk_popover_set_position ()

void
gtk_popover_set_position (GtkPopover *popover,
                          GtkPositionType position);

Устанавливает предпочтительное положение для отображения popover. Если popover в настоящее время отображается, оно будет обновлено немедленно.

Это предпочтение будет учтено по возможности, хотя при недостатке места (например, если всплывающее окно близко к краям окна), GtkPopover может выбрать отображение с противоположной стороны

Параметры

popover

a GtkPopover

position

предпочтительное положение всплывающего окна

gtk_popover_get_position ()

GtkPositionType
gtk_popover_get_position (GtkPopover *popover);

Возвращает предпочтительное положение popover.

Параметры

popover

a GtkPopover

Возвращает

Предпочтительное положение.

gtk_popover_set_autohide ()

void
gtk_popover_set_autohide (GtkPopover *popover,
                          gboolean autohide);

Устанавливает, является ли popover модальным.

Модальное всплывающее окно получит фокус клавиатуры при отображении. Щелчок за пределами области всплывающего окна или нажатие клавиши Esc закроет всплывающее окно.

Вызов этой функции для уже отображаемого всплывающего окна с новым значением autohide, отличным от текущего, приведёт к скрытию всплывающего окна.

Параметры

popover

a GtkPopover

autohide

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

gtk_popover_get_autohide ()

gboolean
gtk_popover_get_autohide (GtkPopover *popover);

Возвращает, является ли всплывающее окно модальным.

См. gtk_popover_set_autohide() для последствий этого.

Параметры

popover

a GtkPopover

Возвращает

TRUE, если popover модальное

gtk_popover_set_has-arrow ()

void
gtk_popover_set_has_arrow (GtkPopover *popover,
                           gboolean has_arrow);

Устанавливает, должен ли этот всплывающее окно рисовать стрелку, указывающую на виджет, относительно которого оно размещено.

Параметры

popover

a GtkPopover

has_arrow

TRUE нарисовать стрелку

gtk_popover_get_has-arrow ()

gboolean
gtk_popover_get_has_arrow (GtkPopover *popover);

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

Параметры

popover

a GtkPopover

Возвращает

наличие стрелки у всплывающего окна

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 объекта popover, который нужно установить по умолчанию, или NULL для сброса значения по умолчанию для всплывающего окна.

[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

Свойство “child”

  “child”                    GtkWidget *

Дочерний widget.

Владелец: GtkPopover

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

Свойство “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

Spec-Zone.ru

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