gi-gio-2.0.19: Gio bindings

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.Gio.Interfaces.ActionMap

Contents

- Exported types
- Methods
  - addAction
  - addActionEntries
  - lookupAction
  - removeAction

Description

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.

Since: 2.32

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

newtype ActionMap Source #

Memory-managed wrapper type.

Constructors

ActionMap (ManagedPtr ActionMap) |

Instances

GObject ActionMap Source # |
Instance details Defined in GI.Gio.Interfaces.ActionMap Methods gobjectType :: ActionMap -> IO GType Source #
IsObject ActionMap Source # |
Instance details Defined in GI.Gio.Interfaces.ActionMap
IsActionMap ActionMap Source # |
Instance details Defined in GI.Gio.Interfaces.ActionMap

noActionMap :: Maybe ActionMap Source #

A convenience alias for `Nothing` :: `Maybe` `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 # |
Instance details Defined in GI.Gio.Interfaces.ActionMap
IsActionMap ActionMap Source # |
Instance details Defined in GI.Gio.Interfaces.ActionMap
IsActionMap Application Source # |
Instance details Defined in GI.Gio.Objects.Application
IsActionMap SimpleActionGroup Source # |
Instance details Defined in GI.Gio.Objects.SimpleActionGroup

toActionMap :: (MonadIO m, IsActionMap o) => o -> m ActionMap Source #

Cast to `ActionMap`, for types for which this is known to be safe. For general casts, use `castTo`.

# Methods

## addAction

actionMapAddAction Source #

Arguments

:: (HasCallStack, MonadIO m, IsActionMap a, IsAction b) |
=> a | `actionMap`: a `ActionMap`
-> b | `action`: a `Action`
-> 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 #

Arguments

:: (HasCallStack, MonadIO m, IsActionMap a) |
=> a | `actionMap`: a `ActionMap`
-> [ActionEntry] | `entries`: a pointer to the first item in an array of `ActionEntry` structs
-> Ptr () | `userData`: the user data for signal connections
-> 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 #

Arguments

:: (HasCallStack, MonadIO m, IsActionMap a) |
=> a | `actionMap`: a `ActionMap`
-> Text | `actionName`: the name of an action
-> m Action | Returns: a `Action`, or `Nothing`

Looks up the action with the name `actionName` in `actionMap`.

If no such action exists, returns `Nothing`.

Since: 2.32

## removeAction

actionMapRemoveAction Source #

Arguments

:: (HasCallStack, MonadIO m, IsActionMap a) |
=> a | `actionMap`: a `ActionMap`
-> Text | `actionName`: the name of the action
-> 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