краткое описание#include <gtk/gtk.h> gtkmenushell; void gtk_menu_shell_append (gtkmenushell *menu_shell, gtkwidget *child); void gtk_menu_shell_prepend (gtkmenushell *menu_shell, gtkwidget *child); void gtk_menu_shell_insert (gtkmenushell *menu_shell, gtkwidget *child, gint position); void gtk_menu_shell_deactivate (gtkmenushell *menu_shell); void gtk_menu_shell_select_item (gtkmenushell *menu_shell, gtkwidget *menu_item); void gtk_menu_shell_select_first (gtkmenushell *menu_shell, gboolean search_sensitive); void gtk_menu_shell_deselect (gtkmenushell *menu_shell); void gtk_menu_shell_activate_item (gtkmenushell *menu_shell, gtkwidget *menu_item, gboolean force_deactivate); void gtk_menu_shell_cancel (gtkmenushell *menu_shell); void gtk_menu_shell_set_take_focus (gtkmenushell *menu_shell, gboolean take_focus); gboolean gtk_menu_shell_get_take_focus (gtkmenushell *menu_shell); enum gtkmenudirectiontype; иерархия объектовgobject +----ginitiallyunowned +----gtkobject +----gtkwidget +----gtkcontainer +----gtkmenushell +----gtkmenubar +----gtkmenu осуществляемые интерфейсыgtkmenushell осуществляет atkimplementoriface. свойства"take-focus" gboolean : read / write сигналы"activate-current" void user_function (gtkmenushell *menushell, gboolean force_hide, gpointer user_data) : run last / action "cancel" void user_function (gtkmenushell *menushell, gpointer user_data) : run last / action "cycle-focus" void user_function (gtkmenushell *menushell, gtkdirectiontype arg1, gpointer user_data) : run last / action "deactivate" void user_function (gtkmenushell *menushell, gpointer user_data) : run first "move-current" void user_function (gtkmenushell *menushell, gtkmenudirectiontype direction, gpointer user_data) : run last / action "selection-done" void user_function (gtkmenushell *menushell, gpointer user_data) : run first описаниеgtkmenushell это абстрактный основной класс для получения подклассов gtkmenu и gtkmenubar. gtkmenushell содержит gtkmenuitem объекты в списке который может быть управляем, выбран и активирован пользователем для выполнения функций приложения. gtkmenuitem может иметь подменю связанное с ним, учитывая вложенные иерархические меню. деталиgtkmenushelltypedef struct _gtkmenushell gtkmenushell; gtkmenushell-struct структура содержащая нижеследующие поля. (эти поля должны быть доступны только для чтения. они никогда не должны устанавливаться приложением.)
gtk_menu_shell_append ()void gtk_menu_shell_append (gtkmenushell *menu_shell, gtkwidget *child); добавляет новый gtkmenuitem в конец списка пунктов оболочки меню.
gtk_menu_shell_prepend ()void gtk_menu_shell_prepend (gtkmenushell *menu_shell, gtkwidget *child); добавляет новый gtkmenuitem в начало списка пунктов оболочки меню.
gtk_menu_shell_insert ()void gtk_menu_shell_insert (gtkmenushell *menu_shell, gtkwidget *child, gint position); добавляет новый gtkmenuitem к списку пунктов оболочки меню в позицию определенную position.
gtk_menu_shell_deactivate ()void gtk_menu_shell_deactivate (gtkmenushell *menu_shell); дезактивирует оболочку меню. типичный результат этого удаление оболочки меню с экрана.
gtk_menu_shell_select_item ()void gtk_menu_shell_select_item (gtkmenushell *menu_shell, gtkwidget *menu_item); выбирает пункт меню из оболочки меню.
gtk_menu_shell_select_first ()void gtk_menu_shell_select_first (gtkmenushell *menu_shell, gboolean search_sensitive); выделяет первый видимый или доступный для выделения дочерний виджет оболочки меню; не выбирает отсоединяемый пункт за исключением единственного отделяемого пункта.
начиная с версии 2.2 gtk_menu_shell_deselect ()void gtk_menu_shell_deselect (gtkmenushell *menu_shell); снимает текущеме выделение пункта оболочки меню, если есть.
gtk_menu_shell_activate_item ()void gtk_menu_shell_activate_item (gtkmenushell *menu_shell, gtkwidget *menu_item, gboolean force_deactivate); активизирует пункт внутри оболочки меню.
gtk_menu_shell_cancel ()void gtk_menu_shell_cancel (gtkmenushell *menu_shell); отменяет выделение внутри оболочки меню.
начиная с версии 2.4 gtk_menu_shell_set_take_focus ()void gtk_menu_shell_set_take_focus (gtkmenushell *menu_shell, gboolean take_focus); если take_focus равен true (по умолчанию) оболочка меню примет фокус клавиатуры чтобы получать все события клавиатуры которые необходимы для перемещения по меню. установка take_focus в false полезна только для специальных приложений, таких как виртуальная клавиатура, выполнение которых не должно принимать фокус клавиатуры. состояние take_focus меню или панели меню автоматически распространяется на подменю всякий раз когда подменю всплывает, поэтому вы не должны волноваться о рекурсивной установки этого состояния для всей иерархии вашего меню. только программно выбирая подменю и выводя его на верх вручную, свойство take_focus подменю нужно установить явно. помните что установка в false имеет побочный эфект: если фокус находится в некотором другом приложении, это сохраняет фокус и клавиатурная навигация меню не работает. следовательно, клавиатурная навигация на меню будет работать только если фокус включен на некотором верхнем уровне владеющем экранной клавиатурой. чтобы не смущать пользователя, меню с take_focus установленном в false не должны отображать мнемоники или акселераторы, так как нельзя гарантировать что они будут работать. смотрите также gdk_keyboard_grab()
начиная с версии 2.8 gtk_menu_shell_get_take_focus ()gboolean gtk_menu_shell_get_take_focus (gtkmenushell *menu_shell); возвращает true если оболочка меню имеет появляющийся фокус клавиатуры.
начиная с версии 2.8 enum gtkmenudirectiontypetypedef enum { gtk_menu_dir_parent, gtk_menu_dir_child, gtk_menu_dir_next, gtk_menu_dir_prev } gtkmenudirectiontype; перечисление представляющее направление перемещения внутри меню.
детали свойствсвойство "take-focus""take-focus" gboolean : read / write определяет должно ли меню и подменю перехватывать клавиатурный фокус. смотрите gtk_menu_shell_set_take_focus() и gtk_menu_shell_get_take_focus(). значение по умолчанию: true начиная с версии 2.8 детали сигналовсигнал "activate-current"void user_function (gtkmenushell *menushell, gboolean force_hide, gpointer user_data) : run last / action сигнал действия которое активизирует текущий пункт меню внутри оболочки меню.
сигнал "cancel"void user_function (gtkmenushell *menushell, gpointer user_data) : run last / action сигнал действия когда прекращается выбор внутри оболочки меню. заставляет издаваться gtkmenushell::selection-done сигнал.
сигнал "cycle-focus"void user_function (gtkmenushell *menushell, gtkdirectiontype arg1, gpointer user_data) : run last / action
сигнал "deactivate"void user_function (gtkmenushell *menushell, gpointer user_data) : run first этот сигнал издаётся когда оболочка меню дезактивируется.
сигнал "move-current"void user_function (gtkmenushell *menushell, gtkmenudirectiontype direction, gpointer user_data) : run last / action сигнал действия когда перемещается текущий пункт меню в направлении определённом direction.
сигнал "selection-done"void user_function (gtkmenushell *menushell, gpointer user_data) : run first сигнал издаётся когда выбор в пределах оболочки меню сделан.
|