Spec-Zone.ru › GTK 3.24

GtkPopover

GtkPopover — Всплывающие окна, зависящие от контекста

Функции

GtkWidget * gtk_popover_new ()
GtkWidget * gtk_popover_new_from_model ()
void gtk_popover_bind_model ()
void gtk_popover_popup ()
void gtk_popover_popdown ()
void gtk_popover_set_relative_to ()
GtkWidget * gtk_popover_get_relative_to ()
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_constrain_to ()
GtkPopoverConstraint gtk_popover_get_constrain_to ()
void gtk_popover_set_modal ()
gboolean gtk_popover_get_modal ()
void gtk_popover_set_transitions_enabled ()
gboolean gtk_popover_get_transitions_enabled ()
void gtk_popover_set_default_widget ()
GtkWidget * gtk_popover_get_default_widget ()

Свойства

GtkPopoverConstraint constrain-to Чтение/Запись
gboolean modal Чтение/Запись
GdkRectangle * pointing-to Чтение/Запись
GtkPositionType position Чтение/Запись
GtkWidget * relative-to Чтение/Запись
gboolean transitions-enabled Чтение/Запись

Сигналы

void closed Run Last

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

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

a GMenuModel

Возвращает

новый 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

a GtkPopover

model

связанный GMenuModel или NULL для удаления привязки.

[allow-none]

action_namespace

пространство имён действий в model.

[allow-none]

С: 3.12

gtk_popover_popup ()

void
gtk_popover_popup (GtkPopover *popover);

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

Параметры

popover

a GtkPopover

С: 3.22

gtk_popover_popdown ()

void
gtk_popover_popdown (GtkPopover *popover);

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

Параметры

popover

a GtkPopover

С: 3.22

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

a GtkPopover

relative_to

a GtkWidget.

[allow-none]

С: 3.12

gtk_popover_get_relative_to ()

GtkWidget *
gtk_popover_get_relative_to (GtkPopover *popover);

Возвращает виджет, к которому popover в настоящее время прикреплён.

Параметры

popover

a GtkPopover

Возвращает

a GtkWidget.

[transfer none]

С: 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

a GtkPopover

rect

прямоугольник, к которому нужно направить

С версии: 3.12

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

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

С версии: 3.12

gtk_popover_get_position ()

GtkPositionType
gtk_popover_get_position (GtkPopover *popover);

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

Параметры

popover

a GtkPopover

Возвращает

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

gtk_popover_set_constrain_to ()

void
gtk_popover_set_constrain_to (GtkPopover *popover,
                              GtkPopoverConstraint constraint);

Устанавливает ограничение для позиционирования этого всплывающего окна.

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

Параметры

popover

a GtkPopover

constraint

новое ограничение

С версии: 3.20

gtk_popover_get_constrain_to ()

GtkPopoverConstraint
gtk_popover_get_constrain_to (GtkPopover *popover);

Возвращает ограничение для размещения этого всплывающего окна. См. gtk_popover_set_constrain_to().

Параметры

popover

a GtkPopover

Возвращает

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

С версии: 3.20

gtk_popover_set_modal ()

void
gtk_popover_set_modal (GtkPopover *popover,
                       gboolean modal);

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

Параметры

popover

a GtkPopover

modal

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

С версии: 3.12

gtk_popover_get_modal ()

gboolean
gtk_popover_get_modal (GtkPopover *popover);

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

Параметры

popover

a GtkPopover

Возвращает

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

С версии: 3.12

gtk_popover_set_transitions_enabled ()

void
gtk_popover_set_transitions_enabled (GtkPopover *popover,
                                     gboolean transitions_enabled);

gtk_popover_set_transitions_enabled устарело с версии 3.22 и не должно использоваться в новом коде.

Вы можете отображать или скрывать всплывающее окно без анимации, используя gtk_widget_show() и gtk_widget_hide(), а gtk_popover_popup() и gtk_popover_popdown() будут использовать анимацию.

Устанавливает, включены ли анимации при отображении/скрытии этого всплывающего окна

Параметры

popover

a GtkPopover

transitions_enabled

Включить ли анимации

С версии: 3.16

gtk_popover_get_transitions_enabled ()

gboolean
gtk_popover_get_transitions_enabled (GtkPopover *popover);

gtk_popover_get_transitions_enabled устарело с версии 3.22 и не должно использоваться в новом коде.

Вы можете отображать или скрывать всплывающее окно без анимации, используя gtk_widget_show() и gtk_widget_hide(), а gtk_popover_popup() и gtk_popover_popdown() будут использовать анимацию.

Возвращает, включены ли анимации при отображении/скрытии этого всплывающего окна.

Параметры

popover

a GtkPopover

Возвращает

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

a GtkPopover

widget

новый виджет по умолчанию или NULL.

[allow-none]

С: 3.18

gtk_popover_get_default_widget ()

GtkWidget *
gtk_popover_get_default_widget (GtkPopover *popover);

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

Параметры

popover

a GtkPopover

Возвращает

виджет по умолчанию или NULL если его нет.

[nullable][transfer none]

С: 3.18

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

struct GtkPopover

struct GtkPopover;

перечисление GtkPopoverConstraint

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

Элементы

GTK_POPOVER_CONSTRAINT_NONE

Не ограничивать позицию всплывающей подсказки, кроме ограничений, накладываемых реализацией

GTK_POPOVER_CONSTRAINT_WINDOW

Ограничить всплывающую подсказку границами окна, к которому она прикреплена

С: 3.20

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

Свойство “constrain-to”

  “constrain-to”             GtkPopoverConstraint

Устанавливает ограничение для позиции всплывающей подсказки.

Владелец: GtkPopover

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

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

С: 3.20

Свойство “modal”

  “modal”                    gboolean

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

Владелец: GtkPopover

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

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

С: 3.12

Свойство “pointing-to”

  “pointing-to”              GdkRectangle *

Отмечает определённый прямоугольник для указания.

Владелец: GtkPopover

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

С: 3.12

Свойство “position”

  “position”                 GtkPositionType

Устанавливает предпочтительную позицию всплывающей подсказки.

Владелец: GtkPopover

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

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

С: 3.12

Свойство “relative-to”

  “relative-to”              GtkWidget *

Устанавливает прикреплённый виджет.

Владелец: GtkPopover

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

С: 3.12

Свойство “transitions-enabled”

  “transitions-enabled”      gboolean

Включены ли анимации при отображении/скрытии этой всплывающей подсказки.

GtkPopover:transitions-enabled устарело с версии 3.22 и не должно использоваться в новых кодах.

Вы можете отобразить или скрыть всплывающую подсказку без анимаций, используя gtk_widget_show() и gtk_widget_hide(), а gtk_popover_popup() и gtk_popover_popdown() будут использовать анимации.

Владелец: GtkPopover

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

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

С: 3.16

Подробное описание сигналов

Сигнал “closed”

void
user_function (GtkPopover *popover,
               gpointer    user_data)

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

Параметры

user_data

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

Флаги: Run Last

С: 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.24/GtkPopover.html

Spec-Zone.ru

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