Spec-Zone.ru › GTK 3.22

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
перечисление 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, имели свои имена, префиксрованные именем пространства имён, плюс точка. Например, если действие «выход» упоминается, а action_namespace равно «приложение», то эффективное имя действия — «приложение.выход».

Эта функция использует GtkActionable для определения имени действия и целевых значений созданных элементов меню. Если вы хотите использовать другую группу действий, отличную от «приложение» и «окно», или если вы хотите использовать GtkMenuShell вне GtkApplicationWindow, вам необходимо прикрепить собственную группу действий к иерархии виджетов, используя gtk_widget_insert_action_group(). Например, если вы создали группу с действием «выход» и вставили её с именем «моягруппа», то вы бы использовали имя действия «моягруппа.выход» в вашем 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

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

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

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

Значение по умолчанию: 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

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

  “relative-to”              GtkWidget *

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

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

С: 3.12

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

  “transitions-enabled”      gboolean

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

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

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

С: 3.16

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

Сигнал “closed”

void
user_function (GtkPopover *popover,
               gpointer    user_data)

Флаги: Выполнить последним

© 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/GtkPopover.html

Spec-Zone.ru

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