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 actions group which has just been activated

user_data :

user data set when the signal handler was connected.

Since 2.4