GtkMenuButton
GtkMenuButton — Виджет, отображающий всплывающее меню при нажатии
Функции
| GtkWidget * | gtk_menu_button_new () |
| void | gtk_menu_button_set_popover () |
| GtkPopover * | gtk_menu_button_get_popover () |
| void | gtk_menu_button_set_menu_model () |
| GMenuModel * | gtk_menu_button_get_menu_model () |
| void | gtk_menu_button_set_direction () |
| GtkArrowType | gtk_menu_button_get_direction () |
| void | gtk_menu_button_set_icon_name () |
| const char * | gtk_menu_button_get_icon_name () |
| void | gtk_menu_button_set_label () |
| const char * | gtk_menu_button_get_label () |
| void | gtk_menu_button_set_has_frame () |
| gboolean | gtk_menu_button_get_has_frame () |
| gboolean | gtk_menu_button_get_use_underline () |
| void | gtk_menu_button_set_use_underline () |
| void | gtk_menu_button_popup () |
| void | gtk_menu_button_popdown () |
| void | (*GtkMenuButtonCreatePopupFunc) () |
| void | gtk_menu_button_set_create_popup_func () |
Свойства
| GtkArrowType | direction | Чтение/Запись |
| gboolean | has-frame | Чтение/Запись |
| char * | icon-name | Чтение/Запись |
| char * | label | Чтение/Запись |
| GMenuModel * | menu-model | Чтение/Запись |
| GtkPopover * | popover | Чтение/Запись |
| gboolean | use-underline | Чтение/Запись |
Типы и значения
| GtkMenuButton | |
| перечисление | GtkArrowType |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkMenuButton
Реализованные интерфейсы
GtkMenuButton реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.
Файлы заголовков
#include <gtk/gtk.h>
Описание
Виджет GtkMenuButton используется для отображения всплывающего меню при нажатии. Это всплывающее меню может быть представлено либо как GtkPopover, либо как абстрактный GMenuModel.
Виджет GtkMenuButton может отображать либо значок (устанавливается свойством “icon-name”), либо метку (устанавливается свойством “label”). Если ни то, ни другое не установлено явно, автоматически создаётся GtkImage со стрелочным изображением, ориентированным в соответствии со свойством “direction”, или общим значком «открытое меню» (symbolic), если свойство «direction» не установлено.
Позиционирование всплывающего меню определяется свойством “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-узлы
menubutton
╰── button.toggle
╰── [content]GtkMenuButton имеет один CSS-узел с именем menubutton, который содержит узел кнопки переключения.
Доступность
GtkMenuButton использует роль GTK_ACCESSIBLE_ROLE_BUTTON.
Функции
gtk_menu_button_new ()
GtkWidget *
gtk_menu_button_new (void); Создаёт новый виджет GtkMenuButton со стрелкой вниз в качестве единственного дочернего элемента. Вы можете заменить дочерний виджет на другой виджет GtkWidget, если хотите.
Возвращает
Новый созданный виджет GtkMenuButton
gtk_menu_button_set_popover ()
void gtk_menu_button_set_popover (GtkMenuButton *menu_button,GtkWidget *popover);
Устанавливает GtkPopover, который будет появляться при нажатии на menu_button, или NULL для отключения любого существующего всплывающего меню и отключения кнопки.
Если “menu-model” установлен, модель меню отсоединяется от menu_button, и свойство устанавливается в NULL.
Параметры
menu_button | виджет GtkMenuButton | |
popover | виджет GtkPopover, или | [nullable] |
gtk_menu_button_get_popover ()
GtkPopover *
gtk_menu_button_get_popover (GtkMenuButton *menu_button); Возвращает GtkPopover, который всплывает из кнопки. Если кнопка не использует GtkPopover, эта функция возвращает NULL.
Параметры
menu_button | виджет GtkMenuButton |
gtk_menu_button_set_menu_model ()
void gtk_menu_button_set_menu_model (GtkMenuButton *menu_button,GMenuModel *menu_model);
Устанавливает GMenuModel для построения всплывающего меню, или NULL для отсоединения любой существующей модели меню и отключения кнопки.
Для построения GtkPopover из модели меню будет использована функция gtk_popover_menu_new_from_model(). Действия будут подключены, как описано для этой функции.
Если “popover” уже установлен, он будет отсоединён от menu_button, и свойство будет установлено в NULL.
Параметры
menu_button | виджет GtkMenuButton | |
menu_model | модель GMenuModel, или | [nullable] |
gtk_menu_button_get_menu_model ()
GMenuModel *
gtk_menu_button_get_menu_model (GtkMenuButton *menu_button); Возвращает GMenuModel, используемый для создания всплывающего меню.
Параметры
menu_button | виджет GtkMenuButton |
Возвращает
модель GMenuModel или NULL.
[nullable][transfer none]
gtk_menu_button_set_direction ()
void gtk_menu_button_set_direction (GtkMenuButton *menu_button,GtkArrowType direction);
Устанавливает направление, в котором будет всплывать всплывающее меню, а также изменяет направление стрелки. Дочерний элемент не будет изменён на стрелку, если он был настроен.
Если элемент не помещается в доступное пространство в заданном направлении, GTK постарается разместить его на экране так, чтобы он был полностью виден.
Если вы передадите GTK_ARROW_NONE для direction, всплывающее меню будет вести себя так, как если бы вы передали GTK_ARROW_DOWN (хотя стрелки вы не увидите).
Параметры
menu_button | виджет GtkMenuButton | |
direction | значение GtkArrowType |
gtk_menu_button_get_direction ()
GtkArrowType
gtk_menu_button_get_direction (GtkMenuButton *menu_button); Возвращает направление, в котором будет всплывать всплывающее меню.
Параметры
menu_button | виджет GtkMenuButton |
Возвращает
значение GtkArrowType
gtk_menu_button_set_icon_name ()
void gtk_menu_button_set_icon_name (GtkMenuButton *menu_button,const char *icon_name);
Устанавливает имя иконки, отображаемой внутри кнопки меню.
Параметры
menu_button | виджет GtkMenuButton | |
icon_name | имя иконки |
gtk_menu_button_get_icon_name ()
const char *
gtk_menu_button_get_icon_name (GtkMenuButton *menu_button); Возвращает имя иконки, отображаемой на кнопке.
Параметры
menu_button | виджет GtkMenuButton |
Возвращает
имя иконки, отображаемой на кнопке
gtk_menu_button_set_label ()
void gtk_menu_button_set_label (GtkMenuButton *menu_button,const char *label);
Устанавливает текст, отображаемый внутри кнопки меню.
Параметры
menu_button | виджет GtkMenuButton | |
label | текст |
gtk_menu_button_get_label ()
const char *
gtk_menu_button_get_label (GtkMenuButton *menu_button); Возвращает отображаемый на кнопке текст.
Параметры
menu_button | виджет GtkMenuButton |
Возвращает
текст, отображаемый на кнопке
gtk_menu_button_set_has_frame ()
void gtk_menu_button_set_has_frame (GtkMenuButton *menu_button,gboolean has_frame);
Устанавливает стиль кнопки.
Параметры
menu_button | виджет GtkMenuButton | |
has_frame | признак наличия рамки вокруг кнопки |
gtk_menu_button_get_has_frame ()
gboolean
gtk_menu_button_get_has_frame (GtkMenuButton *menu_button); Возвращает, имеет ли кнопка рамку.
Параметры
menu_button |
Возвращает
TRUE если кнопка имеет рамку
gtk_menu_button_get_use_underline ()
gboolean
gtk_menu_button_get_use_underline (GtkMenuButton *menu_button); Возвращает, указывает ли встроенное подчеркивание в тексте на мнемонический символ. См. gtk_menu_button_set_use_underline().
Параметры
menu_button |
Возвращает
TRUE указывает ли встроенное подчеркивание в тексте на мнемонические клавиши ускорения.
gtk_menu_button_set_use_underline ()
void gtk_menu_button_set_use_underline (GtkMenuButton *menu_button,gboolean use_underline);
Если истинно, то подчеркивание в тексте указывает, что следующий символ должен использоваться в качестве мнемонической клавиши ускорения.
Параметры
menu_button | ||
use_underline |
|
gtk_menu_button_popup ()
void
gtk_menu_button_popup (GtkMenuButton *menu_button); Вызывает всплывающее меню.
Параметры
menu_button |
gtk_menu_button_popdown ()
void
gtk_menu_button_popdown (GtkMenuButton *menu_button); Закрывает всплывающее меню.
Параметры
menu_button |
GtkMenuButtonCreatePopupFunc ()
void (*GtkMenuButtonCreatePopupFunc) (GtkMenuButton *menu_button,gpointer user_data);
Функция обратного вызова, предоставляемая пользователем, для создания всплывающего меню для menu_button по требованию. Эта функция вызывается, когда всплывающее меню menu_button отображается, но не было предоставлено через gtk_menu_button_set_popover() или gtk_menu_button_set_menu_model().
Параметры
menu_button | the GtkMenuButton | |
user_data | Данные пользователя, переданные в |
gtk_menu_button_set_create_popup_func ()
void gtk_menu_button_set_create_popup_func (GtkMenuButton *menu_button,GtkMenuButtonCreatePopupFunc func,gpointer user_data,GDestroyNotify destroy_notify);
Устанавливает func для вызова, когда всплывающее меню собирается отобразиться. func должен использовать один из
gtk_menu_button_set_popover()
gtk_menu_button_set_menu_model()
для установки всплывающего меню для menu_button . Если func не NULL, menu_button всегда будет активным.
Использование этой функции не сбросит виджет меню, присоединенный к menu_button . Вместо этого это можно сделать вручную в func .
Параметры
menu_button | ||
func | функция для вызова, когда всплывающее меню собирается отобразиться, но не было предоставлено другими средствами, или | [nullable] |
user_data | данные пользователя, передаваемые в | [closure] |
destroy_notify | уведомление о уничтожении для | [nullable] |
Типы и значения
GtkMenuButton
typedef struct _GtkMenuButton GtkMenuButton;
перечисление GtkArrowType
Используется для указания направления, в котором должен указывать стрелка.
Члены
GTK_ARROW_UP | Представляет стрелку, направленную вверх. | |
GTK_ARROW_DOWN | Представляет стрелку, направленную вниз. | |
GTK_ARROW_LEFT | Представляет стрелку, направленную влево. | |
GTK_ARROW_RIGHT | Представляет стрелку, направленную вправо. | |
GTK_ARROW_NONE | Без стрелки. |
Подробное описание свойств
Свойство “direction”
“direction” GtkArrowType
Тип GtkArrowType, представляющий направление, в котором будет всплывать меню или всплывающее окно.
Владелец: GtkMenuButton
Флаги: Чтение / Запись
Значение по умолчанию: GTK_ARROW_DOWN
Свойство “has-frame”
“has-frame” gboolean
Указывает, имеет ли кнопка рамку.
Владелец: GtkMenuButton
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “icon-name”
“icon-name” char *
Имя иконки, используемой для автоматического заполнения кнопки.
Владелец: GtkMenuButton
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “label”
“label” char *
Текст для кнопки.
Владелец: GtkMenuButton
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “menu-model”
“menu-model” GMenuModel *
Модель GMenuModel, из которой будет создано всплывающее меню.
См. gtk_menu_button_set_menu_model() для взаимодействия со свойством «popup».
Владелец: GtkMenuButton
Флаги: Чтение / Запись
Свойство “popover”
“popover” GtkPopover *
Всплывающее окно GtkPopover, которое будет отображаться при нажатии на кнопку.
Владелец: GtkMenuButton
Флаги: Чтение / Запись
Свойство “use-underline”
“use-underline” gboolean
Если установлено, подчеркивание в тексте указывает, что следующий символ должен использоваться в качестве мнемонической клавиши ускорения.
Владелец: GtkMenuButton
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
© 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/GtkMenuButton.html