gi-gio-2.0.18: Gio bindings

CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (garetxe@gmail.com)
Safe HaskellNone
LanguageHaskell2010

GI.Gio.Interfaces.ActionMap

Contents

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.

Synopsis

Exported types

newtype ActionMap Source #

Memory-managed wrapper type.

Instances
GObject ActionMap Source # 
Instance details

Defined in GI.Gio.Interfaces.ActionMap

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.

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