## GtkActionGroup

GtkActionGroup

## Functions

GtkActionGroup * | gtk_action_group_new ()
const gchar * | gtk_action_group_get_name ()
gboolean | gtk_action_group_get_sensitive ()
void | gtk_action_group_set_sensitive ()
gboolean | gtk_action_group_get_visible ()
void | gtk_action_group_set_visible ()
GtkAction * | gtk_action_group_get_action ()
GList * | gtk_action_group_list_actions ()
void | gtk_action_group_add_action ()
void | gtk_action_group_add_action_with_accel ()
void | gtk_action_group_remove_action ()
void | gtk_action_group_add_actions ()
void | gtk_action_group_add_actions_full ()
void | gtk_action_group_add_toggle_actions ()
void | gtk_action_group_add_toggle_actions_full ()
void | gtk_action_group_add_radio_actions ()
void | gtk_action_group_add_radio_actions_full ()
void | gtk_action_group_set_translate_func ()
void | gtk_action_group_set_translation_domain ()
const gchar * | gtk_action_group_translate_string ()

## Properties

gchar * | name | Read / Write / Construct Only
gboolean | sensitive | Read / Write
gboolean | visible | Read / Write

## Signals

void | connect-proxy |
void | disconnect-proxy |
void | post-activate |
void | pre-activate |

## Types and Values

struct | GtkActionGroup
struct | GtkActionEntry
struct | GtkToggleActionEntry
struct | GtkRadioActionEntry

## Object Hierarchy

        GObject
        ╰── GtkActionGroup

## Implemented Interfaces

GtkActionGroup implements GtkBuildable.

## Includes

    #include <gtk/gtk.h>

## Description

## Functions

### gtk_action_group_new ()

    GtkActionGroup *
    gtk_action_group_new (const gchar *name);

Creates a new GtkActionGroup object. The name of the action group is used when associating keybindings with the actions.

#### Parameters

name | the name of the action group. |

#### Returns

the new GtkActionGroup

Since: 2.4

### gtk_action_group_get_name ()

    const gchar *
    gtk_action_group_get_name (GtkActionGroup *action_group);

Gets the name of the action group.

#### Parameters

action_group | the action group |

#### Returns

the name of the action group.

Since: 2.4

### gtk_action_group_get_sensitive ()

    gboolean
    gtk_action_group_get_sensitive (GtkActionGroup *action_group);

Returns `TRUE` if the group is sensitive. The constituent actions can only be logically sensitive (see `gtk_action_is_sensitive()`) if they are sensitive (see `gtk_action_get_sensitive()`) and their group is sensitive.

#### Parameters

action_group | the action group |

#### Returns

`TRUE` if the group is sensitive.

Since: 2.4

### gtk_action_group_set_sensitive ()

    void
    gtk_action_group_set_sensitive (GtkActionGroup *action_group,
                                    gboolean sensitive);

Changes the sensitivity of `action_group`

#### Parameters

action_group | the action group |
sensitive | new sensitivity |

Since: 2.4

### gtk_action_group_get_visible ()

    gboolean
    gtk_action_group_get_visible (GtkActionGroup *action_group);

Returns `TRUE` if the group is visible. The constituent actions can only be logically visible (see `gtk_action_is_visible()`) if they are visible (see `gtk_action_get_visible()`) and their group is visible.

#### Parameters

action_group | the action group |

#### Returns

`TRUE` if the group is visible.

Since: 2.4

### gtk_action_group_set_visible ()

    void
    gtk_action_group_set_visible (GtkActionGroup *action_group,
                                  gboolean visible);

Changes the visible of `action_group` .

#### Parameters

action_group | the action group |
visible | new visiblity |

Since: 2.4

### gtk_action_group_get_action ()

    GtkAction *
    gtk_action_group_get_action (GtkActionGroup *action_group,
                                 const gchar *action_name);

Looks up an action in the action group by name.

#### Parameters

action_group | the action group |
action_name | the name of the action |

#### Returns

the action, or `NULL` if no action by that name exists.

[transfer none]

Since: 2.4

### gtk_action_group_list_actions ()

    GList *
    gtk_action_group_list_actions (GtkActionGroup *action_group);

Lists the actions in the action group.

#### Parameters

action_group | the action group |

#### Returns

an allocated list of the action objects in the action group.

[element-type GtkAction][transfer container]

Since: 2.4

### gtk_action_group_add_action ()

    void
    gtk_action_group_add_action (GtkActionGroup *action_group,
                                 GtkAction *action);

Adds an action object to the action group. Note that this function does not set up the accel path of the action, which can lead to problems if a user tries to modify the accelerator of a menuitem associated with the action. Therefore you must either set the accel path yourself with `gtk_action_set_accel_path()`, or use `gtk_action_group_add_action_with_accel (..., NULL)`.

#### Parameters

action_group | the action group |
action | an action |

Since: 2.4

### gtk_action_group_add_action_with_accel ()

    void
    gtk_action_group_add_action_with_accel
                                   (GtkActionGroup *action_group,
                                    GtkAction *action,
                                    const gchar *accelerator);

Adds an action object to the action group and sets up the accelerator.

If `accelerator` is `NULL`, attempts to use the accelerator associated with the stock_id of the action.

Accel paths are set to `<Actions>/`group-name`/`action-name``.

#### Parameters

action_group | the action group |
action | the action to add |
accelerator | the accelerator for the action, in the format understood by `gtk_accelerator_parse()`, or "" for no accelerator, or `NULL` to use the stock accelerator. | [allow-none]

Since: 2.4

### gtk_action_group_remove_action ()

    void
    gtk_action_group_remove_action (GtkActionGroup *action_group,
                                    GtkAction *action);

Removes an action object from the action group.

#### Parameters

action_group | the action group |
action | an action |

Since: 2.4

### gtk_action_group_add_actions ()

    void
    gtk_action_group_add_actions (GtkActionGroup *action_group,
                                  const GtkActionEntry *entries,
                                  guint n_entries,
                                  gpointer user_data);

This is a convenience function to create a number of actions and add them to the action group.

The "activate" signals of the actions are connected to the callbacks and their accel paths are set to `<Actions>/`group-name`/`action-name``.

#### Parameters

action_group | the action group |
entries | an array of action descriptions |
n_entries | the number of entries |
user_data | data to pass to the action callbacks |

Since: 2.4

### gtk_action_group_add_actions_full ()

    void
    gtk_action_group_add_actions_full (GtkActionGroup *action_group,
                                       const GtkActionEntry *entries,
                                       guint n_entries,
                                       gpointer user_data,
                                       GDestroyNotify destroy);

This variant of `gtk_action_group_add_actions()` adds a GDestroyNotify callback for `user_data` .

#### Parameters

action_group | the action group |
entries | an array of action descriptions |
n_entries | the number of entries |
user_data | data to pass to the action callbacks |
destroy | destroy notification callback for `user_data` |

Since: 2.4

### gtk_action_group_add_toggle_actions ()

    void
    gtk_action_group_add_toggle_actions (GtkActionGroup *action_group,
                                         const GtkToggleActionEntry *entries,
                                         guint n_entries,
                                         gpointer user_data);

This is a convenience function to create a number of toggle actions and add them to the action group.

The "activate" signals of the actions are connected to the callbacks and their accel paths are set to `<Actions>/`group-name`/`action-name``.

#### Parameters

action_group | the action group |
entries | an array of toggle action descriptions |
n_entries | the number of entries |
user_data | data to pass to the action callbacks |

Since: 2.4

### gtk_action_group_add_toggle_actions_full ()

    void
    gtk_action_group_add_toggle_actions_full
                                   (GtkActionGroup *action_group,
                                    const GtkToggleActionEntry *entries,
                                    guint n_entries,
                                    gpointer user_data,
                                    GDestroyNotify destroy);

This variant of `gtk_action_group_add_toggle_actions()` adds a GDestroyNotify callback for `user_data` .

#### Parameters

action_group | the action group |
entries | an array of toggle action descriptions |
n_entries | the number of entries |
user_data | data to pass to the action callbacks |
destroy | destroy notification callback for `user_data` |

Since: 2.4

### gtk_action_group_add_radio_actions ()

    void
    gtk_action_group_add_radio_actions (GtkActionGroup *action_group,
                                        const GtkRadioActionEntry *entries,
                                        guint n_entries,
                                        gint value,
                                        GCallback on_change,
                                        gpointer user_data);

This is a convenience routine to create a group of radio actions and add them to the action group.

The "changed" signal of the first radio action is connected to the `on_change` callback and the accel paths of the actions are set to `<Actions>/`group-name`/`action-name``.

#### Parameters

action_group | the action group |
entries | an array of radio action descriptions |
n_entries | the number of entries |
value | the value of the action to activate initially, or -1 if no action should be activated |
on_change | the callback to connect to the changed signal |
user_data | data to pass to the action callbacks |

Since: 2.4

### gtk_action_group_add_radio_actions_full ()

    void
    gtk_action_group_add_radio_actions_full
                                   (GtkActionGroup *action_group,
                                    const GtkRadioActionEntry *entries,
                                    guint n_entries,
                                    gint value,
                                    GCallback on_change,
                                    gpointer user_data,
                                    GDestroyNotify destroy);

This variant of `gtk_action_group_add_radio_actions()` adds a GDestroyNotify callback for `user_data` .

#### Parameters

action_group | the action group |
entries | an array of radio action descriptions |
n_entries | the number of entries |
value | the value of the action to activate initially, or -1 if no action should be activated |
on_change | the callback to connect to the changed signal |
user_data | data to pass to the action callbacks |
destroy | destroy notification callback for `user_data` |

Since: 2.4

### gtk_action_group_set_translate_func ()

    void
    gtk_action_group_set_translate_func (GtkActionGroup *action_group,
                                         GtkTranslateFunc func,
                                         gpointer data,
                                         GDestroyNotify notify);

Sets a function to be used for translating the `label` and `tooltip` of GtkActionGroupEntrys added by `gtk_action_group_add_actions()`.

If you're using `gettext()`, it is enough to set the translation domain with `gtk_action_group_set_translation_domain()`.

#### Parameters

action_group | a GtkActionGroup |
func | a GtkTranslateFunc |
data | data to be passed to `func` and `notify` |
notify | a GDestroyNotify function to be called when `action_group` is destroyed and when the translation function is changed again |

Since: 2.4

### gtk_action_group_set_translation_domain ()

    void
    gtk_action_group_set_translation_domain
                                   (GtkActionGroup *action_group,
                                    const gchar *domain);

Sets the translation domain and uses `g_dgettext()` for translating the `label` and `tooltip` of GtkActionEntrys added by `gtk_action_group_add_actions()`.

If you're not using `gettext()` for localization, see `gtk_action_group_set_translate_func()`.

#### Parameters

action_group | a GtkActionGroup |
domain | the translation domain to use for `g_dgettext()` calls |

Since: 2.4

### gtk_action_group_translate_string ()

    const gchar *
    gtk_action_group_translate_string (GtkActionGroup *action_group,
                                       const gchar *string);

Translates a string using the specified `translate_func()`. This is mainly intended for language bindings.

#### Parameters

action_group | a GtkActionGroup |
string | a string |

#### Returns

the translation of `string`

Since: 2.6

## Types and Values

### struct GtkActionGroup

    struct GtkActionGroup;

### struct GtkActionEntry

    struct GtkActionEntry {
      const gchar     *name;
      const gchar     *stock_id;
      const gchar     *label;
      const gchar     *accelerator;
      const gchar     *tooltip;
      GCallback  callback;
    };

### struct GtkToggleActionEntry

    struct GtkToggleActionEntry {
      const gchar     *name;
      const gchar     *stock_id;
      const gchar     *label;
      const gchar     *accelerator;
      const gchar     *tooltip;
      GCallback  callback;
      gboolean   is_active;
    };

### struct GtkRadioActionEntry

    struct GtkRadioActionEntry {
      const gchar *name;
      const gchar *stock_id;
      const gchar *label;
      const gchar *accelerator;
      const gchar *tooltip;
      gint   value;
    };

## Property Details

### The `“name”` property

      “name”                     gchar *

A name for the action group.

Flags: Read / Write / Construct Only

Default value: NULL

### The `“sensitive”` property

      “sensitive”                gboolean

Whether the action group is enabled.

Flags: Read / Write

Default value: TRUE

### The `“visible”` property

      “visible”                  gboolean

Whether the action group is visible.

Flags: Read / Write

Default value: TRUE

## Signal Details

### The `“connect-proxy”` signal

    void
    user_function (GtkActionGroup *action_group,
                   GtkAction      *action,
                   GtkWidget      *proxy,
                   gpointer        user_data)

The ::connect-proxy signal is emitted after connecting a proxy to an action in the group. Note that the proxy may have been connected to a different action before.

This is intended for simple customizations for which a custom action class would be too clumsy, e.g. showing tooltips for menuitems in the statusbar.

GtkUIManager proxies the signal and provides global notification just before any action is connected to a proxy, which is probably more convenient to use.

#### Parameters

action_group | the group |
action | the action |
proxy | the proxy |
user_data | user data set when the signal handler was connected. |

Since: 2.4

### The `“disconnect-proxy”` signal

    void
    user_function (GtkActionGroup *action_group,
                   GtkAction      *action,
                   GtkWidget      *proxy,
                   gpointer        user_data)

The ::disconnect-proxy signal is emitted after disconnecting a proxy from an action in the group.

GtkUIManager proxies the signal and provides global notification just before any action is connected to a proxy, which is probably more convenient to use.

#### Parameters

action_group | the group |
action | the action |
proxy | the proxy |
user_data | user data set when the signal handler was connected. |

Since: 2.4

### The `“post-activate”` signal

    void
    user_function (GtkActionGroup *action_group,
                   GtkAction      *action,
                   gpointer        user_data)

The ::post-activate signal is emitted just after the `action` in the `action_group` is activated

This is intended for GtkUIManager to proxy the signal and provide global notification just after any action is activated.

#### Parameters

action_group | the group |
action | the action |
user_data | user data set when the signal handler was connected. |

Since: 2.4

### The `“pre-activate”` signal

    void
    user_function (GtkActionGroup *action_group,
                   GtkAction      *action,
                   gpointer        user_data)

The ::pre-activate signal is emitted just before the `action` in the `action_group` is activated

This is intended for GtkUIManager to proxy the signal and provide global notification just before any action is activated.

#### Parameters

action_group | the group |
action | the action |
user_data | user data set when the signal handler was connected. |

Since: 2.4