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
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);
-
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);
-
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);
-
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);
-
-
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;
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;