[Contents] [Back] [Prev] [Up] [Next] [Forward]

# 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

- Gtk.Radio_Button Widget Hierarchy
- Gtk.Radio_Button Subprograms
- Gtk.Radio_Button Example

## Widget Hierarchy

    Gtk_Object                    (see section Package Gtk.Object)
       \___ Gtk_Widget            (see section Package Gtk.Widget)
          \___ Gtk_Container      (see section Package Gtk.Container)
             \___ Gtk_Bin         (see section Package Gtk.Bin)
                \___ Gtk_Button   (see section Package Gtk.Button)
                   \___ Gtk_Toggle_Button (see section Package Gtk.Toggle_Button)
                      \___ Gtk_Check_Button (see section Package Gtk.Check_Button)
                         \___ Gtk_Radio_Button (see section Package Gtk.Radio_Button)

## Subprograms

    procedure Gtk_New
      (Radio_Button       : out    Gtk_Radio_Button;
       Group              : in     Widget_SList.GSlist
                           := Widget_SList.Null_List;
       Label              : in     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              : in     Gtk_Radio_Button;
       Label              : in     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.
    function Get_Type              return Gtk.Gtk_Type;
| Return the internal value associated with a Gtk_Radio_Button.
    function 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.
    procedure Set_Group
      (Radio_Button       : access Gtk_Radio_Button_Record;
       Group              : in     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;

[Contents] [Back] [Prev] [Up] [Next] [Forward]