| 
 | |
|  | 
| GTK+ Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | Signals | ||||
| GtkMenuShellGtkMenuShell Базовый класс для объектов меню | 
#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
                                 +----GtkMenuGtkMenuShell осуществляет 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 firstGtkMenuShell это абстрактный основной класс для получения подклассов GtkMenu и GtkMenuBar.
GtkMenuShell содержит GtkMenuItem объекты в списке который может быть управляем, выбран и активирован пользователем для выполнения функций приложения. GtkMenuItem может иметь подменю связанное с ним, учитывая вложенные иерархические меню.
typedef struct _GtkMenuShell GtkMenuShell;
GtkMenuShell-struct структура содержащая нижеследующие поля. (Эти поля должны быть доступны только для чтения. Они никогда не должны устанавливаться приложением.)
| GList *children; | Список GtkMenuItem объектов находящихся в этом GtkMenuShell. | 
void        gtk_menu_shell_append           (GtkMenuShell *menu_shell,
                                             GtkWidget *child);Добавляет новый GtkMenuItem в конец списка пунктов оболочки меню.
| menu_shell : | |
| child : | добавляемый GtkMenuItem. | 
void        gtk_menu_shell_prepend          (GtkMenuShell *menu_shell,
                                             GtkWidget *child);Добавляет новый GtkMenuItem в начало списка пунктов оболочки меню.
| menu_shell : | |
| child : | добавляемый GtkMenuItem. | 
void        gtk_menu_shell_insert           (GtkMenuShell *menu_shell,
                                             GtkWidget *child,
                                             gint position);Добавляет новый GtkMenuItem к списку пунктов оболочки меню в позицию определенную position.
| menu_shell : | |
| child : | добавляемый GtkMenuItem. | 
| position : | Позиция в списке пунктов в которую будет добавлен child. Позиция нумеруется от 0 до n-1. | 
void gtk_menu_shell_deactivate (GtkMenuShell *menu_shell);
Дезактивирует оболочку меню. Типичный результат этого удаление оболочки меню с экрана.
| menu_shell : | 
void        gtk_menu_shell_select_item      (GtkMenuShell *menu_shell,
                                             GtkWidget *menu_item);Выбирает пункт меню из оболочки меню.
| menu_shell : | |
| menu_item : | выбираемый GtkMenuItem. | 
void        gtk_menu_shell_select_first     (GtkMenuShell *menu_shell,
                                             gboolean search_sensitive);Выделяет первый видимый или доступный для выделения дочерний виджет оболочки меню; не выбирает отсоединяемый пункт за исключением единственного отделяемого пункта.
| menu_shell : | |
| search_sensitive : | если TRUE, ищет первый доступный для выделения пункт меню, иначе не выделяет ничего если первый пункт не чувствителен (isn't sensitive). Должно быть FALSE если изначально меню всплывающее. | 
Начиная с версии 2.2
void gtk_menu_shell_deselect (GtkMenuShell *menu_shell);
Снимает текущеме выделение пункта оболочки меню, если есть.
| menu_shell : | 
void        gtk_menu_shell_activate_item    (GtkMenuShell *menu_shell,
                                             GtkWidget *menu_item,
                                             gboolean force_deactivate);Активизирует пункт внутри оболочки меню.
| menu_shell : | |
| menu_item : | активизируемый GtkMenuItem. | 
| force_deactivate : | Если TRUE, принудительно дезактивирует оболочку меню после активации пункта меню. | 
void gtk_menu_shell_cancel (GtkMenuShell *menu_shell);
Отменяет выделение внутри оболочки меню.
| menu_shell : | 
Начиная с версии 2.4
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()
| menu_shell : | |
| take_focus : | TRUE если оболочка меню должна иметь фокус клавиатуры. | 
Начиная с версии 2.8
gboolean gtk_menu_shell_get_take_focus (GtkMenuShell *menu_shell);
Возвращает TRUE если оболочка меню имеет появляющийся фокус клавиатуры.
| menu_shell : | |
| Возвращает : | TRUE если оболочка меню имеет клавиатурный фокус. | 
Начиная с версии 2.8
typedef enum { GTK_MENU_DIR_PARENT, GTK_MENU_DIR_CHILD, GTK_MENU_DIR_NEXT, GTK_MENU_DIR_PREV } GtkMenuDirectionType;
Перечисление представляющее направление перемещения внутри меню.
| GTK_MENU_DIR_PARENT | К родительской оболочке меню. | 
| GTK_MENU_DIR_CHILD | К подменю, если есть, связанный с ним. | 
| GTK_MENU_DIR_NEXT | К следующему пункту меню. | 
| GTK_MENU_DIR_PREV | К предыдущему пункту меню. | 
"take-focus" gboolean : Read / Write
Определяет должно ли меню и подменю перехватывать клавиатурный фокус. Смотрите gtk_menu_shell_set_take_focus() и gtk_menu_shell_get_take_focus().
Значение по умолчанию: TRUE
Начиная с версии 2.8
void        user_function                  (GtkMenuShell *menushell,
                                            gboolean      force_hide,
                                            gpointer      user_data)       : Run last / ActionСигнал действия которое активизирует текущий пункт меню внутри оболочки меню.
| menushell : | Объект который получает сигнал. | 
| force_hide : | Если TRUE, скрывает меню после активации пункта меню. | 
| user_data : | пользовательские данные устанавливаемые при подключении обработчика сигнала. | 
void        user_function                  (GtkMenuShell *menushell,
                                            gpointer      user_data)      : Run last / ActionСигнал действия когда прекращается выбор внутри оболочки меню. Заставляет издаваться GtkMenuShell::selection-done сигнал.
| menushell : | Объект который получает сигнал. | 
| user_data : | пользовательские данные устанавливаемые при подключении обработчика сигнала. | 
void        user_function                  (GtkMenuShell    *menushell,
                                            GtkDirectionType arg1,
                                            gpointer         user_data)      : Run last / Action
| menushell : | Объект который получает сигнал. | 
| arg1 : | |
| user_data : | пользовательские данные устанавливаемые при подключении обработчика сигнала. | 
void        user_function                  (GtkMenuShell *menushell,
                                            gpointer      user_data)      : Run firstЭтот сигнал издаётся когда оболочка меню дезактивируется.
| menushell : | Объект который получает сигнал. | 
| user_data : | пользовательские данные устанавливаемые при подключении обработчика сигнала. | 
void        user_function                  (GtkMenuShell        *menushell,
                                            GtkMenuDirectionType direction,
                                            gpointer             user_data)      : Run last / ActionСигнал действия когда перемещается текущий пункт меню в направлении определённом direction.
| menushell : | Объект который получает сигнал. | 
| direction : | Направление движения. | 
| user_data : | пользовательские данные устанавливаемые при подключении обработчика сигнала. | 
void        user_function                  (GtkMenuShell *menushell,
                                            gpointer      user_data)      : Run firstСигнал издаётся когда выбор в пределах оболочки меню сделан.
| menushell : | Объект который получает сигнал. | 
| user_data : | пользовательские данные устанавливаемые при подключении обработчика сигнала. | 
| Закладки на сайте Проследить за страницей | Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |