Portability | portable (depends on GHC) |
---|---|
Stability | provisional |
Maintainer | gtk2hs-users@lists.sourceforge.net |
Safe Haskell | None |
A base class for menu objects
- data MenuShell
- class ContainerClass o => MenuShellClass o
- castToMenuShell :: GObjectClass obj => obj -> MenuShell
- gTypeMenuShell :: GType
- toMenuShell :: MenuShellClass o => o -> MenuShell
- menuShellAppend :: (MenuShellClass self, MenuItemClass child) => self -> child -> IO ()
- menuShellPrepend :: (MenuShellClass self, MenuItemClass child) => self -> child -> IO ()
- menuShellInsert :: (MenuShellClass self, MenuItemClass child) => self -> child -> Int -> IO ()
- menuShellDeactivate :: MenuShellClass self => self -> IO ()
- menuShellActivateItem :: (MenuShellClass self, MenuItemClass menuItem) => self -> menuItem -> Bool -> IO ()
- menuShellSelectItem :: (MenuShellClass self, MenuItemClass menuItem) => self -> menuItem -> IO ()
- menuShellDeselect :: MenuShellClass self => self -> IO ()
- menuShellSelectFirst :: MenuShellClass self => self -> Bool -> IO ()
- menuShellCancel :: MenuShellClass self => self -> IO ()
- menuShellSetTakeFocus :: MenuShellClass self => self -> Bool -> IO ()
- menuShellGetTakeFocus :: MenuShellClass self => self -> IO Bool
- menuShellTakeFocus :: MenuShellClass self => Attr self Bool
- onActivateCurrent :: MenuShellClass self => self -> (Bool -> IO ()) -> IO (ConnectId self)
- afterActivateCurrent :: MenuShellClass self => self -> (Bool -> IO ()) -> IO (ConnectId self)
- onCancel :: MenuShellClass self => self -> IO () -> IO (ConnectId self)
- afterCancel :: MenuShellClass self => self -> IO () -> IO (ConnectId self)
- onDeactivated :: MenuShellClass self => self -> IO () -> IO (ConnectId self)
- afterDeactivated :: MenuShellClass self => self -> IO () -> IO (ConnectId self)
- data MenuDirectionType
- onMoveCurrent :: MenuShellClass self => self -> (MenuDirectionType -> IO ()) -> IO (ConnectId self)
- afterMoveCurrent :: MenuShellClass self => self -> (MenuDirectionType -> IO ()) -> IO (ConnectId self)
- onSelectionDone :: MenuShellClass self => self -> IO () -> IO (ConnectId self)
- afterSelectionDone :: MenuShellClass self => self -> IO () -> IO (ConnectId self)
Detail
A MenuShell
is the abstract base class used to derive the Menu
and
MenuBar
subclasses.
A MenuShell
is a container of MenuItem
objects arranged in a list
which can be navigated, selected, and activated by the user to perform
application functions. A MenuItem
can have a submenu associated with it,
allowing for nested hierarchical menus.
Class Hierarchy
Types
class ContainerClass o => MenuShellClass o Source
castToMenuShell :: GObjectClass obj => obj -> MenuShellSource
toMenuShell :: MenuShellClass o => o -> MenuShellSource
Methods
:: (MenuShellClass self, MenuItemClass child) | |
=> self | |
-> child |
|
-> IO () |
Adds a new MenuItem
to the end of the menu shell's item list.
:: (MenuShellClass self, MenuItemClass child) | |
=> self | |
-> child |
|
-> IO () |
Adds a new MenuItem
to the beginning of the menu shell's item list.
:: (MenuShellClass self, MenuItemClass child) | |
=> self | |
-> child |
|
-> Int |
|
-> IO () |
Adds a new MenuItem
to the menu shell's item list at the position
indicated by position
.
menuShellDeactivate :: MenuShellClass self => self -> IO ()Source
Deactivates the menu shell. Typically this results in the menu shell being erased from the screen.
:: (MenuShellClass self, MenuItemClass menuItem) | |
=> self | |
-> menuItem |
|
-> Bool |
|
-> IO () |
Activates the menu item within the menu shell. If the menu was deactivated
and forceDeactivate
is set, the previously deactivated menu is reactivated.
:: (MenuShellClass self, MenuItemClass menuItem) | |
=> self | |
-> menuItem |
|
-> IO () |
Selects the menu item from the menu shell.
menuShellDeselect :: MenuShellClass self => self -> IO ()Source
Deselects the currently selected item from the menu shell, if any.
:: MenuShellClass self | |
=> self | |
-> Bool |
|
-> IO () |
Select the first visible or selectable child of the menu shell; don't select tearoff items unless the only item is a tearoff item.
- Available since Gtk+ version 2.2
menuShellCancel :: MenuShellClass self => self -> IO ()Source
Cancels the selection within the menu shell.
- Available since Gtk+ version 2.4
:: MenuShellClass self | |
=> self | |
-> Bool |
|
-> IO () |
If takeFocus
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 takeFocus
to False
is useful only for special applications
like virtual keyboard implementations which should not take keyboard focus.
The takeFocus
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
takeFocus
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 takeFocus
set to False
should
not display mnemonics or accelerators, since it cannot be guaranteed that
they will work.
- Available since Gtk+ version 2.8
:: MenuShellClass self | |
=> self | |
-> IO Bool | returns |
Returns True
if the menu shell will take the keyboard focus on popup.
- Available since Gtk+ version 2.8
Attributes
menuShellTakeFocus :: MenuShellClass self => Attr self BoolSource
A boolean that determines whether the menu and its submenus grab the
keyboard focus. See menuShellSetTakeFocus
and menuShellGetTakeFocus
.
Default value: True
Signals
onActivateCurrent :: MenuShellClass self => self -> (Bool -> IO ()) -> IO (ConnectId self)Source
This signal is called if an item is
activated. The boolean flag hide
is True whenever the menu will
behidden after this action.
afterActivateCurrent :: MenuShellClass self => self -> (Bool -> IO ()) -> IO (ConnectId self)Source
This signal is called if an item is
activated. The boolean flag hide
is True whenever the menu will
behidden after this action.
onCancel :: MenuShellClass self => self -> IO () -> IO (ConnectId self)Source
This signal will be emitted when a selection is
aborted and thus does not lead to an activation. This is in contrast to the
selection
done signal which is always emitted.
afterCancel :: MenuShellClass self => self -> IO () -> IO (ConnectId self)Source
This signal will be emitted when a selection is
aborted and thus does not lead to an activation. This is in contrast to the
selection
done signal which is always emitted.
onDeactivated :: MenuShellClass self => self -> IO () -> IO (ConnectId self)Source
This signal is sent whenever the menu shell is deactivated (hidden).
afterDeactivated :: MenuShellClass self => self -> IO () -> IO (ConnectId self)Source
This signal is sent whenever the menu shell is deactivated (hidden).
data MenuDirectionType Source
From where was a menu item entered?
onMoveCurrent :: MenuShellClass self => self -> (MenuDirectionType -> IO ()) -> IO (ConnectId self)Source
This signal is emitted for each move the cursor makes.
afterMoveCurrent :: MenuShellClass self => self -> (MenuDirectionType -> IO ()) -> IO (ConnectId self)Source
This signal is emitted for each move the cursor makes.
onSelectionDone :: MenuShellClass self => self -> IO () -> IO (ConnectId self)Source
This signal is emitted when the user finished using the menu. Note that this signal is emitted even if no menu item was activated.
afterSelectionDone :: MenuShellClass self => self -> IO () -> IO (ConnectId self)Source
This signal is emitted when the user finished using the menu. Note that this signal is emitted even if no menu item was activated.