Spec-Zone.ru › GTK 4.0

GtkPopoverMenu

GtkPopoverMenu — всплывающие меню

Функции

GtkWidget * gtk_popover_menu_new_from_model ()
GtkWidget * gtk_popover_menu_new_from-model_full ()
void gtk_popover_menu_set_menu_model ()
GMenuModel * gtk_popover_menu_get_menu_model ()
gboolean gtk_popover_menu_add_child ()
gboolean gtk_popover_menu_remove_child ()

Свойства

GMenuModel * menu-model Чтение/Запись
char * visible-submenu Чтение/Запись

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

GtkPopoverMenu
перечисление GtkPopoverMenuFlags

Иерархия объектов

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkPopover
                ╰── GtkPopoverMenu

Реализованные интерфейсы

GtkPopoverMenu реализует GtkAccessible, GtkBuildable, GtkConstraintTarget, GtkShortcutManager и GtkNative.

Включаемые файлы

#include <gtk/gtk.h>

Описание

GtkPopoverMenu — подкласс GtkPopover, который рассматривает своих потомков как пункты меню и позволяет переключаться между ними. Он может открывать подменю как традиционные, вложенные подменю или более удобным для сенсорных экранов способом — скольжением.

GtkPopoverMenu предназначен для использования в основном с моделями меню, используя gtk_popover_menu_new_from_model(). Если вам нужно поместить другие виджеты, такие как GtkSpinButton или GtkSwitch во всплывающее окно, используйте обычное GtkPopover.

Модели меню

Формат XML, понимаемый GtkBuilder для GMenuModel, состоит из верхнего уровня <menu> элемента, содержащего один или несколько <item> элементов. Каждый <item> элемент содержит <attribute> и <link> элементы с обязательным атрибутом name. <link> элементы имеют тот же формат, что и <menu>. Вместо <link name="submenu> или <link name="section">, можно использовать <submenu> или <section> элементы.

<menu id='app-menu'>
  <section>
    <item>
      <attribute name='label' translatable='yes'>_New Window</attribute>
      <attribute name='action'>app.new</attribute>
    </item>
    <item>
      <attribute name='label' translatable='yes'>_About Sunny</attribute>
      <attribute name='action'>app.about</attribute>
    </item>
    <item>
      <attribute name='label' translatable='yes'>_Quit</attribute>
      <attribute name='action'>app.quit</attribute>
    </item>
  </section>
</menu>

Значения атрибутов могут быть переведены с помощью gettext, как и другие содержимое GtkBuilder. <attribute> элементы могут быть помечены для перевода с помощью атрибута translatable="yes". Также можно указать контекст сообщения и комментарии переводчика, используя атрибуты context и comments. Для этого GtkBuilder должен быть предоставлен домен gettext.

Следующие атрибуты используются при построении пунктов меню:

  • "label": отображаемая строка для пользователя

  • "action": префиксное имя действия для запуска

  • "target": параметр для использования при активации действия

  • "icon" и "verb-icon": имена иконок, которые могут быть отображены

  • "submenu-action": имя действия, которое может использоваться для определения возможности открытия подменю

  • "hidden-when": строка, используемая для определения, когда пункт будет скрыт. Возможные значения включают "action-disabled", "action-missing", "macos-menubar". Это полезно в основном для экспортируемых меню, см. gtk_application_set_menubar().

  • "custom": строка, используемая для сопоставления с ID пользовательского дочернего элемента, добавленного с помощью gtk_popover_menu_add_child(), gtk_popover_menu_bar_add_child() или в файле пользовательского интерфейса с помощью <child type="ID">.

Следующие атрибуты используются при построении разделов:

  • "label": отображаемая строка для заголовка раздела

  • "display-hint": строка, используемая для определения специального форматирования для раздела. Возможные значения включают "horizontal-buttons", "circular-buttons" и "inline-buttons". Все они указывают, что раздел должен быть отображен как горизонтальная строка кнопок.

  • "text-direction": строка, используемая для определения GtkTextDirection для использования при "display-hint", установленном в "horizontal-buttons". Возможные значения включают "rtl", "ltr" и "none".

Следующие атрибуты используются при построении подменю:

  • "label": отображаемая строка для пользователя

  • "icon": имя отображаемой иконки

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

CSS узлы

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

Доступность

GtkPopoverMenu использует роль GTK_ACCESSIBLE_ROLE_MENU, а его пункты используют роли GTK_ACCESSIBLE_ROLE_MENU_ITEM, GTK_ACCESSIBLE_ROLE_MENU_ITEM_CHECKBOX или GTK_ACCESSIBLE_ROLE_MENU_ITEM_RADIO в зависимости от действия, к которому они подключены.

Функции

gtk_popover_menu_new_from_model ()

GtkWidget *
gtk_popover_menu_new_from_model (GMenuModel *model);

Создаёт GtkPopoverMenu и заполняет его в соответствии с model .

Созданные кнопки подключаются к действиям, найденным в GtkApplicationWindow, к которому относится всплывающее меню — обычно путём прикрепления к виджету, содержащемуся в иерархии виджетов GtkApplicationWindow.

Действия также можно добавить, используя gtk_widget_insert_action_group() на виджете меню или на любом из его родительских виджетов.

Эта функция создаёт меню со сдвигающимися подменю. См. gtk_popover_menu_new_from_model_full() для управления этим.

Параметры

model

модель GMenuModel, или NULL.

[allow-none]

Возвращает

новый GtkPopoverMenu

gtk_popover_menu_new_from_model_full ()

GtkWidget *
gtk_popover_menu_new_from_model_full (GMenuModel *model,
                                      GtkPopoverMenuFlags flags);

Создаёт GtkPopoverMenu и заполняет его в соответствии с model .

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

В настоящее время поддерживается только флаг GTK_POPOVER_MENU_NESTED, который заставляет GTK создавать традиционные вложенные подменю вместо стандартных сдвигающихся подменю.

Параметры

model

модель GMenuModel

flags

флаги, влияющие на создание меню

Возвращает

новый GtkPopoverMenu.

[transfer full]

gtk_popover_menu_set_menu_model ()

void
gtk_popover_menu_set_menu_model (GtkPopoverMenu *popover,
                                 GMenuModel *model);

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

Существующее содержимое popover удаляется, и popover заполняется новым содержимым в соответствии с model .

Параметры

popover

a GtkPopoverMenu

model

модель GMenuModel, или NULL.

[nullable]

gtk_popover_menu_get_menu_model ()

GMenuModel *
gtk_popover_menu_get_menu_model (GtkPopoverMenu *popover);

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

Параметры

popover

a GtkPopoverMenu

Возвращает

модель меню для popover .

[transfer none]

gtk_popover_menu_add_child ()

gboolean
gtk_popover_menu_add_child (GtkPopoverMenu *popover,
                            GtkWidget *child,
                            const char *id);

Добавляет пользовательский виджет в сгенерированное меню.

Для этого модель меню popover должна содержать элемент с атрибутом custom, который соответствует id .

Параметры

popover

a GtkPopoverMenu

child

the GtkWidget для добавления

id

Идентификатор для вставки child

Возвращает

TRUE если id был найден и виджет добавлен

gtk_popover_menu_remove_child ()

gboolean
gtk_popover_menu_remove_child (GtkPopoverMenu *popover,
                               GtkWidget *child);

Удаляет виджет, ранее добавленный с помощью gtk_popover_menu_add_child().

Параметры

popover

a GtkPopoverMenu

child

the GtkWidget для удаления

Возвращает

TRUE если виджет был удалён

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

GtkPopoverMenu

typedef struct _GtkPopoverMenu GtkPopoverMenu;

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

Флаги, влияющие на создание всплывающих меню из модели меню.

Члены

GTK_POPOVER_MENU_NESTED

Создавать подменю как вложенные всплывающие меню. Без этого флага подменю создаются как сдвигающиеся страницы, которые заменяют основное меню.

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

Свойство “menu-model”

  “menu-model”               GMenuModel *

Модель, из которой создаётся меню.

Владелец: GtkPopoverMenu

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

Свойство “visible-submenu”

  “visible-submenu”          char *

Имя видимого подменю.

Владелец: GtkPopoverMenu

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

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

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

Spec-Zone.ru

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