gtk-0.12.3: Binding to the Gtk+ graphical user interface library.

Portabilityportable (depends on GHC)
Safe HaskellSafe-Infered




The widget used for item in menus



The MenuItem widget and the derived widgets are the only valid childs for menus. Their function is to correctly handle highlighting, alignment, events and submenus.

As it derives from Bin it can hold any valid child widget, altough only a few are really useful.

Class Hierarchy

 | GObject
 | +----Object
 | +----Widget
 | +----Container
 | +----Bin
 | +----Item
 | +----MenuItem
 | +----CheckMenuItem
 | +----ImageMenuItem
 | +----SeparatorMenuItem
 | +----TearoffMenuItem





:: String

label - the text for the label

-> IO MenuItem 

Creates a new MenuItem whose child is a Label.



:: String

label - The text of the label, with an underscore in front of the mnemonic character

-> IO MenuItem 

Creates a new MenuItem containing a label. The label will be created using labelNewWithMnemonic, so underscores in label indicate the mnemonic for the menu item.


menuItemSetSubmenu :: (MenuItemClass self, MenuClass submenu) => self -> submenu -> IO ()Source

Sets the item's submenu, or changes it.



:: MenuItemClass self 
=> self 
-> IO (Maybe Widget)

returns submenu for this menu item, or Nothing if none.

Gets the submenu underneath this menu item, if any. See menuItemSetSubmenu.

menuItemRemoveSubmenu :: MenuItemClass self => self -> IO ()Source

Removes the item's submenu.

menuItemEmitSelect :: MenuItemClass self => self -> IO ()Source

Select the menu item. Emits the "select" signal on the item.

menuItemEmitDeselect :: MenuItemClass self => self -> IO ()Source

Deselect the menu item. Emits the "deselect" signal on the item.

menuItemEmitActivate :: MenuItemClass self => self -> IO ()Source

Simulate a click on the menu item. Emits the "activate" signal on the item.



:: MenuItemClass self 
=> self 
-> Bool

rightJustified - if True the menu item will appear at the far right if added to a menu bar.

-> IO () 

Sets whether the menu item appears justified at the right side of a menu bar. This was traditionally done for "Help" menu items, but is now considered a bad idea. (If the widget layout is reversed for a right-to-left language like Hebrew or Arabic, right-justified-menu-items appear at the left.)

menuItemGetRightJustified :: MenuItemClass self => self -> IO BoolSource

Gets whether the menu item appears justified at the right side of the menu bar.



:: MenuItemClass self 
=> self 
-> Maybe String

accelPath - accelerator path, corresponding to this menu item's functionality, or Nothing to unset the current path.

-> IO () 

Set the accelerator path on the menu item, through which runtime changes of the menu item's accelerator caused by the user can be identified and saved to persistant storage (see accelMapSave on this). To setup a default accelerator for this menu item, call accelMapAddEntry with the same accel path. See also accelMapAddEntry on the specifics of accelerator paths, and menuSetAccelPath for a more convenient variant of this function.

This function is basically a convenience wrapper that handles calling widgetSetAccelPath with the appropriate accelerator group for the menu item.

Note that you do need to set an accelerator on the parent menu with menuSetAccelGroup for this to work.


menuItemSubmenu :: (MenuItemClass self, MenuClass submenu) => ReadWriteAttr self (Maybe Widget) submenuSource

'submenu' property. See menuItemGetSubmenu and menuItemSetSubmenu


menuItemActivateItem :: MenuItemClass self => Signal self (IO ())Source

Emitted when the user chooses a menu item that has a submenu.

  • This signal is not emitted if the menu item does not have a submenu.

menuItemActivate :: MenuItemClass self => Signal self (IO ())Source

The user has chosen the menu item.

  • This is the only function applications normally connect to. It is not emitted if the item has a submenu.

menuItemSelect :: ItemClass i => Signal i (IO ())Source

This signal is emitted when the item is selected.

menuItemDeselect :: ItemClass i => Signal i (IO ())Source

This signal is emitted when the item is deselected.

menuItemToggle :: ItemClass i => Signal i (IO ())Source

This signal is emitted when the item is toggled.


onSelect, afterSelect :: ItemClass i => i -> IO () -> IO (ConnectId i)Source

onDeselect, afterDeselect :: ItemClass i => i -> IO () -> IO (ConnectId i)Source

onToggle, afterToggle :: ItemClass i => i -> IO () -> IO (ConnectId i)Source