## GtkRadioAction GtkRadioAction — An action of which only one in a group can be active |

## Synopsis

    #include <gtk/gtk.h>

    struct              GtkRadioAction;
    GtkRadioAction *    gtk_radio_action_new                (const gchar *name,
                                                             const gchar *label,
                                                             const gchar *tooltip,
                                                             const gchar *stock_id,
                                                             gint value);
    GSList *            gtk_radio_action_get_group          (GtkRadioAction *action);
    void                gtk_radio_action_set_group          (GtkRadioAction *action,
                                                             GSList *group);
    void                gtk_radio_action_join_group         (GtkRadioAction *action,
                                                             GtkRadioAction *group_source);
    gint                gtk_radio_action_get_current_value  (GtkRadioAction *action);
    void                gtk_radio_action_set_current_value  (GtkRadioAction *action,
                                                             gint current_value);

## Object Hierarchy

      GObject
       +----GtkAction
             +----GtkToggleAction
                   +----GtkRadioAction

## Implemented Interfaces

GtkRadioAction implements GtkBuildable.

## Properties

      "current-value"            gint                  : Read / Write
      "group"                    GtkRadioAction*       : Write
      "value"                    gint                  : Read / Write

## Signals

      "changed"                                        : No Recursion

## Description

A GtkRadioAction is similar to GtkRadioMenuItem. A number of radio actions can be linked together so that only one may be active at any one time.

## Details

### struct GtkRadioAction

    struct GtkRadioAction;

### gtk_radio_action_new ()

    GtkRadioAction *    gtk_radio_action_new                (const gchar *name,
                                                             const gchar *label,
                                                             const gchar *tooltip,
                                                             const gchar *stock_id,
                                                             gint value);

Creates a new GtkRadioAction object. To add the action to a GtkActionGroup and set the accelerator for the action, call `gtk_action_group_add_action_with_accel()`.

`name` : | A unique name for the action
`label` : | The label displayed in menu items and on buttons, or `NULL`. [allow-none]
`tooltip` : | A tooltip for this action, or `NULL`. [allow-none]
`stock_id` : | The stock icon to display in widgets representing this action, or `NULL`. [allow-none]
`value` : | The value which `gtk_radio_action_get_current_value()` should return if this action is selected.
Returns : | a new GtkRadioAction

Since 2.4

### gtk_radio_action_get_group ()

    GSList *            gtk_radio_action_get_group          (GtkRadioAction *action);

Returns the list representing the radio group for this object. Note that the returned list is only valid until the next change to the group.

A common way to set up a group of radio group is the following:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    GSList *group = NULL;
    GtkRadioAction *action;

    while (/* more actions to add */)
      {
         action = gtk_radio_action_new (...);

         gtk_radio_action_set_group (action, group);
         group = gtk_radio_action_get_group (action);
      }

`action` : | the action object
Returns : | the list representing the radio group for this object. [element-type GtkRadioAction][transfer none]

Since 2.4

### gtk_radio_action_set_group ()

    void                gtk_radio_action_set_group          (GtkRadioAction *action,
                                                             GSList *group);

Sets the radio group for the radio action object.

`action` : | the action object
`group` : | a list representing a radio group. [element-type GtkRadioAction]

Since 2.4

### gtk_radio_action_join_group ()

    void                gtk_radio_action_join_group         (GtkRadioAction *action,
                                                             GtkRadioAction *group_source);

Joins a radio action object to the group of another radio action object.

Use this in language bindings instead of the `gtk_radio_action_get_group()` and `gtk_radio_action_set_group()` methods

A common way to set up a group of radio actions is the following:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    GtkRadioAction *action;
    GtkRadioAction *last_action;

    while (/* more actions to add */)
      {
         action = gtk_radio_action_new (...);

         gtk_radio_action_join_group (action, last_action);
         last_action = action;
      }

`action` : | the action object
`group_source` : | a radio action object whos group we are joining, or `NULL` to remove the radio action from its group. [allow-none]

Since 3.0

### gtk_radio_action_get_current_value ()

    gint                gtk_radio_action_get_current_value  (GtkRadioAction *action);

Obtains the value property of the currently active member of the group to which `action` belongs.

`action` : | a GtkRadioAction
Returns : | The value of the currently active group member

Since 2.4

### gtk_radio_action_set_current_value ()

    void                gtk_radio_action_set_current_value  (GtkRadioAction *action,
                                                             gint current_value);

Sets the currently active group member to the member with value property `current_value`.

`action` : | a GtkRadioAction
`current_value` : | the new value

Since 2.10

## Property Details

### The `"current-value"` property

      "current-value"            gint                  : Read / Write

The value property of the currently active member of the group to which this action belongs.

Default value: 0

Since 2.10

### The `"group"` property

      "group"                    GtkRadioAction*       : Write

Sets a new group for a radio action.

Since 2.4

### The `"value"` property

      "value"                    gint                  : Read / Write

The value is an arbitrary integer which can be used as a convenient way to determine which action in the group is currently active in an ::activate or ::changed signal handler. See `gtk_radio_action_get_current_value()` and GtkRadioActionEntry for convenient ways to get and set this property.

Default value: 0

Since 2.4

## Signal Details

### The `"changed"` signal

    void                user_function                      (GtkRadioAction *action,
                                                            GtkRadioAction *current,
                                                            gpointer        user_data)      : No Recursion

The ::changed signal is emitted on every member of a radio group when the active member is changed. The signal gets emitted after the ::activate signals for the previous and current active members.

`action` : | the action on which the signal is emitted
`current` : | the member of `action`s group which has just been activated
`user_data` : | user data set when the signal handler was connected.

Since 2.4