![]() |
![]() |
![]() |
GTK+ 3 Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Implemented Interfaces | Properties | Signals |
#include <gtk/gtk.h> struct 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
); GtkWidget * gtk_menu_shell_get_selected_item (GtkMenuShell *menu_shell
); GtkWidget * gtk_menu_shell_get_parent_shell (GtkMenuShell *menu_shell
); enum GtkMenuDirectionType;
GObject +----GInitiallyUnowned +----GtkWidget +----GtkContainer +----GtkMenuShell +----GtkMenuBar +----GtkMenu
"activate-current" :Action
"cancel" :Action
"cycle-focus" :Action
"deactivate" :Run First
"move-current" :Action
"move-selected" :Run Last
"selection-done" :Run First
A GtkMenuShell is the abstract base class used to derive the GtkMenu and GtkMenuBar subclasses.
A GtkMenuShell is a container of GtkMenuItem objects arranged in a list which can be navigated, selected, and activated by the user to perform application functions. A GtkMenuItem can have a submenu associated with it, allowing for nested hierarchical menus.
void gtk_menu_shell_append (GtkMenuShell *menu_shell
,GtkWidget *child
);
Adds a new GtkMenuItem to the end of the menu shell's item list.
|
a GtkMenuShell |
|
The GtkMenuItem to add |
void gtk_menu_shell_prepend (GtkMenuShell *menu_shell
,GtkWidget *child
);
Adds a new GtkMenuItem to the beginning of the menu shell's item list.
|
a GtkMenuShell |
|
The GtkMenuItem to add |
void gtk_menu_shell_insert (GtkMenuShell *menu_shell
,GtkWidget *child
,gint position
);
Adds a new GtkMenuItem to the menu shell's item list
at the position indicated by position
.
|
a GtkMenuShell |
|
The GtkMenuItem to add |
|
The position in the item list where child
is added. Positions are numbered from 0 to n-1 |
void gtk_menu_shell_deactivate (GtkMenuShell *menu_shell
);
Deactivates the menu shell.
Typically this results in the menu shell being erased from the screen.
|
a GtkMenuShell |
void gtk_menu_shell_select_item (GtkMenuShell *menu_shell
,GtkWidget *menu_item
);
Selects the menu item from the menu shell.
|
a GtkMenuShell |
|
The GtkMenuItem to select |
void gtk_menu_shell_select_first (GtkMenuShell *menu_shell
,gboolean search_sensitive
);
Select the first visible or selectable child of the menu shell; don't select tearoff items unless the only item is a tearoff item.
|
a GtkMenuShell |
|
if TRUE , search for the first selectable
menu item, otherwise select nothing if
the first item isn't sensitive. This
should be FALSE if the menu is being
popped up initially. |
Since 2.2
void gtk_menu_shell_deselect (GtkMenuShell *menu_shell
);
Deselects the currently selected item from the menu shell, if any.
|
a GtkMenuShell |
void gtk_menu_shell_activate_item (GtkMenuShell *menu_shell
,GtkWidget *menu_item
,gboolean force_deactivate
);
Activates the menu item within the menu shell.
|
a GtkMenuShell |
|
the GtkMenuItem to activate |
|
if TRUE , force the deactivation of the
menu shell after the menu item is activated |
void gtk_menu_shell_cancel (GtkMenuShell *menu_shell
);
Cancels the selection within the menu shell.
|
a GtkMenuShell |
Since 2.4
void gtk_menu_shell_set_take_focus (GtkMenuShell *menu_shell
,gboolean take_focus
);
If take_focus
is TRUE
(the default) the menu shell will take
the keyboard focus so that it will receive all keyboard events
which is needed to enable keyboard navigation in menus.
Setting take_focus
to FALSE
is useful only for special applications
like virtual keyboard implementations which should not take keyboard
focus.
The take_focus
state of a menu or menu bar is automatically
propagated to submenus whenever a submenu is popped up, so you
don't have to worry about recursively setting it for your entire
menu hierarchy. Only when programmatically picking a submenu and
popping it up manually, the take_focus
property of the submenu
needs to be set explicitely.
Note that setting it to FALSE
has side-effects:
If the focus is in some other app, it keeps the focus and keynav in the menu doesn't work. Consequently, keynav on the menu will only work if the focus is on some toplevel owned by the onscreen keyboard.
To avoid confusing the user, menus with take_focus
set to FALSE
should not display mnemonics or accelerators, since it cannot be
guaranteed that they will work.
See also gdk_keyboard_grab()
|
a GtkMenuShell |
|
TRUE if the menu shell should take the keyboard
focus on popup |
Since 2.8
gboolean gtk_menu_shell_get_take_focus (GtkMenuShell *menu_shell
);
Returns TRUE
if the menu shell will take the keyboard focus on popup.
|
a GtkMenuShell |
Returns : |
TRUE if the menu shell will take the keyboard focus on popup. |
Since 2.8
GtkWidget * gtk_menu_shell_get_selected_item (GtkMenuShell *menu_shell
);
Gets the currently selected item.
|
a GtkMenuShell |
Returns : |
the currently selected item. [transfer none] |
Since 3.0
GtkWidget * gtk_menu_shell_get_parent_shell (GtkMenuShell *menu_shell
);
Gets the parent menu shell.
The parent menu shell of a submenu is the GtkMenu or GtkMenuBar from which it was opened up.
|
a GtkMenuShell |
Returns : |
the parent GtkMenuShell. [transfer none] |
Since 3.0
"take-focus"
property"take-focus" gboolean : Read / Write
A boolean that determines whether the menu and its submenus grab the
keyboard focus. See gtk_menu_shell_set_take_focus()
and
gtk_menu_shell_get_take_focus()
.
Default value: TRUE
Since 2.8
"activate-current"
signalvoid user_function (GtkMenuShell *menushell,
gboolean force_hide,
gpointer user_data) : Action
An action signal that activates the current menu item within the menu shell.
|
the object which received the signal |
|
if TRUE , hide the menu after activating the menu item |
|
user data set when the signal handler was connected. |
"cancel"
signalvoid user_function (GtkMenuShell *menushell,
gpointer user_data) : Action
An action signal which cancels the selection within the menu shell. Causes the "selection-done" signal to be emitted.
|
the object which received the signal |
|
user data set when the signal handler was connected. |
"cycle-focus"
signalvoid user_function (GtkMenuShell *menushell,
GtkDirectionType direction,
gpointer user_data) : Action
A keybinding signal which moves the focus in the
given direction
.
|
the object which received the signal |
|
the direction to cycle in |
|
user data set when the signal handler was connected. |
"deactivate"
signalvoid user_function (GtkMenuShell *menushell,
gpointer user_data) : Run First
This signal is emitted when a menu shell is deactivated.
|
the object which received the signal |
|
user data set when the signal handler was connected. |
"move-current"
signalvoid user_function (GtkMenuShell *menushell,
GtkMenuDirectionType direction,
gpointer user_data) : Action
An keybinding signal which moves the current menu item
in the direction specified by direction
.
|
the object which received the signal |
|
the direction to move |
|
user data set when the signal handler was connected. |
"move-selected"
signalgboolean user_function (GtkMenuShell *menu_shell,
gint distance,
gpointer user_data) : Run Last
The ::move-selected signal is emitted to move the selection to another item.
|
the object on which the signal is emitted |
|
+1 to move to the next item, -1 to move to the previous |
|
user data set when the signal handler was connected. |
Returns : |
TRUE to stop the signal emission, FALSE to continue |
Since 2.12
"selection-done"
signalvoid user_function (GtkMenuShell *menushell,
gpointer user_data) : Run First
This signal is emitted when a selection has been completed within a menu shell.
|
the object which received the signal |
|
user data set when the signal handler was connected. |