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 |
The GActionMap interface is implemented by ActionGroup
implementations that operate by containing a number of
named Action
instances, such as SimpleActionGroup
.
One useful application of this interface is to map the names of actions from various action groups to unique, prefixed names (e.g. by prepending "app." or "win."). This is the motivation for the 'Map' part of the interface name.
Synopsis
- newtype ActionMap = ActionMap (ManagedPtr ActionMap)
- noActionMap :: Maybe ActionMap
- class GObject o => IsActionMap o
- toActionMap :: (MonadIO m, IsActionMap o) => o -> m ActionMap
- actionMapAddAction :: (HasCallStack, MonadIO m, IsActionMap a, IsAction b) => a -> b -> m ()
- actionMapAddActionEntries :: (HasCallStack, MonadIO m, IsActionMap a) => a -> [ActionEntry] -> Ptr () -> m ()
- actionMapLookupAction :: (HasCallStack, MonadIO m, IsActionMap a) => a -> Text -> m Action
- actionMapRemoveAction :: (HasCallStack, MonadIO m, IsActionMap a) => a -> Text -> m ()
Exported types
Memory-managed wrapper type.
Instances
GObject ActionMap Source # | |
Defined in GI.Gio.Interfaces.ActionMap gobjectType :: ActionMap -> IO GType # | |
IsObject ActionMap Source # | |
Defined in GI.Gio.Interfaces.ActionMap | |
IsActionMap ActionMap Source # | |
Defined in GI.Gio.Interfaces.ActionMap |
class GObject o => IsActionMap o Source #
Type class for types which can be safely cast to ActionMap
, for instance with toActionMap
.
Instances
(GObject a, (UnknownAncestorError ActionMap a :: Constraint)) => IsActionMap a Source # | |
Defined in GI.Gio.Interfaces.ActionMap | |
IsActionMap ActionMap Source # | |
Defined in GI.Gio.Interfaces.ActionMap | |
IsActionMap Application Source # | |
Defined in GI.Gio.Objects.Application | |
IsActionMap SimpleActionGroup Source # | |
Defined in GI.Gio.Objects.SimpleActionGroup |
toActionMap :: (MonadIO m, IsActionMap o) => o -> m ActionMap Source #
Methods
addAction
:: (HasCallStack, MonadIO m, IsActionMap a, IsAction b) | |
=> a |
|
-> b |
|
-> m () |
Adds an action to the actionMap
.
If the action map already contains an action with the same name
as action
then the old action is dropped from the action map.
The action map takes its own reference on action
.
Since: 2.32
addActionEntries
actionMapAddActionEntries Source #
:: (HasCallStack, MonadIO m, IsActionMap a) | |
=> a |
|
-> [ActionEntry] |
|
-> Ptr () |
|
-> m () |
A convenience function for creating multiple SimpleAction
instances
and adding them to a ActionMap
.
Each action is constructed as per one ActionEntry
.
C code
static void activate_quit (GSimpleAction *simple, GVariant *parameter, gpointer user_data) { exit (0); } static void activate_print_string (GSimpleAction *simple, GVariant *parameter, gpointer user_data) { g_print ("%s\n", g_variant_get_string (parameter, NULL)); } static GActionGroup * create_action_group (void) { const GActionEntry entries[] = { { "quit", activate_quit }, { "print-string", activate_print_string, "s" } }; GSimpleActionGroup *group; group = g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (group), entries, G_N_ELEMENTS (entries), NULL); return G_ACTION_GROUP (group); }
Since: 2.32
lookupAction
actionMapLookupAction Source #
:: (HasCallStack, MonadIO m, IsActionMap a) | |
=> a |
|
-> Text |
|
-> m Action |
Looks up the action with the name actionName
in actionMap
.
If no such action exists, returns Nothing
.
Since: 2.32
removeAction
actionMapRemoveAction Source #
:: (HasCallStack, MonadIO m, IsActionMap a) | |
=> a |
|
-> Text |
|
-> m () |
Removes the named action from the action map.
If no action of this name is in the map then nothing happens.
Since: 2.32