Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
GI.Gtk.Objects.MenuItem
Description
The MenuItem
widget and the derived widgets are the only valid
children for menus. Their function is to correctly handle highlighting,
alignment, events and submenus.
As a GtkMenuItem derives from Bin
it can hold any valid child widget,
although only a few are really useful.
By default, a GtkMenuItem sets a AccelLabel
as its child.
GtkMenuItem has direct functions to set the label and its mnemonic.
For more advanced label settings, you can fetch the child widget from the GtkBin.
An example for setting markup and accelerator on a MenuItem:
C code
GtkWidget *child = gtk_bin_get_child (GTK_BIN (menu_item)); gtk_label_set_markup (GTK_LABEL (child), "<i>new label</i> with <b>markup</b>"); gtk_accel_label_set_accel (GTK_ACCEL_LABEL (child), GDK_KEY_1, 0);
GtkMenuItem as GtkBuildable
The GtkMenuItem implementation of the Buildable
interface supports
adding a submenu by specifying “submenu” as the “type” attribute of
a <child> element.
An example of UI definition fragment with submenus: > >class="GtkMenuItem" > type="submenu" > class="GtkMenu"/ > /child >/object
CSS nodes
plain code
menuitem ├── <child> ╰── [arrow.right]
GtkMenuItem has a single CSS node with name menuitem. If the menuitem has a submenu, it gets another CSS node with name arrow, which has the .left or .right style class.
- newtype MenuItem = MenuItem (ManagedPtr MenuItem)
- class GObject o => IsMenuItem o
- toMenuItem :: (MonadIO m, IsMenuItem o) => o -> m MenuItem
- noMenuItem :: Maybe MenuItem
- menuItemActivate :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> m ()
- menuItemDeselect :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> m ()
- menuItemGetAccelPath :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> m (Maybe Text)
- menuItemGetLabel :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> m Text
- menuItemGetReserveIndicator :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> m Bool
- menuItemGetRightJustified :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> m Bool
- menuItemGetSubmenu :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> m (Maybe Widget)
- menuItemGetUseUnderline :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> m Bool
- menuItemNew :: (HasCallStack, MonadIO m) => m MenuItem
- menuItemNewWithLabel :: (HasCallStack, MonadIO m) => Text -> m MenuItem
- menuItemNewWithMnemonic :: (HasCallStack, MonadIO m) => Text -> m MenuItem
- menuItemSelect :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> m ()
- menuItemSetAccelPath :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> Maybe Text -> m ()
- menuItemSetLabel :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> Text -> m ()
- menuItemSetReserveIndicator :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> Bool -> m ()
- menuItemSetRightJustified :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> Bool -> m ()
- menuItemSetSubmenu :: (HasCallStack, MonadIO m, IsMenuItem a, IsMenu b) => a -> Maybe b -> m ()
- menuItemSetUseUnderline :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> Bool -> m ()
- menuItemToggleSizeAllocate :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> Int32 -> m ()
- menuItemToggleSizeRequest :: (HasCallStack, MonadIO m, IsMenuItem a) => a -> Int32 -> m Int32
- clearMenuItemAccelPath :: (MonadIO m, IsMenuItem o) => o -> m ()
- constructMenuItemAccelPath :: IsMenuItem o => Text -> IO (GValueConstruct o)
- getMenuItemAccelPath :: (MonadIO m, IsMenuItem o) => o -> m (Maybe Text)
- setMenuItemAccelPath :: (MonadIO m, IsMenuItem o) => o -> Text -> m ()
- constructMenuItemLabel :: IsMenuItem o => Text -> IO (GValueConstruct o)
- getMenuItemLabel :: (MonadIO m, IsMenuItem o) => o -> m Text
- setMenuItemLabel :: (MonadIO m, IsMenuItem o) => o -> Text -> m ()
- constructMenuItemRightJustified :: IsMenuItem o => Bool -> IO (GValueConstruct o)
- getMenuItemRightJustified :: (MonadIO m, IsMenuItem o) => o -> m Bool
- setMenuItemRightJustified :: (MonadIO m, IsMenuItem o) => o -> Bool -> m ()
- clearMenuItemSubmenu :: (MonadIO m, IsMenuItem o) => o -> m ()
- constructMenuItemSubmenu :: (IsMenuItem o, IsMenu a) => a -> IO (GValueConstruct o)
- getMenuItemSubmenu :: (MonadIO m, IsMenuItem o) => o -> m (Maybe Menu)
- setMenuItemSubmenu :: (MonadIO m, IsMenuItem o, IsMenu a) => o -> a -> m ()
- constructMenuItemUseUnderline :: IsMenuItem o => Bool -> IO (GValueConstruct o)
- getMenuItemUseUnderline :: (MonadIO m, IsMenuItem o) => o -> m Bool
- setMenuItemUseUnderline :: (MonadIO m, IsMenuItem o) => o -> Bool -> m ()
- type C_MenuItemActivateCallback = Ptr () -> Ptr () -> IO ()
- type MenuItemActivateCallback = IO ()
- afterMenuItemActivate :: (IsMenuItem a, MonadIO m) => a -> MenuItemActivateCallback -> m SignalHandlerId
- genClosure_MenuItemActivate :: MenuItemActivateCallback -> IO Closure
- mk_MenuItemActivateCallback :: C_MenuItemActivateCallback -> IO (FunPtr C_MenuItemActivateCallback)
- noMenuItemActivateCallback :: Maybe MenuItemActivateCallback
- onMenuItemActivate :: (IsMenuItem a, MonadIO m) => a -> MenuItemActivateCallback -> m SignalHandlerId
- wrap_MenuItemActivateCallback :: MenuItemActivateCallback -> Ptr () -> Ptr () -> IO ()
- type C_MenuItemActivateItemCallback = Ptr () -> Ptr () -> IO ()
- type MenuItemActivateItemCallback = IO ()
- afterMenuItemActivateItem :: (IsMenuItem a, MonadIO m) => a -> MenuItemActivateItemCallback -> m SignalHandlerId
- genClosure_MenuItemActivateItem :: MenuItemActivateItemCallback -> IO Closure
- mk_MenuItemActivateItemCallback :: C_MenuItemActivateItemCallback -> IO (FunPtr C_MenuItemActivateItemCallback)
- noMenuItemActivateItemCallback :: Maybe MenuItemActivateItemCallback
- onMenuItemActivateItem :: (IsMenuItem a, MonadIO m) => a -> MenuItemActivateItemCallback -> m SignalHandlerId
- wrap_MenuItemActivateItemCallback :: MenuItemActivateItemCallback -> Ptr () -> Ptr () -> IO ()
- type C_MenuItemDeselectCallback = Ptr () -> Ptr () -> IO ()
- type MenuItemDeselectCallback = IO ()
- afterMenuItemDeselect :: (IsMenuItem a, MonadIO m) => a -> MenuItemDeselectCallback -> m SignalHandlerId
- genClosure_MenuItemDeselect :: MenuItemDeselectCallback -> IO Closure
- mk_MenuItemDeselectCallback :: C_MenuItemDeselectCallback -> IO (FunPtr C_MenuItemDeselectCallback)
- noMenuItemDeselectCallback :: Maybe MenuItemDeselectCallback
- onMenuItemDeselect :: (IsMenuItem a, MonadIO m) => a -> MenuItemDeselectCallback -> m SignalHandlerId
- wrap_MenuItemDeselectCallback :: MenuItemDeselectCallback -> Ptr () -> Ptr () -> IO ()
- type C_MenuItemSelectCallback = Ptr () -> Ptr () -> IO ()
- type MenuItemSelectCallback = IO ()
- afterMenuItemSelect :: (IsMenuItem a, MonadIO m) => a -> MenuItemSelectCallback -> m SignalHandlerId
- genClosure_MenuItemSelect :: MenuItemSelectCallback -> IO Closure
- mk_MenuItemSelectCallback :: C_MenuItemSelectCallback -> IO (FunPtr C_MenuItemSelectCallback)
- noMenuItemSelectCallback :: Maybe MenuItemSelectCallback
- onMenuItemSelect :: (IsMenuItem a, MonadIO m) => a -> MenuItemSelectCallback -> m SignalHandlerId
- wrap_MenuItemSelectCallback :: MenuItemSelectCallback -> Ptr () -> Ptr () -> IO ()
- type C_MenuItemToggleSizeAllocateCallback = Ptr () -> Int32 -> Ptr () -> IO ()
- type MenuItemToggleSizeAllocateCallback = Int32 -> IO ()
- afterMenuItemToggleSizeAllocate :: (IsMenuItem a, MonadIO m) => a -> MenuItemToggleSizeAllocateCallback -> m SignalHandlerId
- genClosure_MenuItemToggleSizeAllocate :: MenuItemToggleSizeAllocateCallback -> IO Closure
- mk_MenuItemToggleSizeAllocateCallback :: C_MenuItemToggleSizeAllocateCallback -> IO (FunPtr C_MenuItemToggleSizeAllocateCallback)
- noMenuItemToggleSizeAllocateCallback :: Maybe MenuItemToggleSizeAllocateCallback
- onMenuItemToggleSizeAllocate :: (IsMenuItem a, MonadIO m) => a -> MenuItemToggleSizeAllocateCallback -> m SignalHandlerId
- wrap_MenuItemToggleSizeAllocateCallback :: MenuItemToggleSizeAllocateCallback -> Ptr () -> Int32 -> Ptr () -> IO ()
- type C_MenuItemToggleSizeRequestCallback = Ptr () -> Ptr () -> Ptr () -> IO ()
- type MenuItemToggleSizeRequestCallback = Ptr () -> IO ()
- afterMenuItemToggleSizeRequest :: (IsMenuItem a, MonadIO m) => a -> MenuItemToggleSizeRequestCallback -> m SignalHandlerId
- genClosure_MenuItemToggleSizeRequest :: MenuItemToggleSizeRequestCallback -> IO Closure
- mk_MenuItemToggleSizeRequestCallback :: C_MenuItemToggleSizeRequestCallback -> IO (FunPtr C_MenuItemToggleSizeRequestCallback)
- noMenuItemToggleSizeRequestCallback :: Maybe MenuItemToggleSizeRequestCallback
- onMenuItemToggleSizeRequest :: (IsMenuItem a, MonadIO m) => a -> MenuItemToggleSizeRequestCallback -> m SignalHandlerId
- wrap_MenuItemToggleSizeRequestCallback :: MenuItemToggleSizeRequestCallback -> Ptr () -> Ptr () -> Ptr () -> IO ()
Exported types
Constructors
MenuItem (ManagedPtr MenuItem) |
Instances
class GObject o => IsMenuItem o Source #
toMenuItem :: (MonadIO m, IsMenuItem o) => o -> m MenuItem Source #
Methods
activate
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> m () |
Emits the MenuItem
::activate
signal on the given item
deselect
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> m () |
Emits the MenuItem
::deselect
signal on the given item.
getAccelPath
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> m (Maybe Text) | Returns: the accelerator path corresponding to
this menu item’s functionality, or |
Retrieve the accelerator path that was previously set on menuItem
.
See menuItemSetAccelPath
for details.
Since: 2.14
getLabel
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> m Text | Returns: The text in the |
Sets text
on the menuItem
label
Since: 2.16
getReserveIndicator
menuItemGetReserveIndicator Source #
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> m Bool | Returns: |
Returns whether the menuItem
reserves space for
the submenu indicator, regardless if it has a submenu
or not.
Since: 3.0
getRightJustified
menuItemGetRightJustified Source #
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> m Bool | Returns: |
Deprecated: (Since version 3.2)See menuItemSetRightJustified
Gets whether the menu item appears justified at the right side of the menu bar.
getSubmenu
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> m (Maybe Widget) | Returns: submenu for this menu item, or |
Gets the submenu underneath this menu item, if any.
See menuItemSetSubmenu
.
getUseUnderline
menuItemGetUseUnderline Source #
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> m Bool | Returns: |
Checks if an underline in the text indicates the next character should be used for the mnemonic accelerator key.
Since: 2.16
new
Arguments
:: (HasCallStack, MonadIO m) | |
=> m MenuItem | Returns: the newly created |
Creates a new MenuItem
.
newWithLabel
Arguments
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m MenuItem | Returns: the newly created |
newWithMnemonic
menuItemNewWithMnemonic Source #
Arguments
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m MenuItem | Returns: a new |
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.
select
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> m () |
Emits the MenuItem
::select
signal on the given item.
setAccelPath
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> Maybe Text |
|
-> m () |
Set the accelerator path on menuItem
, through which runtime
changes of the menu item’s accelerator caused by the user can be
identified and saved to persistent storage (see accelMapSave
on this). To set up a default accelerator for this menu item, call
accelMapAddEntry
with the same accelPath
. 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.
Note that accelPath
string will be stored in a GQuark
.
Therefore, if you pass a static string, you can save some memory
by interning it first with internStaticString
.
setLabel
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> Text |
|
-> m () |
Sets text
on the menuItem
label
Since: 2.16
setReserveIndicator
menuItemSetReserveIndicator Source #
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> Bool |
|
-> m () |
Sets whether the menuItem
should reserve space for
the submenu indicator, regardless if it actually has
a submenu or not.
There should be little need for applications to call this functions.
Since: 3.0
setRightJustified
menuItemSetRightJustified Source #
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> Bool |
|
-> m () |
Deprecated: (Since version 3.2)If you insist on using it, use widgetSetHexpand
and widgetSetHalign
.
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.)
setSubmenu
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a, IsMenu b) | |
=> a |
|
-> Maybe b |
|
-> m () |
Sets or replaces the menu item’s submenu, or removes it when a Nothing
submenu is passed.
setUseUnderline
menuItemSetUseUnderline Source #
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> Bool |
|
-> m () |
If true, an underline in the text indicates the next character should be used for the mnemonic accelerator key.
Since: 2.16
toggleSizeAllocate
menuItemToggleSizeAllocate Source #
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> Int32 |
|
-> m () |
Emits the MenuItem
::toggle-size-allocate
signal on the given item.
toggleSizeRequest
menuItemToggleSizeRequest Source #
Arguments
:: (HasCallStack, MonadIO m, IsMenuItem a) | |
=> a |
|
-> Int32 |
|
-> m Int32 |
Emits the MenuItem
::toggle-size-request
signal on the given item.
Properties
accelPath
clearMenuItemAccelPath :: (MonadIO m, IsMenuItem o) => o -> m () Source #
constructMenuItemAccelPath :: IsMenuItem o => Text -> IO (GValueConstruct o) Source #
getMenuItemAccelPath :: (MonadIO m, IsMenuItem o) => o -> m (Maybe Text) Source #
setMenuItemAccelPath :: (MonadIO m, IsMenuItem o) => o -> Text -> m () Source #
label
constructMenuItemLabel :: IsMenuItem o => Text -> IO (GValueConstruct o) Source #
getMenuItemLabel :: (MonadIO m, IsMenuItem o) => o -> m Text Source #
setMenuItemLabel :: (MonadIO m, IsMenuItem o) => o -> Text -> m () Source #
rightJustified
constructMenuItemRightJustified :: IsMenuItem o => Bool -> IO (GValueConstruct o) Source #
getMenuItemRightJustified :: (MonadIO m, IsMenuItem o) => o -> m Bool Source #
setMenuItemRightJustified :: (MonadIO m, IsMenuItem o) => o -> Bool -> m () Source #
submenu
clearMenuItemSubmenu :: (MonadIO m, IsMenuItem o) => o -> m () Source #
constructMenuItemSubmenu :: (IsMenuItem o, IsMenu a) => a -> IO (GValueConstruct o) Source #
getMenuItemSubmenu :: (MonadIO m, IsMenuItem o) => o -> m (Maybe Menu) Source #
setMenuItemSubmenu :: (MonadIO m, IsMenuItem o, IsMenu a) => o -> a -> m () Source #
useUnderline
constructMenuItemUseUnderline :: IsMenuItem o => Bool -> IO (GValueConstruct o) Source #
getMenuItemUseUnderline :: (MonadIO m, IsMenuItem o) => o -> m Bool Source #
setMenuItemUseUnderline :: (MonadIO m, IsMenuItem o) => o -> Bool -> m () Source #
Signals
activate
type MenuItemActivateCallback = IO () Source #
afterMenuItemActivate :: (IsMenuItem a, MonadIO m) => a -> MenuItemActivateCallback -> m SignalHandlerId Source #
mk_MenuItemActivateCallback :: C_MenuItemActivateCallback -> IO (FunPtr C_MenuItemActivateCallback) Source #
onMenuItemActivate :: (IsMenuItem a, MonadIO m) => a -> MenuItemActivateCallback -> m SignalHandlerId Source #
wrap_MenuItemActivateCallback :: MenuItemActivateCallback -> Ptr () -> Ptr () -> IO () Source #
activateItem
type MenuItemActivateItemCallback = IO () Source #
afterMenuItemActivateItem :: (IsMenuItem a, MonadIO m) => a -> MenuItemActivateItemCallback -> m SignalHandlerId Source #
mk_MenuItemActivateItemCallback :: C_MenuItemActivateItemCallback -> IO (FunPtr C_MenuItemActivateItemCallback) Source #
onMenuItemActivateItem :: (IsMenuItem a, MonadIO m) => a -> MenuItemActivateItemCallback -> m SignalHandlerId Source #
wrap_MenuItemActivateItemCallback :: MenuItemActivateItemCallback -> Ptr () -> Ptr () -> IO () Source #
deselect
type MenuItemDeselectCallback = IO () Source #
afterMenuItemDeselect :: (IsMenuItem a, MonadIO m) => a -> MenuItemDeselectCallback -> m SignalHandlerId Source #
mk_MenuItemDeselectCallback :: C_MenuItemDeselectCallback -> IO (FunPtr C_MenuItemDeselectCallback) Source #
onMenuItemDeselect :: (IsMenuItem a, MonadIO m) => a -> MenuItemDeselectCallback -> m SignalHandlerId Source #
wrap_MenuItemDeselectCallback :: MenuItemDeselectCallback -> Ptr () -> Ptr () -> IO () Source #
select
type MenuItemSelectCallback = IO () Source #
afterMenuItemSelect :: (IsMenuItem a, MonadIO m) => a -> MenuItemSelectCallback -> m SignalHandlerId Source #
mk_MenuItemSelectCallback :: C_MenuItemSelectCallback -> IO (FunPtr C_MenuItemSelectCallback) Source #
onMenuItemSelect :: (IsMenuItem a, MonadIO m) => a -> MenuItemSelectCallback -> m SignalHandlerId Source #
wrap_MenuItemSelectCallback :: MenuItemSelectCallback -> Ptr () -> Ptr () -> IO () Source #
toggleSizeAllocate
type MenuItemToggleSizeAllocateCallback = Int32 -> IO () Source #
afterMenuItemToggleSizeAllocate :: (IsMenuItem a, MonadIO m) => a -> MenuItemToggleSizeAllocateCallback -> m SignalHandlerId Source #
mk_MenuItemToggleSizeAllocateCallback :: C_MenuItemToggleSizeAllocateCallback -> IO (FunPtr C_MenuItemToggleSizeAllocateCallback) Source #
onMenuItemToggleSizeAllocate :: (IsMenuItem a, MonadIO m) => a -> MenuItemToggleSizeAllocateCallback -> m SignalHandlerId Source #
wrap_MenuItemToggleSizeAllocateCallback :: MenuItemToggleSizeAllocateCallback -> Ptr () -> Int32 -> Ptr () -> IO () Source #
toggleSizeRequest
type MenuItemToggleSizeRequestCallback = Ptr () -> IO () Source #
afterMenuItemToggleSizeRequest :: (IsMenuItem a, MonadIO m) => a -> MenuItemToggleSizeRequestCallback -> m SignalHandlerId Source #
mk_MenuItemToggleSizeRequestCallback :: C_MenuItemToggleSizeRequestCallback -> IO (FunPtr C_MenuItemToggleSizeRequestCallback) Source #
onMenuItemToggleSizeRequest :: (IsMenuItem a, MonadIO m) => a -> MenuItemToggleSizeRequestCallback -> m SignalHandlerId Source #
wrap_MenuItemToggleSizeRequestCallback :: MenuItemToggleSizeRequestCallback -> Ptr () -> Ptr () -> Ptr () -> IO () Source #