Spec-Zone.ru › GTK 3.20

GtkPopover

GtkPopover — Контекстно-зависимые всплывающие окна

Функции

GtkWidget * gtk_popover_new ()
GtkWidget * gtk_popover_new_from_model ()
void gtk_popover_bind_model ()
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 Запуск последним

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

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_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);

Устанавливает, включены ли переходы при показе/скрытии этой всплывающей подсказки

Параметры

popover

a GtkPopover

transitions_enabled

Включены ли переходы

С: 3.16

gtk_popover_get_transitions_enabled ()

gboolean
gtk_popover_get_transitions_enabled (GtkPopover *popover);

Возвращает, включены ли переходы при показе/скрытии этой всплывающей подсказки.

Параметры

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)

Флаги: Run Last

© 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

Spec-Zone.ru

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