manpagez: man pages & more
html files: gio
Home | html | info | man

GSimpleActionGroup

GSimpleActionGroup — A simple GActionGroup implementation

Object Hierarchy

  GObject
   +----GSimpleActionGroup

Implemented Interfaces

GSimpleActionGroup implements GActionGroup.

Description

GSimpleActionGroup is a hash table filled with GAction objects, implementing the GActionGroup interface.

Details

GSimpleActionGroup

typedef struct _GSimpleActionGroup GSimpleActionGroup;

The GSimpleActionGroup structure contains private data and should only be accessed using the provided API.

Since 2.28


g_simple_action_group_new ()

GSimpleActionGroup *     g_simple_action_group_new      (void);

Creates a new, empty, GSimpleActionGroup.

Returns :

a new GSimpleActionGroup

Since 2.28


g_simple_action_group_lookup ()

GAction *                g_simple_action_group_lookup   (GSimpleActionGroup *simple,
                                                         const gchar *action_name);

Looks up the action with the name action_name in the group.

If no such action exists, returns NULL.

simple :

a GSimpleActionGroup

action_name :

the name of an action

Returns :

a GAction, or NULL. [transfer none]

Since 2.28


g_simple_action_group_insert ()

void                g_simple_action_group_insert        (GSimpleActionGroup *simple,
                                                         GAction *action);

Adds an action to the action group.

If the action group already contains an action with the same name as action then the old action is dropped from the group.

The action group takes its own reference on action.

simple :

a GSimpleActionGroup

action :

a GAction

Since 2.28


g_simple_action_group_remove ()

void                g_simple_action_group_remove        (GSimpleActionGroup *simple,
                                                         const gchar *action_name);

Removes the named action from the action group.

If no action of this name is in the group then nothing happens.

simple :

a GSimpleActionGroup

action_name :

the name of the action

Since 2.28


struct GActionEntry

struct GActionEntry {
  const gchar *name;

  void (* activate) (GSimpleAction *action,
                     GVariant      *parameter,
                     gpointer       user_data);

  const gchar *parameter_type;

  const gchar *state;

  void (* change_state) (GSimpleAction *action,
                         GVariant      *value,
                         gpointer       user_data);
};

This struct defines a single action. It is for use with g_simple_action_group_add_entries().

The order of the items in the structure are intended to reflect frequency of use. It is permissible to use an incomplete initialiser in order to leave some of the later values as NULL. All values after name are optional. Additional optional fields may be added in the future.

See g_simple_action_group_add_entries() for an example.

const gchar *name;

the name of the action

activate ()

the callback to connect to the "activate" signal of the action

const gchar *parameter_type;

the type of the parameter that must be passed to the activate function for this action, given as a single GVariant type string (or NULL for no parameter)

const gchar *state;

the initial state for this action, given in GVariant text format. The state is parsed with no extra type information, so type tags must be added to the string if they are necessary.

change_state ()

the callback to connect to the "change-state" signal of the action

g_simple_action_group_add_entries ()

void                g_simple_action_group_add_entries   (GSimpleActionGroup *simple,
                                                         const GActionEntry *entries,
                                                         gint n_entries,
                                                         gpointer user_data);

A convenience function for creating multiple GSimpleAction instances and adding them to the action group.

Each action is constructed as per one GActionEntry.

Example 13. Using g_simple_action_group_add_entries()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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_simple_action_group_add_entries (group, entries, G_N_ELEMENTS (entries), NULL);

  return G_ACTION_GROUP (group);
}


simple :

a GSimpleActionGroup

entries :

a pointer to the first item in an array of GActionEntry structs

n_entries :

the length of entries, or -1

user_data :

the user data for signal connections

Since 2.30

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.