Toc Gallery Index Tree Gtk.Radio_Button

Screenshot

No screeshot

Hierarchy

Description

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

Types

  • type Gtk_Radio_Button is access all Gtk_Radio_Button_Record'Class;
  • type Gtk_Radio_Button_Record is new Check_Button.Gtk_Check_Button_Record with private;

Subprograms

  • procedure Gtk_New (Radio_Button : out Gtk_Radio_Button; Group : Widget_SList.GSlist := Widget_SList.Null_List; Label : UTF8_String := "");
    procedure Initialize (Radio_Button : access Gtk_Radio_Button_Record'Class; Group : Widget_SList.GSlist; Label : UTF8_String);
    Creates or initializes 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 := "");
    procedure Initialize (Radio_Button : access Gtk_Radio_Button_Record'Class; Group : Gtk_Radio_Button; Label : UTF8_String);
    Creates or initializes 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);
    procedure Initialize_With_Mnemonic (Radio_Button : access Gtk_Radio_Button_Record'Class; Group : Widget_SList.GSlist; 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);
    procedure Initialize_With_Mnemonic (Radio_Button : access Gtk_Radio_Button_Record'Class; Group : Gtk_Radio_Button; Label : UTF8_String);
    Creates or initializes 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.

  • function Get_Type return Gtk.Gtk_Type;
    Return the internal value associated with a Gtk_Radio_Button.
  • procedure Set_Group (Radio_Button : access Gtk_Radio_Button_Record; Group : Widget_SList.GSlist);
    function Get_Group (Radio_Button : access Gtk_Radio_Button_Record) return Widget_SList.GSlist;
    Modify the group to which the button belongs. This will not change anything visually. 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.

Signals

Properties

  • Group_Property
    Object
    The radio button whose group this widget belongs to.

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;

Testgtk source code

This code is part of testgtk, a demo application packaged with GtkAda. Testgtk demonstrates the various widgets of GtkAda
----------------------------------------------------------------------- -- GtkAda - Ada95 binding for the Gimp Toolkit -- -- -- -- Copyright (C) 1998-1999 -- -- Emmanuel Briot, Joel Brobecker and Arnaud Charlet -- -- -- -- This library is free software; you can redistribute it and/or -- -- modify it under the terms of the GNU General Public -- -- License as published by the Free Software Foundation; either -- -- version 2 of the License, or (at your option) any later version. -- -- -- -- This library is distributed in the hope that it will be useful, -- -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- -- General Public License for more details. -- -- -- -- You should have received a copy of the GNU General Public -- -- License along with this library; if not, write to the -- -- Free Software Foundation, Inc., 59 Temple Place - Suite 330, -- -- Boston, MA 02111-1307, USA. -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- with Gtk.Box; use Gtk.Box; with Gtk.Radio_Button; use Gtk.Radio_Button; with Gtk.Widget; use Gtk.Widget; with Gtk; use Gtk; package body Create_Radio_Button is function Help return String is begin return "A @bGtk_Radio_Button@B is part of a group. Only one button" & " can be selected in this group. If you select a new button," & " the button currently selected is first deselected." & ASCII.LF & "This group is actually a simple @bWidget_SList.GSList@B. You" & " put the first button into the @bNull_List@B, and then add" & " the next buttons to the @bGroup@B created."; end Help; procedure Run (Frame : access Gtk.Frame.Gtk_Frame_Record'Class) is Box1, Box2 : Gtk_Box; Button : Gtk_Radio_Button; begin Set_Label (Frame, "Radio Buttons"); Gtk_New_Vbox (Box1, False, 0); Add (Frame, Box1); Gtk_New_Vbox (Box2, False, 10); Set_Border_Width (Box2, 10); Pack_Start (Box1, Box2, False, False, 0); Gtk_New (Button, Widget_SList.Null_List, "button1"); Pack_Start (Box2, Button, True, True, 0); Gtk_New (Button, Get_Group (Button), "button2"); Set_Active (Button, True); Pack_Start (Box2, Button, True, True, 0); Gtk_New (Button, Get_Group (Button), "button3"); Pack_Start (Box2, Button, True, True, 0); Show_All (Frame); end Run; end Create_Radio_Button;

Alphabetical Index