GtkMenuButton
GtkMenuButton — Виджет, отображающий всплывающее меню при нажатии
Функции
Свойства
| GtkContainer * | align-widget | Чтение / Запись |
| GtkArrowType | direction | Чтение / Запись |
| GMenuModel * | menu-model | Чтение / Запись |
| GtkPopover * | popover | Чтение / Запись |
| GtkMenu * | popup | Чтение / Запись |
| gboolean | use-popover | Чтение / Запись |
Типы и значения
| struct | GtkMenuButton |
| перечисление | GtkArrowType |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkContainer ╰── GtkBin ╰── GtkButton ╰── GtkToggleButton ╰── GtkMenuButton
Реализованные интерфейсы
GtkMenuButton реализует AtkImplementorIface, GtkBuildable, GtkActionable и GtkActivatable.
Файлы заголовков
#include <gtk/gtk.h>
Описание
Виджет GtkMenuButton используется для отображения всплывающего меню при нажатии. Это всплывающее меню может быть представлено как GtkMenu, GtkPopover или абстрактный GMenuModel.
Виджет GtkMenuButton может содержать любой допустимый дочерний виджет. То есть, он может содержать практически любой другой стандартный виджет GtkWidget. Наиболее часто используемым дочерним виджетом является GtkImage. Если в GtkMenuButton не указан явно виджет, автоматически создается виджет GtkImage с изображением стрелки, ориентированной в соответствии со свойством «direction» или универсальным изображением "view-context-menu", если направление не задано.
Расположение всплывающего меню определяется свойством «direction» кнопки меню.
Для меню также учитываются свойства «halign» и «valign» меню. Например, когда направление равно GTK_ARROW_DOWN, а горизонтальное выравнивание равно GTK_ALIGN_START, меню будет размещено под кнопкой, при этом начальная граница (в зависимости от направления текста) меню выровнена с начальной границей кнопки. Если места под кнопкой недостаточно, меню всплывает над кнопкой вместо этого. Если выравнивание приведет к тому, что часть меню выйдет за экран, оно будет «отведено» внутрь.
Direction = Down
-
halign = start
-
halign = center
-
halign = end
Direction = Up
-
halign = start
-
halign = center
-
halign = end
Direction = Left
-
valign = start
-
valign = center
-
valign = end
Direction = Right
-
valign = start
-
valign = center
-
valign = end
CSS узлы
GtkMenuButton имеет один CSS узел с именем button. Чтобы отличить его от обычной кнопки GtkButton, к нему добавляется класс стиля .popup.
Функции
gtk_menu_button_new ()
GtkWidget *
gtk_menu_button_new (void); Создаёт новый виджет GtkMenuButton со стрелкой вниз, являющейся единственным дочерним элементом. Вы можете заменить этот дочерний виджет другим виджетом GtkWidget, если нужно.
Возвращает
Созданный виджет GtkMenuButton
С: 3.6
gtk_menu_button_set_popup ()
void gtk_menu_button_set_popup (GtkMenuButton *menu_button,GtkWidget *menu);
Устанавливает GtkMenu, который будет появляться при нажатии на кнопку, или NULL, чтобы отключить кнопку. Если установлены “menu-model” или “popover”, они будут установлены в значение NULL.
Параметры
menu_button | объект GtkMenuButton | |
menu | объект GtkMenu. | [allow-none] |
С: 3.6
gtk_menu_button_get_popup ()
GtkMenu *
gtk_menu_button_get_popup (GtkMenuButton *menu_button); Возвращает GtkMenu, который отображается при нажатии на кнопку. Если кнопка не использует GtkMenu, эта функция возвращает NULL.
Параметры
menu_button | объект GtkMenuButton |
С: 3.6
gtk_menu_button_set_popover ()
void gtk_menu_button_set_popover (GtkMenuButton *menu_button,GtkWidget *popover);
Устанавливает GtkPopover, который будет появляться при нажатии на кнопку, или NULL для отключения кнопки. Если установлены “menu-model” или “popup”, они будут установлены в NULL.
Параметры
menu_button | объект GtkMenuButton | |
popover | объект GtkPopover. | [allow-none] |
С: 3.12
gtk_menu_button_get_popover ()
GtkPopover *
gtk_menu_button_get_popover (GtkMenuButton *menu_button); Возвращает GtkPopover, который отображается при нажатии на кнопку. Если кнопка не использует GtkPopover, эта функция возвращает NULL.
Параметры
menu_button | объект GtkMenuButton |
С: 3.12
gtk_menu_button_set_menu_model ()
void gtk_menu_button_set_menu_model (GtkMenuButton *menu_button,GMenuModel *menu_model);
Устанавливает GMenuModel, на основе которого будет создан выпадающий список, или NULL для отключения кнопки.
В зависимости от значения “use-popover”, будет создан либо GtkMenu с помощью gtk_menu_new_from_model(), либо GtkPopover с помощью gtk_popover_new_from_model(). В обоих случаях действия будут связаны, как документировано для этих функций.
Если “popup” или “popover” уже установлены, их содержимое будет потеряно и заменено вновь созданным выпадающим списком.
Параметры
menu_button | объект GtkMenuButton | |
menu_model | объект GMenuModel. | [allow-none] |
С: 3.6
gtk_menu_button_get_menu_model ()
GMenuModel *
gtk_menu_button_get_menu_model (GtkMenuButton *menu_button); Возвращает GMenuModel, используемый для создания выпадающего списка.
Параметры
menu_button | объект GtkMenuButton |
С: 3.6
gtk_menu_button_set_use_popover ()
void gtk_menu_button_set_use_popover (GtkMenuButton *menu_button,gboolean use_popover);
Устанавливает, следует ли создавать GtkPopover вместо GtkMenu при вызове gtk_menu_button_set_menu_model(). Обратите внимание, что это свойство учитывается только при установке новой модели меню.
Параметры
menu_button | ||
use_popover |
|
С: 3.12
gtk_menu_button_get_use_popover ()
gboolean
gtk_menu_button_get_use_popover (GtkMenuButton *menu_button); Возвращает, будет ли создаваться GtkPopover или GtkMenu из модели меню.
Параметры
menu_button |
Возвращаемое значение
TRUE, если используется GtkPopover
С: 3.12
gtk_menu_button_set_direction ()
void gtk_menu_button_set_direction (GtkMenuButton *menu_button,GtkArrowType direction);
Устанавливает направление, в котором будет всплывать всплывающее меню, а также изменяет направление стрелки. Дочерний элемент не будет изменён на стрелку, если он был настроен.
Если размещение не помещается в доступное пространство в заданном направлении, GTK+ постарается разместить его на экране и полностью отобразить.
Если для direction передать GTK_ARROW_NONE, всплывающее меню будет вести себя так, как если бы вы передали GTK_ARROW_DOWN (хотя вы не увидите стрелок).
Параметры
menu_button | ||
direction |
С: 3.6
gtk_menu_button_get_direction ()
GtkArrowType
gtk_menu_button_get_direction (GtkMenuButton *menu_button); Возвращает направление, в котором будет указывать всплывающее меню при всплывании.
Параметры
menu_button |
Возвращаемое значение
Значение типа GtkArrowType
С: 3.6
gtk_menu_button_set_align_widget ()
void gtk_menu_button_set_align_widget (GtkMenuButton *menu_button,GtkWidget *align_widget);
Устанавливает GtkWidget, используемый для выравнивания меню при всплывании. Обратите внимание, что align_widget должен содержать сам GtkMenuButton.
Установка значения NULL означает, что меню будет выровнено с самим кнопкой.
Обратите внимание, что это свойство используется только с меню, а не со всплывающими окнами.
Параметры
menu_button | ||
align_widget | a GtkWidget. | [allow-none] |
С: 3.6
gtk_menu_button_get_align_widget ()
GtkWidget *
gtk_menu_button_get_align_widget (GtkMenuButton *menu_button); Возвращает родительский GtkWidget, используемый для выравнивания меню.
Параметры
menu_button |
С: 3.6
Типы и значения
struct GtkMenuButton
struct GtkMenuButton;
Перечисление GtkArrowType
Используется для указания направления, в котором должна указывать стрелка.
Элементы
GTK_ARROW_UP | Представляет стрелку, направленную вверх. | |
GTK_ARROW_DOWN | Представляет стрелку, направленную вниз. | |
GTK_ARROW_LEFT | Представляет стрелку, направленную влево. | |
GTK_ARROW_RIGHT | Представляет стрелку, направленную вправо. | |
GTK_ARROW_NONE | Нет стрелки. С версии 2.10. |
Подробное описание свойств
Свойство “align-widget”
“align-widget” GtkContainer *
Элемент GtkWidget, используемый для выравнивания меню.
Флаги: Чтение / Запись
С: 3.6
Свойство “direction”
“direction” GtkArrowType
Тип GtkArrowType, определяющий направление выпадающего меню или всплывающего окна.
Флаги: Чтение / Запись
Значение по умолчанию: GTK_ARROW_DOWN
С: 3.6
Свойство “menu-model”
“menu-model” GMenuModel *
Модель GMenuModel, на основе которой будет создано всплывающее меню. В зависимости от свойства “use-popover”, это может быть обычное меню или всплывающее окно.
См. gtk_menu_button_set_menu_model() для взаимодействия со свойством “popup”.
Флаги: Чтение / Запись
С: 3.6
Свойство “popover”
“popover” GtkPopover *
Всплывающее окно GtkPopover, которое будет отображаться при нажатии на кнопку.
Флаги: Чтение / Запись
С: 3.12
Свойство “popup”
“popup” GtkMenu *
Меню GtkMenu, которое будет отображаться при нажатии на кнопку.
Флаги: Чтение / Запись
С: 3.6
Свойство “use-popover”
“use-popover” gboolean
Определяет, будет ли создаваться всплывающее окно GtkPopover или обычное меню GtkMenu из модели меню.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
С: 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.22/GtkMenuButton.html