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.
- newtype ActionMap = ActionMap (ManagedPtr ActionMap)
- noActionMap :: Maybe ActionMap
- class GObject o => IsActionMap o
- toActionMap :: IsActionMap o => o -> IO ActionMap
- data ActionMapAddActionMethodInfo
- actionMapAddAction :: (HasCallStack, MonadIO m, IsActionMap a, IsAction b) => a -> b -> m ()
- data ActionMapAddActionEntriesMethodInfo
- actionMapAddActionEntries :: (HasCallStack, MonadIO m, IsActionMap a) => a -> [ActionEntry] -> Ptr () -> m ()
- data ActionMapLookupActionMethodInfo
- actionMapLookupAction :: (HasCallStack, MonadIO m, IsActionMap a) => a -> Text -> m Action
- data ActionMapRemoveActionMethodInfo
- actionMapRemoveAction :: (HasCallStack, MonadIO m, IsActionMap a) => a -> Text -> m ()
Exported types
GObject ActionMap Source # | |
IsObject ActionMap Source # | |
IsActionMap ActionMap Source # | |
((~) * info (ResolveActionMapMethod t ActionMap), MethodInfo * info ActionMap p) => IsLabel t (ActionMap -> p) Source # | |
((~) * info (ResolveActionMapMethod t ActionMap), MethodInfo * info ActionMap p) => IsLabelProxy t (ActionMap -> p) Source # | |
HasAttributeList * ActionMap Source # | |
type AttributeList ActionMap Source # | |
type SignalList ActionMap Source # | |
class GObject o => IsActionMap o Source #
toActionMap :: IsActionMap o => o -> IO ActionMap Source #
Methods
addAction
data ActionMapAddActionMethodInfo Source #
((~) * signature (b -> m ()), MonadIO m, IsActionMap a, IsAction b) => MethodInfo * ActionMapAddActionMethodInfo a signature Source # | |
:: (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
data ActionMapAddActionEntriesMethodInfo Source #
((~) * signature ([ActionEntry] -> Ptr () -> m ()), MonadIO m, IsActionMap a) => MethodInfo * ActionMapAddActionEntriesMethodInfo a signature Source # | |
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
data ActionMapLookupActionMethodInfo Source #
((~) * signature (Text -> m Action), MonadIO m, IsActionMap a) => MethodInfo * ActionMapLookupActionMethodInfo a signature Source # | |
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
data ActionMapRemoveActionMethodInfo Source #
((~) * signature (Text -> m ()), MonadIO m, IsActionMap a) => MethodInfo * ActionMapRemoveActionMethodInfo a signature Source # | |
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