### Struct

# Gio ActionEntry

since: 2.0

#### Description

    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_action_map_add_action_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_action_map_add_action_entries()` for an example.

###### Structure members

`name`

  The name of the action.

`activate`

  The callback to connect to the “activate” signal of the action. Since GLib 2.40, this can be `NULL` for stateful actions, in which case the default handler is used. For boolean-stated actions with no parameter, this is a toggle. For other state types (and parameter type equal to the state type) this will be a function that just calls `change_state` (which you should provide).

`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)

`state`

  The initial state for this action, given in [GVariant text format][gvariant-text]. The state is parsed with no extra type information, so type tags must be added to the string if they are necessary. Stateless actions should give `NULL` here.

`change_state`

  The callback to connect to the “change-state” signal of the action. All stateful actions should provide a handler here; stateless actions should not.

Available since: 2.0