Toc Gallery Index Tree Gtk.Toggle_Button

Screenshot

No screeshot

Hierarchy

Description

A Gtk_Toggle_Button is like a regular button, but can be in one of two states, "active" or "inactive". Its visual aspect is modified when the state is changed.

You should consider using a Gtk_Check_Button instead, since it looks nicer and provides more visual clues that the button can be toggled.

Types

  • type Gtk_Toggle_Button is access all Gtk_Toggle_Button_Record'Class;
  • type Gtk_Toggle_Button_Record is new Gtk.Button.Gtk_Button_Record with private;

Subprograms

  • procedure Gtk_New (Toggle_Button : out Gtk_Toggle_Button; Label : UTF8_String := "");
    Initialize a button. If Label is "", then no label is created inside the button and you will have to provide your own child through a call to Gtk.Container.Add. This is the recommended way to put a pixmap inside a toggle button.
  • procedure Gtk_New_With_Mnemonic (Toggle_Button : out Gtk_Toggle_Button; Label : UTF8_String);
    Create a Gtk_Toggle_Button containing Label. The Label will be created using Gtk.Label.Gtk_New_With_Mnemonic, so underscores in Label indicate the mnemonic for the button.
  • procedure Initialize (Toggle_Button : access Gtk_Toggle_Button_Record'Class; Label : UTF8_String := "");
    Internal initialization function. See the section "Creating your own widgets" in the documentation.
  • procedure Initialize_With_Mnemonic (Toggle_Button : access Gtk_Toggle_Button_Record'Class; Label : UTF8_String);
    Internal initialization function.
  • function Get_Type return Glib.GType;
    Return the internal value associated with a Gtk_Toggle_Button.
  • procedure Set_Mode (Toggle_Button : access Gtk_Toggle_Button_Record; Draw_Indicator : Boolean);
    function Get_Mode (Toggle_Button : access Gtk_Toggle_Button_Record) return Boolean;
    Change the mode of the button. If Draw_Indicator is False, then the button is hidden.
  • procedure Set_Active (Toggle_Button : access Gtk_Toggle_Button_Record; Is_Active : Boolean);
    function Get_Active (Toggle_Button : access Gtk_Toggle_Button_Record) return Boolean;
    Change the state of the button. When Is_Active is True, the button is drawn as a pressed button.
  • procedure Set_Inconsistent (Toggle_Button : access Gtk_Toggle_Button_Record; Setting : Boolean := True);
    function Get_Inconsistent (Toggle_Button : access Gtk_Toggle_Button_Record) return Boolean;
    If the user has selected a range of elements (such as some text or spreadsheet cells) that are affected by a toggle button, and the current values in that range are inconsistent, you may want to display the toggle in an "in between" state. This function turns on "in between" display. Normally you would turn off the inconsistent state again if the user toggles the toggle button. This has to be done manually, Set_Inconsistent only affects visual appearance, it doesn't affect the semantics of the button.
  • Signals emission

  • procedure Toggled (Toggle_Button : access Gtk_Toggle_Button_Record);
    Emit the toggled signal on this widget. Note that the state of the button is not changed, only the callbacks are called.

Signals

  • toggled
    procedure Handler (Toggle : access Gtk_Toggle_Button_Record'Class);
    This signal is emitted every time the state of the button is modified.

Properties

  • Active_Property
    Boolean
    If the toggle button should be pressed in or not
  • Draw_Indicator_Property
    Boolean
    If the toggle part of the button is displayed
  • Inconsistent_Property
    Boolean
    If the toggle button is in an \

Example

This example creates a toggle button with a pixmap in it with Gtk.Toggle_Button, Gdk.Pixmap, Gdk.Bitmap, Gtk.Pixmap; with Gtk.Style, Gtk.Enums; procedure Toggle is Toggle : Gtk.Toggle_Button.Gtk_Toggle_Button; Style : Gtk.Style.Gtk_Style; Pixmap : Gdk.Pixmap.Gdk_Pixmap; Mask : Gdk.Bitmap.Gdk_Bitmap; PixmapWid : Gtk.Pixmap.Gtk_Pixmap; begin Do not specify a label Gtk.Toggle_Button.Gtk_New (Toggle); Style := Gtk.Toggle_Button.Get_Style (Toggle); Gdk.Pixmap.Create_From_Xpm (Pixmap, Gtk.Toggle_Button.Get_Window (Toggle), Mask, Gtk.Style.Get_Bg (Style, Gtk.Enums.State_Normal), "icon.xpm"); Gtk.Pixmap.Gtk_New (PixmapWid, Pixmap, Mask); Add the pixmap to the button Gtk.Toggle_Button.Add (Toggle, PixmapWid); end Toggle;

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 Glib; use Glib; with Gtk; use Gtk; with Gtk.Box; use Gtk.Box; with Gtk.Toggle_Button; use Gtk.Toggle_Button; package body Create_Toggle_Buttons is ---------- -- Help -- ---------- function Help return String is begin return "A @bGtk_Toggle_Button@B is a button with two possible states," & " on and off. Their state is modified each time the user pressed" & " the button. As opposed to @bGtk_Radio_Button@B, " & " @bGtk_Toggle_Button@B are not grouped, and multiple buttons can" & " be selected at the same time."; end Help; --------- -- Run -- --------- procedure Run (Frame : access Gtk.Frame.Gtk_Frame_Record'Class) is Box1, Box2 : Box.Gtk_Box; A_Toggle_Button : Toggle_Button.Gtk_Toggle_Button; begin Set_Label (Frame, "Toggle Buttons"); Box.Gtk_New_Vbox (Box1, Homogeneous => False, Spacing => 0); Add (Container => Frame, Widget => Box1); Box.Gtk_New_Vbox (Box2, Homogeneous => False, Spacing => 10); Set_Border_Width (Container => Box2, Border_Width => 10); Box.Pack_Start (In_Box => Box1, Child => Box2, Expand => False, Fill => False); Toggle_Button.Gtk_New (A_Toggle_Button, "button1"); Box.Pack_Start (In_Box => Box2, Child => A_Toggle_Button, Expand => False, Fill => False); Toggle_Button.Gtk_New (A_Toggle_Button, "button2"); Box.Pack_Start (In_Box => Box2, Child => A_Toggle_Button, Expand => False, Fill => False); Toggle_Button.Gtk_New (A_Toggle_Button, "button3"); Box.Pack_Start (In_Box => Box2, Child => A_Toggle_Button, Expand => False, Fill => False); Show_All (Frame); end Run; end Create_Toggle_Buttons;

Alphabetical Index