GtkMenu
GtkMenu — Виджет меню
Функции
Свойства
| GtkAccelGroup * | accel-group | Чтение/Запись |
| char * | accel-path | Чтение/Запись |
| int | active | Чтение/Запись |
| GdkAnchorHints | anchor-hints | Чтение/Запись/Создание |
| GtkWidget * | attach-widget | Чтение/Запись |
| GdkWindowTypeHint | menu-type-hint | Чтение/Запись/Создание |
| int | monitor | Чтение/Запись |
| int | rect-anchor-dx | Чтение/Запись/Создание |
| int | rect-anchor-dy | Чтение/Запись/Создание |
| gboolean | reserve-toggle-size | Чтение/Запись |
| gboolean | tearoff-state | Чтение/Запись |
| char * | tearoff-title | Чтение/Запись |
Свойства дочерних элементов
| int | bottom-attach | Чтение/Запись |
| int | left-attach | Чтение/Запись |
| int | right-attach | Чтение/Запись |
| int | top-attach | Чтение/Запись |
Свойства стиля
| GtkArrowPlacement | arrow-placement | Чтение |
| float | arrow-scaling | Чтение |
| gboolean | double-arrows | Чтение |
| int | horizontal-offset | Чтение |
| int | horizontal-padding | Чтение |
| int | vertical-offset | Чтение |
| int | vertical-padding | Чтение |
Сигналы
| void | move-scroll | Действие |
| void | popped-up | Выполняется в первую очередь |
Типы и значения
| struct | GtkMenu |
| enum | GtkArrowPlacement |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkContainer
╰── GtkMenuShell
╰── GtkMenu
╰── GtkRecentChooserMenu
Реализованные интерфейсы
GtkMenu реализует AtkImplementorIface и GtkBuildable.
Включаемые файлы
#include <gtk/gtk.h>
Описание
A GtkMenu — это GtkMenuShell, который реализует выпадающее меню, состоящее из списка GtkMenuItem объектов, которые пользователь может навигировать и активировать для выполнения функций приложения.
Меню GtkMenu обычно вызывается при активации GtkMenuItem в GtkMenuBar или вызывается при активации GtkMenuItem в другом GtkMenu.
Меню GtkMenu также может быть вызвано при активации GtkComboBox. Другие составные виджеты, такие как GtkNotebook, также могут вызывать GtkMenu.
Приложения могут отобразить GtkMenu как всплывающее меню, вызвав функцию gtk_menu_popup(). В примере ниже показано, как приложение может отобразить всплывающее меню при нажатии третьей кнопки мыши.
Обработка сигнала всплывания.
Обработчик сигнала, отображающий всплывающее меню.
Узлы CSS
// connect our handler which will popup the menu g_signal_connect_swapped (window, "button_press_event", G_CALLBACK (my_popup_handler), menu);
Основной узел CSS GtkMenu имеет имя menu, и есть два дочерних узла с именем arrow для стрелок меню прокрутки. Эти дочерние узлы получают классы стиля .top и .bottom.
Функции
gtk_menu_new_from_model ()
GtkWidget *
gtk_menu_new_from_model (GMenuModel *model); Создаёт GtkMenu и заполняет его пунктами меню и подменю в соответствии с model.
Созданные пункты меню подключены к действиям, найденным в GtkApplicationWindow, к которому относится меню — обычно путём прикрепления к виджету (см. gtk_menu_attach_to_widget()), который находится внутри иерархии виджетов GtkApplicationWindows.
Действия также могут быть добавлены с помощью gtk_widget_insert_action_group() к виджету прикрепления меню или любому из его родительских виджетов.
Параметры
model | a GMenuModel |
Возвращает
новый GtkMenu
С: 3.4
gtk_menu_set_screen ()
void gtk_menu_set_screen (GtkMenu *menu,GdkScreen *screen);
Устанавливает GdkScreen, на котором будет отображаться меню.
Параметры
С: 2.2
gtk_menu_reorder_child ()
void gtk_menu_reorder_child (GtkMenu *menu,GtkWidget *child,gint position);
Перемещает child в новое position в списке menu дочерних элементов.
Параметры
menu | a GtkMenu | |
child | the GtkMenuItem для перемещения | |
position | новое положение для размещения |
gtk_menu_attach ()
void gtk_menu_attach (GtkMenu *menu,GtkWidget *child,guint left_attach,guint right_attach,guint top_attach,guint bottom_attach);
Добавляет новый GtkMenuItem в меню (таблицу). Количество «ячеек», которые будет занимать элемент, задаётся left_attach, right_attach, top_attach и bottom_attach. Они представляют собой номера столбцов и строк самой левой, самой правой, самой верхней и самой нижней ячеек таблицы. (Столбцы и строки индексируются с нуля).
Обратите внимание, что эта функция не связана с gtk_menu_detach().
Параметры
menu | a GtkMenu | |
child | ||
left_attach | Номер столбца для прикрепления левой стороны элемента | |
right_attach | Номер столбца для прикрепления правой стороны элемента | |
top_attach | Номер строки для прикрепления верхней стороны элемента | |
bottom_attach | Номер строки для прикрепления нижней стороны элемента |
С: 2.4
gtk_menu_popup_at_rect ()
void gtk_menu_popup_at_rect (GtkMenu *menu,GdkWindow *rect_window,const GdkRectangle *rect,GdkGravity rect_anchor,GdkGravity menu_anchor,const GdkEvent *trigger_event);
Отображает menu и делает его доступным для выбора.
См. gtk_menu_popup_at_widget() и gtk_menu_popup_at_pointer(), которые обрабатывают более распространённые случаи для отображения меню.
menu будет позиционироваться по rect, выравнивая их точки привязки. rect относительно верхнего левого угла rect_window. rect_anchor и menu_anchor определяют точки привязки к rect и menu для совмещения. menu может быть дополнительно смещён на “rect-anchor-dx” и “rect-anchor-dy”.
Точки привязки следует указывать в предположении, что направление текста слева направо; они будут автоматически перевернуты по горизонтали, если направление текста справа налево.
Другие свойства, которые влияют на поведение этой функции, — “anchor-hints” и “menu-type-hint”. Подключитесь к сигналу “popped-up”, чтобы узнать, как он был фактически позиционирован.
Параметры
menu | the GtkMenu для отображения | |
rect_window | the GdkWindow относительно которого | [not nullable] |
rect | the GdkRectangle для выравнивания | [not nullable] |
rect_anchor | точка на | |
menu_anchor | точка на | |
trigger_event | the GdkEvent запустивший этот запрос или | [nullable] |
С: 3.22
gtk_menu_popup_at_widget ()
void gtk_menu_popup_at_widget (GtkMenu *menu,GtkWidget *widget,GdkGravity widget_anchor,GdkGravity menu_anchor,const GdkEvent *trigger_event);
Отображает menu и делает его доступным для выбора.
См. gtk_menu_popup_at_pointer(), чтобы отобразить меню в позиции указателя. gtk_menu_popup_at_rect() также позволяет позиционировать меню в произвольной прямоугольной области.
menu будет позиционирован относительно widget, выравнивая их точки якорной привязки. widget_anchor и menu_anchor определяют точки якорной привязки для widget и menu соответственно. menu можно дополнительно сместить на “rect-anchor-dx” и “rect-anchor-dy”.
Якорные точки должны быть указаны с учетом направления текста слева направо; они будут автоматически изменены на горизонтально обратные, если направление текста справа налево.
Другие свойства, влияющие на поведение этой функции, — это “anchor-hints” и “menu-type-hint”. Подключитесь к сигналу “popped-up”, чтобы узнать, как он был фактически расположен.
Параметры
menu | меню GtkMenu для отображения | |
widget | элемент GtkWidget для выравнивания | [не может быть NULL] |
widget_anchor | точка на | |
menu_anchor | точка на | |
trigger_event | событие GdkEvent, которое инициировало запрос, или | [может быть NULL] |
С: 3.22
gtk_menu_popup_at_pointer ()
void gtk_menu_popup_at_pointer (GtkMenu *menu,const GdkEvent *trigger_event);
Отображает menu и делает его доступным для выбора.
См. gtk_menu_popup_at_widget(), чтобы отобразить меню в позиции элемента. gtk_menu_popup_at_rect() также позволяет позиционировать меню в произвольной прямоугольной области.
menu будет позиционирован относительно указателя, связанного с trigger_event.
Свойства, влияющие на поведение этой функции, — это “anchor-hints”, “rect-anchor-dx”, “rect-anchor-dy” и “menu-type-hint”. Подключитесь к сигналу “popped-up”, чтобы узнать, как он был фактически расположен.
Параметры
С: 3.22
gtk_menu_popup_for_device ()
void gtk_menu_popup_for_device (GtkMenu *menu,GdkDevice *device,GtkWidget *parent_menu_shell,GtkWidget *parent_menu_item,GtkMenuPositionFunc func,gpointer data,GDestroyNotify destroy,guint button,guint32 activate_time);
gtk_menu_popup_for_device устарел начиная с версии 3.22 и не должен использоваться в новом коде.
Пожалуйста, используйте gtk_menu_popup_at_widget(), gtk_menu_popup_at_pointer() или gtk_menu_popup_at_rect() вместо этого.
Отображает меню и делает его доступным для выбора.
Приложения могут использовать эту функцию для отображения контекстных меню, и обычно будут передавать NULL для параметров parent_menu_shell, parent_menu_item, func, data и destroy. По умолчанию функция позиционирования меню разместит его в текущем положении device (или его соответствующего указателя).
Параметр button должен содержать кнопку мыши, нажатие которой инициировало всплывающее меню. Если всплывающее меню было инициировано не нажатием кнопки мыши, например, отпусканием кнопки мыши или нажатием клавиши, button должно быть равно 0.
Параметр activate_time используется для разрешения конфликтов при одновременном запросе захвата мыши/клавиатуры. Для корректной работы он должен содержать временной отметку события пользователя (например, щелчка мыши или нажатия клавиши), вызвавшего инициацию всплывающего меню. Только если такое событие недоступно, можно использовать gtk_get_current_event_time().
Обратите внимание, что эта функция работает не очень хорошо на GDK-бекендах, не имеющих глобальных координат, таких как Wayland или Mir. Вы, вероятно, должны использовать одну из функций gtk_menu_popup_at_, которые не имеют этой проблемы.
Параметры
menu | a GtkMenu | |
device | a GdkDevice. | [allow-none] |
parent_menu_shell | the menu shell containing the triggering menu item, or | [allow-none] |
parent_menu_item | the menu item whose activation triggered the popup, or | [allow-none] |
func | a user supplied function used to position the menu, or | [allow-none] |
data | user supplied data to be passed to | [allow-none] |
destroy | destroy notify for | [allow-none] |
button | the mouse button which was pressed to initiate the event | |
activate_time | the time at which the activation event occurred |
С: 3.0
gtk_menu_popup ()
void gtk_menu_popup (GtkMenu *menu,GtkWidget *parent_menu_shell,GtkWidget *parent_menu_item,GtkMenuPositionFunc func,gpointer data,guint button,guint32 activate_time);
gtk_menu_popup устарел начиная с версии 3.22 и не должен использоваться в новом коде.
Пожалуйста, используйте gtk_menu_popup_at_widget(), gtk_menu_popup_at_pointer() или gtk_menu_popup_at_rect() вместо этого.
Отображает меню и делает его доступным для выбора.
Приложения могут использовать эту функцию для отображения контекстных меню, и обычно будут передавать NULL для параметров parent_menu_shell, parent_menu_item, func и data. По умолчанию функция позиционирования меню разместит его в текущем положении курсора мыши.
Параметр button должен содержать кнопку мыши, нажатие которой инициировало всплывающее меню. Если всплывающее меню было инициировано не нажатием кнопки мыши, например, отпусканием кнопки мыши или нажатием клавиши, button должно быть равно 0.
Параметр activate_time используется для разрешения конфликтов при одновременном запросе захвата мыши/клавиатуры. Для корректной работы он должен содержать временную метку события пользователя (например, щелчка мыши или нажатия клавиши), вызвавшего инициацию всплывающего меню. Только если такое событие недоступно, можно использовать gtk_get_current_event_time().
Обратите внимание, что эта функция работает не очень хорошо на GDK-бекендах, не имеющих глобальных координат, таких как Wayland или Mir. Вы, вероятно, должны использовать одну из функций gtk_menu_popup_at_, которые не имеют этой проблемы.
Параметры
gtk_menu_set_accel_group ()
void gtk_menu_set_accel_group (GtkMenu *menu,GtkAccelGroup *accel_group);
Устанавливает GtkAccelGroup, содержащий глобальные ускорители для меню. Эта группа ускорителей также должна быть добавлена во все окна, в которых используется это меню, с помощью gtk_window_add_accel_group(), чтобы эти окна поддерживали все ускорители, содержащиеся в этой группе.
Параметры
gtk_menu_get_accel_group ()
GtkAccelGroup *
gtk_menu_get_accel_group (GtkMenu *menu); Получает GtkAccelGroup, содержащий глобальные активаторы для меню. См. gtk_menu_set_accel_group().
Параметры
menu | a GtkMenu |
gtk_menu_set_accel_path ()
void gtk_menu_set_accel_path (GtkMenu *menu,const gchar *accel_path);
Устанавливает путь активатора для этого меню, из которого можно создавать пути активаторов для его непосредственных дочерних элементов и пунктов меню. Основная цель этой функции — избавить программиста от необходимости вызывать gtk_menu_item_set_accel_path() для каждого элемента меню, который должен поддерживать изменяемые пользователем активаторы во время выполнения. Вместо этого, вызвав gtk_menu_set_accel_path() для родительского элемента, каждый пункт меню этого меню, содержащий метку, описывающую его назначение, автоматически получает назначенный путь активатора.
Например, меню, содержащее пункты меню «Новый» и «Выход», после вызова gtk_menu_set_accel_path (menu, "<Gnumeric-Sheet>/File");, назначит своим пунктам пути активаторов: "<Gnumeric-Sheet>/File/New" и "<Gnumeric-Sheet>/File/Exit".
Назначение путей активаторов пунктам меню позволяет пользователю изменять их активаторы во время выполнения. Более подробную информацию о путях активаторов и их настройках по умолчанию можно найти в gtk_accel_map_add_entry().
Обратите внимание, что строка accel_path будет храниться в GQuark. Поэтому, если вы передаете статическую строку, вы можете сэкономить некоторое количество памяти, предварительно интернировав ее с помощью g_intern_static_string().
Параметры
menu | допустимое GtkMenu | |
accel_path | допустимый путь активатора или | [nullable] |
gtk_menu_get_accel_path ()
const gchar *
gtk_menu_get_accel_path (GtkMenu *menu); Возвращает путь активатора, установленный для меню.
Параметры
menu | допустимое GtkMenu |
Возвращает
установленный путь активатора для меню.
С: 2.14
gtk_menu_set_title ()
void gtk_menu_set_title (GtkMenu *menu,const gchar *title);
gtk_menu_set_title устарело с версии 3.10 и не должно использоваться в новом коде.
Устанавливает строку заголовка для меню.
Заголовок отображается, когда меню отображается как вырывающееся меню. Если title имеет значение NULL, меню проверит, прикреплено ли оно к родительскому пункту меню, и в случае положительного результата попытается использовать тот же текст, что и метка этого пункта меню.
Параметры
menu | a GtkMenu | |
title | строка, содержащая заголовок для меню, или | [nullable] |
gtk_menu_get_title ()
const gchar *
gtk_menu_get_title (GtkMenu *menu); gtk_menu_get_title устарело с версии 3.10 и не должно использоваться в новом коде.
Возвращает заголовок меню. См. gtk_menu_set_title().
Параметры
menu | a GtkMenu |
Возвращает
заголовок меню или NULL, если у меню нет установленного заголовка. Эта строка принадлежит GTK+ и не должна изменяться или освобождаться.
gtk_menu_set_monitor ()
void gtk_menu_set_monitor (GtkMenu *menu,gint monitor_num);
Сообщает GTK+, на каком мониторе должно быть отображено меню. См. gdk_monitor_get_geometry().
Эта функция должна вызываться из GtkMenuPositionFunc, если меню не должно отображаться на том же мониторе, что и указатель. Эта информация не может быть надежно определена из координат, возвращаемых GtkMenuPositionFunc, так как для очень длинных меню эти координаты могут выходить за пределы монитора или даже экрана.
Параметры
menu | a GtkMenu | |
monitor_num | номер монитора, на котором должно быть отображено меню |
С: 2.4
gtk_menu_get_monitor ()
gint
gtk_menu_get_monitor (GtkMenu *menu); Возвращает номер монитора, на котором следует отобразить меню.
Параметры
menu | a GtkMenu |
Возвращает
номер монитора, на котором следует отобразить меню, или -1, если монитор не задан
С: 2.14
gtk_menu_place_on_monitor ()
void gtk_menu_place_on_monitor (GtkMenu *menu,GdkMonitor *monitor);
Размещает menu на заданном мониторе.
Параметры
menu | a GtkMenu | |
monitor | монитор, на котором следует разместить меню |
С: 3.22
gtk_menu_get_tearoff_state ()
gboolean
gtk_menu_get_tearoff_state (GtkMenu *menu); gtk_menu_get_tearoff_state устарело с версии 3.10 и не должно использоваться в новом коде.
Возвращает, вырвано ли меню. См. gtk_menu_set_tearoff_state().
Параметры
menu | a GtkMenu |
Возвращает
TRUE если меню в данный момент вырвано.
gtk_menu_set_reserve_toggle_size ()
void gtk_menu_set_reserve_toggle_size (GtkMenu *menu,gboolean reserve_toggle_size);
Устанавливает, следует ли меню зарезервировать место для рисования переключателей или значков, независимо от их фактического наличия.
Параметры
menu | a GtkMenu | |
reserve_toggle_size | следует ли зарезервировать место для переключателей |
С: 2.18
gtk_menu_get_reserve_toggle_size ()
gboolean
gtk_menu_get_reserve_toggle_size (GtkMenu *menu); Возвращает, резервирует ли меню место для переключателей и значков, независимо от их фактического наличия.
Параметры
меню | a GtkMenu |
Возвращает
Резервируется ли место для переключателей в меню
С: 2.18
gtk_menu_popdown ()
void
gtk_menu_popdown (GtkMenu *menu); Удаляет меню с экрана.
Параметры
меню | a GtkMenu |
gtk_menu_reposition ()
void
gtk_menu_reposition (GtkMenu *menu); Перемещает меню в соответствии с его функцией позиционирования.
Параметры
меню | a GtkMenu |
gtk_menu_get_active ()
GtkWidget *
gtk_menu_get_active (GtkMenu *menu); Возвращает выбранный пункт меню из меню. Используется GtkComboBox.
Параметры
меню | a GtkMenu |
Возвращает
последний выбранный пункт меню GtkMenuItem. Если выбор еще не сделан, выбирается первый пункт меню.
[transfer none]
gtk_menu_set_active ()
void gtk_menu_set_active (GtkMenu *menu,guint index);
Выбирает указанный пункт меню в меню. Используется GtkComboBox и не должен использоваться другими.
Параметры
меню | a GtkMenu | |
индекс | индекс пункта меню для выбора. Значения индекса от 0 до n-1 |
gtk_menu_set_tearoff_state ()
void gtk_menu_set_tearoff_state (GtkMenu *menu,gboolean torn_off);
gtk_menu_set_tearoff_state устарел с версии 3.10 и не должен использоваться в новом коде.
Изменяет состояние отрыва меню. Меню обычно отображается как выпадающее меню, которое сохраняется до тех пор, пока меню активно. Оно также может отображаться как меню отрыва, которое сохраняется до тех пор, пока оно не будет закрыто или повторно подключено.
Параметры
меню | a GtkMenu | |
оторвано | Если |
gtk_menu_attach_to_widget ()
void gtk_menu_attach_to_widget (GtkMenu *menu,GtkWidget *attach_widget,GtkMenuDetachFunc detacher);
Прикрепляет меню к виджету и предоставляет функцию обратного вызова, которая будет вызвана, когда меню вызовет gtk_menu_detach() во время своего уничтожения.
Если меню прикреплено к виджету, оно будет уничтожено при уничтожении виджета, как если бы это был дочерний виджет. Прикрепленное меню также будет правильно перемещаться между экранами, если виджет перемещается между экранами.
Параметры
меню | a GtkMenu | |
прикрепить_виджет | the GtkWidget к которому будет прикреплено меню | |
открепляющий | функция обратного вызова, предоставленная пользователем, которая будет вызвана, когда меню вызовет | [scope async][allow-none] |
gtk_menu_detach ()
void
gtk_menu_detach (GtkMenu *menu); Открепляет меню от виджета, к которому оно было прикреплено. Эта функция вызовет функцию обратного вызова, detacher , предоставленную при вызове функции gtk_menu_attach_to_widget().
Параметры
меню | a GtkMenu |
gtk_menu_get_attach_widget ()
GtkWidget *
gtk_menu_get_attach_widget (GtkMenu *menu); Возвращает GtkWidget, к которому прикреплено меню.
Параметры
меню | a GtkMenu |
gtk_menu_get_for_attach_widget ()
GList *
gtk_menu_get_for_attach_widget (GtkWidget *widget); Возвращает список меню, прикрепленных к этому виджету. Этот список принадлежит GTK+ и его нельзя изменять.
Параметры
виджет |
Возвращает
список меню, прикрепленных к этому виджету.
[element-type GtkWidget][transfer none]
С: 2.6
Функция GtkMenuPositionFunc
void (*GtkMenuPositionFunc) (GtkMenu *menu,gint *x,gint *y,gboolean *push_in,gpointer user_data);
Пользовательская функция, предоставляемая при вызове gtk_menu_popup(), которая управляет позиционированием меню при его отображении. Функция устанавливает параметры x и y в координаты, где должно быть отображено меню. Чтобы отобразить меню на другом мониторе, отличном от монитора указателя мыши, необходимо вызвать gtk_menu_set_monitor().
Параметры
меню | объект GtkMenu. | |
x | указатель на gint, представляющий горизонтальную позицию, где должно быть отображено меню. | [inout] |
y | указатель на gint, представляющий вертикальную позицию, где должно быть отображено меню. Это параметр вывода. | [inout] |
push_in | Этот параметр контролирует, как обрабатываются меню, расположенные за пределами монитора. Если этот параметр равен | [out] |
user_data | данные, предоставленные пользователем в параметре |
Функция GtkMenuDetachFunc
void (*GtkMenuDetachFunc) (GtkWidget *attach_widget,GtkMenu *menu);
Пользовательская функция, предоставляемая при вызове gtk_menu_attach_to_widget(), которая будет вызвана, когда меню будет позже отделено от виджета.
Другие подробности
Структура GtkMenu
struct GtkMenu;
Перечисление GtkArrowPlacement
Используется для указания расположения стрелок прокрутки в меню с прокруткой.
Элементы
GTK_ARROWS_BOTH | Размещение одной стрелки на каждом конце меню. | |
GTK_ARROWS_START | Размещение обеих стрелок вверху меню. | |
GTK_ARROWS_END | Размещение обеих стрелок внизу меню. |
Подробное описание свойств
Свойство “accel-group”
“accel-group” GtkAccelGroup *
Группа ускорителей, содержащая ускорители для меню.
Владелец: GtkMenu
Флаги: Чтение / Запись
С версии: 2.14
Свойство “accel-path”
“accel-path” char *
Путь ускорителя, используемый для удобной построения путей ускорителей дочерних элементов.
Владелец: GtkMenu
Флаги: Чтение / Запись
Значение по умолчанию: NULL
С версии: 2.14
Свойство “active”
“active” int
Индекс текущего выбранного пункта меню или -1, если ни один пункт не выбран.
Владелец: GtkMenu
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 2.14
Свойство “anchor-hints”
“anchor-hints” GdkAnchorHints
Рекомендации по позиционированию для выравнивания меню относительно прямоугольника.
Эти рекомендации определяют, как меню должно быть позиционировано в случае, если меню выйдет за пределы экрана, если расположить его в идеальной позиции.
Например, GDK_ANCHOR_FLIP_Y заменит GDK_GRAVITY_NORTH_WEST на GDK_GRAVITY_SOUTH_WEST и наоборот, если меню выходит за нижний край монитора.
См. gtk_menu_popup_at_rect(), gtk_menu_popup_at_widget(), gtk_menu_popup_at_pointer(), “rect-anchor-dx”, “rect-anchor-dy”, “menu-type-hint” и “popped-up”.
Владелец: GtkMenu
Флаги: Чтение / Запись / Построение
Значение по умолчанию: GDK_ANCHOR_FLIP_X | GDK_ANCHOR_FLIP_Y | GDK_ANCHOR_SLIDE_X | GDK_ANCHOR_SLIDE_Y | GDK_ANCHOR_RESIZE_X | GDK_ANCHOR_RESIZE_Y
С версии: 3.22
Свойство “attach-widget”
“attach-widget” GtkWidget *
Виджет, к которому прикреплено меню. Установка этого свойства прикрепляет меню без GtkMenuDetachFunc. Если вам нужно использовать функцию отсоединения, используйте gtk_menu_attach_to_widget() напрямую.
Владелец: GtkMenu
Флаги: Чтение / Запись
С версии: 2.14
Свойство “menu-type-hint”
“menu-type-hint” GdkWindowTypeHint
Тип GdkWindowTypeHint для использования для GdkWindow меню.
См. gtk_menu_popup_at_rect(), gtk_menu_popup_at_widget(), gtk_menu_popup_at_pointer(), “anchor-hints”, “rect-anchor-dx”, “rect-anchor-dy” и “popped-up”.
Владелец: GtkMenu
Флаги: Чтение / Запись / Построение
Значение по умолчанию: GDK_WINDOW_TYPE_HINT_POPUP_MENU
С версии: 3.22
Свойство “monitor”
“monitor” int
Монитор, на котором будет отображено меню.
Владелец: GtkMenu
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 2.14
Свойство “rect-anchor-dx”
“rect-anchor-dx” int
Горизонтальное смещение, применяемое к меню, т.е. к якорю прямоугольника или виджета.
См. gtk_menu_popup_at_rect(), gtk_menu_popup_at_widget(), gtk_menu_popup_at_pointer(), “anchor-hints”, “rect-anchor-dy”, “menu-type-hint” и “popped-up”.
Владелец: GtkMenu
Флаги: Чтение / Запись / Построение
Значение по умолчанию: 0
С версии: 3.22
Свойство “rect-anchor-dy”
“rect-anchor-dy” int
Вертикальное смещение, применяемое к меню, т.е. к якорю прямоугольника или виджета.
См. gtk_menu_popup_at_rect(), gtk_menu_popup_at_widget(), gtk_menu_popup_at_pointer(), “anchor-hints”, “rect-anchor-dx”, “menu-type-hint” и “popped-up”.
Владелец: GtkMenu
Флаги: Чтение / Запись / Построение
Значение по умолчанию: 0
С версии: 3.22
Свойство “reserve-toggle-size”
“reserve-toggle-size” gboolean
Логическое значение, указывающее, резервирует ли меню место для переключателей и значков, независимо от их фактического присутствия.
Это свойство следует изменять только от значения по умолчанию для специальных целей, таких как табличные меню. Обычные меню, подключенные к строке меню или контекстным меню, должны резервировать место для переключателей для согласованности.
Владелец: GtkMenu
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
С версии: 2.18
Свойство “tearoff-state”
“tearoff-state” gboolean
Логическое значение, указывающее, отсоединено ли меню.
GtkMenu:tearoff-state устарело с версии 3.10 и не должно использоваться в новом коде.
Владелец: GtkMenu
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
С версии: 2.6
Свойство “tearoff-title”
“tearoff-title” char *
Название, которое может отображаться менеджером окон, когда это меню отсоединено.
GtkMenu:tearoff-title устарело с версии 3.10 и не должно использоваться в новом коде.
Владелец: GtkMenu
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Подробное описание свойств дочерних элементов
Свойство дочернего элемента “bottom-attach”
“bottom-attach” int
Номер строки, к которой прикрепляется нижняя часть дочернего элемента.
Владелец: GtkMenu
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
Свойство дочернего элемента “left-attach”
“left-attach” int
Номер столбца, к которому прикрепляется левая сторона дочернего элемента.
Владелец: GtkMenu
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
Свойство дочернего элемента “right-attach”
“right-attach” int
Номер столбца, к которому прикрепляется правая сторона дочернего элемента.
Владелец: GtkMenu
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
Свойство дочернего элемента “top-attach”
“top-attach” int
Номер строки, к которой прикрепляется верхняя часть дочернего элемента.
Владелец: GtkMenu
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
Подробное описание свойств стиля
Свойство стиля “arrow-placement”
“arrow-placement” GtkArrowPlacement
Указывает, где должны быть размещены стрелки прокрутки.
GtkMenu:arrow-placement устарело с версии 3.20 и не должно использоваться в новом коде.
Значение этого свойства стиля игнорируется.
Владелец: GtkMenu
Флаги: Чтение
Значение по умолчанию: GTK_ARROWS_BOTH
С версии: 2.16
Свойство стиля “arrow-scaling”
“arrow-scaling” float
Произвольная константа для масштабирования размера стрелки прокрутки.
GtkMenu:arrow-scaling устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте стандартные свойства CSS min-width/min-height для узла стрелки; значение этого свойства стиля игнорируется.
Владелец: GtkMenu
Флаги: Чтение
Допустимые значения: [0,1]
Значение по умолчанию: 0.7
С версии: 2.16
Свойство стиля “double-arrows”
“double-arrows” gboolean
Когда TRUE, обе стрелки отображаются при прокрутке.
GtkMenu:double-arrows устарело с версии 3.20 и не должно использоваться в новом коде.
Значение этого свойства стиля игнорируется.
Владелец: GtkMenu
Флаги: Чтение
Значение по умолчанию: TRUE
Свойство стиля “horizontal-offset”
“horizontal-offset” int
Если меню является подменю, установите смещение по горизонтали в пикселях.
Владелец: GtkMenu
Флаги: Чтение
Значение по умолчанию: -2
Свойство стиля “horizontal-padding”
“horizontal-padding” int
Дополнительное пространство слева и справа от меню.
GtkMenu:horizontal-padding устарело с версии 3.8 и не должно использоваться в новом коде.
Используйте стандартное свойство padding CSS (через объекты, такие как GtkStyleContext и GtkCssProvider); значение этого свойства стиля игнорируется.
Владелец: GtkMenu
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 0
Свойство стиля “vertical-offset”
“vertical-offset” int
Если меню является подменю, установите смещение по вертикали в пикселях.
Владелец: GtkMenu
Флаги: Чтение
Значение по умолчанию: 0
Свойство стиля “vertical-padding”
“vertical-padding” int
Дополнительное пространство сверху и снизу меню.
GtkMenu:vertical-padding устарело с версии 3.8 и не должно использоваться в новом коде.
Используйте стандартное свойство padding CSS (через объекты, такие как GtkStyleContext и GtkCssProvider); значение этого свойства стиля игнорируется.
Владелец: GtkMenu
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 1
Подробное описание сигналов
Сигнал “move-scroll”
void user_function (GtkMenu *menu, GtkScrollType scroll_type, gpointer user_data)
Параметры
меню | объект GtkMenu | |
тип_прокрутки | перечисление GtkScrollType | |
данные_пользователя | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
Сигнал “popped-up”
void user_function (GtkMenu *menu, gpointer flipped_rect, gpointer final_rect, gboolean flipped_x, gboolean flipped_y, gpointer user_data)
Выдаётся, когда позиция menu окончательно определена после вызова gtk_menu_popup_at_rect(), gtk_menu_popup_at_widget() или gtk_menu_popup_at_pointer().
menu может быть повернут относительно прямоугольника якоря, чтобы остаться на экране, в этом случае flipped_x и flipped_y будут установлены в TRUE соответственно.
flipped_rect — идеальная позиция menu после возможного поворота, но до возможного смещения. final_rect — flipped_rect, но, возможно, смещённая, если поворот по-прежнему недостаточен для размещения menu на экране.
Синее меню — идеальная позиция menu, зелёное меню — flipped_rect, а красное меню — final_rect.
См. gtk_menu_popup_at_rect(), gtk_menu_popup_at_widget(), gtk_menu_popup_at_pointer(), свойство «anchor-hints», свойство «rect-anchor-dx», свойство «rect-anchor-dy» и свойство «menu-type-hint».
Параметры
меню | объект GtkMenu, который был вызван | |
flipped_rect | позиция | [nullable] |
final_rect | конечная позиция | [nullable] |
flipped_x |
| |
flipped_y |
| |
данные_пользователя | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполняется первым
С версии: 3.22
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkMenu.html