Next: , Previous: Package_Gtk.Progress_Bar, Up: Top



Package Gtk.Radio_Button

A Gtk_Radio_Button is a simple button that has two states, like a Gtk_Toggle_Button. However, Gtk_Radio_Buttons can be grouped together to get a special behavior: only one button in the group can be active at any given time. Thus, when the user selects one of the buttons from the group, the button that was previously selected is disabled.

The radio buttons always belongs to a group, even if there is only one in this group

Widget Hierarchy
     GObject                       (see Package_Glib.Object)
     Gtk_Object                    (see Package_Gtk.Object)
        \___ Gtk_Widget            (see Package_Gtk.Widget)
           \___ Gtk_Container      (see Package_Gtk.Container)
              \___ Gtk_Bin         (see Package_Gtk.Bin)
                 \___ Gtk_Button   (see Package_Gtk.Button)
                    \___ Gtk_Toggle_Button (see Package_Gtk.Toggle_Button)
                       \___ Gtk_Check_Button (see Package_Gtk.Check_Button)
                          \___ Gtk_Radio_Button (see Package_Gtk.Radio_Button)
     

Subprograms
procedure Gtk_New (Radio_Button : out Gtk_Radio_Button; Group : Widget_SList.GSlist := Widget_SList.Null_List; Label : UTF8_String := "");
Create a new radio button, belonging to Group.
If Label is left as the empty string, then the button will not have any child and you are free to put any thing you want in it, including a pixmap. To initialize the group (when creating the first button), leave Group to the Null_List. You can later get the new group that is created with a call to the Group subprogram below.

procedure Gtk_New (Radio_Button : out Gtk_Radio_Button; Group : Gtk_Radio_Button; Label : UTF8_String := "");
Create a new radio button in the same group as Group.
If Label is left as the empty string, Radio_Button is created without any child and you can put whatever you want in it, including a pixmap.

To initialize a new group (when creating the first button), you should pass it null or a button that has not been created with Gtk_New, as in the example below.

procedure Gtk_New_With_Mnemonic (Radio_Button : out Gtk_Radio_Button; Group : Widget_SList.GSlist := Widget_SList.Null_List; Label : UTF8_String);
Create a new Gtk_Radio_Button containing a Label. The Label is created
using Gtk.Label.New_With_Mnemonic, so underscores in Label indicate the mnemonic for the button.

To initialize a new group (when creating the first button), you should pass it null or a button that has not been created with Gtk_New, as in the example below.

procedure Gtk_New_With_Mnemonic (Radio_Button : out Gtk_Radio_Button; Group : Gtk_Radio_Button; Label : UTF8_String);
Create a new radio button in the same group as Group. The label is
created using Gtk.Label.New_With_Mnemonic, so underscores in Label indicate the mnemonic for the button.

To initialize a new group (when creating the first button), you should pass it null or a button that has not been created with Gtk_New, as in the example below.

procedure Initialize_With_Mnemonic (Radio_Button : access Gtk_Radio_Button_Record'Class; Group : Widget_SList.GSlist; Label : UTF8_String);

procedure Initialize_With_Mnemonic (Radio_Button : access Gtk_Radio_Button_Record'Class; Group : Gtk_Radio_Button; Label : UTF8_String);

function Get_Type return Gtk.Gtk_Type;
Return the internal value associated with a Gtk_Radio_Button.

function Get_Group (Radio_Button : access Gtk_Radio_Button_Record) return Widget_SList.GSlist;
Return the group to which Radio_Button belongs.
This can be used as an argument to the first version of Gtk_New above, or the list can also be traversed to get all the buttons.

function Group (Radio_Button : access Gtk_Radio_Button_Record) return Widget_SList.GSlist;
This function is deprecated.

procedure Set_Group (Radio_Button : access Gtk_Radio_Button_Record; Group : Widget_SList.GSlist);
Modify the group to which the button belongs.
This will not change anything visually.

Example

      --  This creates a group of two buttons. Note how the group is initialized.
     
      declare
         Radio_Button : Gtk_Radio_Button;
      begin
         Gtk_New (Radio_Button,
                  Group       => Radio_Button,
                  Label       => "First button");
         Gtk_New (Radio_Button,
                  Group       => Radio_Button,
                  Label       => "Second button");
      end;