The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Properties  |  Signals

GtkMenuShell

GtkMenuShell Базовый класс для объектов меню

Краткое описание

#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 может иметь подменю связанное с ним, учитывая вложенные иерархические меню.

Детали

GtkMenuShell

typedef struct _GtkMenuShell GtkMenuShell;

GtkMenuShell-struct структура содержащая нижеследующие поля. (Эти поля должны быть доступны только для чтения. Они никогда не должны устанавливаться приложением.)

GList *children;

Список GtkMenuItem объектов находящихся в этом GtkMenuShell.


gtk_menu_shell_append ()

void        gtk_menu_shell_append           (GtkMenuShell *menu_shell,
                                             GtkWidget *child);

Добавляет новый GtkMenuItem в конец списка пунктов оболочки меню.

menu_shell :

GtkMenuShell.

child :

добавляемый GtkMenuItem.


gtk_menu_shell_prepend ()

void        gtk_menu_shell_prepend          (GtkMenuShell *menu_shell,
                                             GtkWidget *child);

Добавляет новый GtkMenuItem в начало списка пунктов оболочки меню.

menu_shell :

GtkMenuShell.

child :

добавляемый GtkMenuItem.


gtk_menu_shell_insert ()

void        gtk_menu_shell_insert           (GtkMenuShell *menu_shell,
                                             GtkWidget *child,
                                             gint position);

Добавляет новый GtkMenuItem к списку пунктов оболочки меню в позицию определенную position.

menu_shell :

GtkMenuShell.

child :

добавляемый GtkMenuItem.

position :

Позиция в списке пунктов в которую будет добавлен child. Позиция нумеруется от 0 до n-1.


gtk_menu_shell_deactivate ()

void        gtk_menu_shell_deactivate       (GtkMenuShell *menu_shell);

Дезактивирует оболочку меню. Типичный результат этого удаление оболочки меню с экрана.

menu_shell :

GtkMenuShell.


gtk_menu_shell_select_item ()

void        gtk_menu_shell_select_item      (GtkMenuShell *menu_shell,
                                             GtkWidget *menu_item);

Выбирает пункт меню из оболочки меню.

menu_shell :

GtkMenuShell.

menu_item :

выбираемый GtkMenuItem.


gtk_menu_shell_select_first ()

void        gtk_menu_shell_select_first     (GtkMenuShell *menu_shell,
                                             gboolean search_sensitive);

Выделяет первый видимый или доступный для выделения дочерний виджет оболочки меню; не выбирает отсоединяемый пункт за исключением единственного отделяемого пункта.

menu_shell :

GtkMenuShell

search_sensitive :

если TRUE, ищет первый доступный для выделения пункт меню, иначе не выделяет ничего если первый пункт не чувствителен (isn't sensitive). Должно быть FALSE если изначально меню всплывающее.

Начиная с версии 2.2


gtk_menu_shell_deselect ()

void        gtk_menu_shell_deselect         (GtkMenuShell *menu_shell);

Снимает текущеме выделение пункта оболочки меню, если есть.

menu_shell :

GtkMenuShell.


gtk_menu_shell_activate_item ()

void        gtk_menu_shell_activate_item    (GtkMenuShell *menu_shell,
                                             GtkWidget *menu_item,
                                             gboolean force_deactivate);

Активизирует пункт внутри оболочки меню.

menu_shell :

GtkMenuShell.

menu_item :

активизируемый GtkMenuItem.

force_deactivate :

Если TRUE, принудительно дезактивирует оболочку меню после активации пункта меню.


gtk_menu_shell_cancel ()

void        gtk_menu_shell_cancel           (GtkMenuShell *menu_shell);

Отменяет выделение внутри оболочки меню.

menu_shell :

GtkMenuShell

Начиная с версии 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()

menu_shell :

GtkMenuShell

take_focus :

TRUE если оболочка меню должна иметь фокус клавиатуры.

Начиная с версии 2.8


gtk_menu_shell_get_take_focus ()

gboolean    gtk_menu_shell_get_take_focus   (GtkMenuShell *menu_shell);

Возвращает TRUE если оболочка меню имеет появляющийся фокус клавиатуры.

menu_shell :

GtkMenuShell

Возвращает :

TRUE если оболочка меню имеет клавиатурный фокус.

Начиная с версии 2.8


enum GtkMenuDirectionType

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"

  "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

Сигнал действия которое активизирует текущий пункт меню внутри оболочки меню.

menushell :

Объект который получает сигнал.

force_hide :

Если TRUE, скрывает меню после активации пункта меню.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "cancel"

void        user_function                  (GtkMenuShell *menushell,
                                            gpointer      user_data)      : Run last / Action

Сигнал действия когда прекращается выбор внутри оболочки меню. Заставляет издаваться GtkMenuShell::selection-done сигнал.

menushell :

Объект который получает сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "cycle-focus"

void        user_function                  (GtkMenuShell    *menushell,
                                            GtkDirectionType arg1,
                                            gpointer         user_data)      : Run last / Action

menushell :

Объект который получает сигнал.

arg1 :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "deactivate"

void        user_function                  (GtkMenuShell *menushell,
                                            gpointer      user_data)      : Run first

Этот сигнал издаётся когда оболочка меню дезактивируется.

menushell :

Объект который получает сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "move-current"

void        user_function                  (GtkMenuShell        *menushell,
                                            GtkMenuDirectionType direction,
                                            gpointer             user_data)      : Run last / Action

Сигнал действия когда перемещается текущий пункт меню в направлении определённом direction.

menushell :

Объект который получает сигнал.

direction :

Направление движения.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "selection-done"

void        user_function                  (GtkMenuShell *menushell,
                                            gpointer      user_data)      : Run first

Сигнал издаётся когда выбор в пределах оболочки меню сделан.

menushell :

Объект который получает сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.






Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру