Toc Gallery Index Tree Gtk.Toolbar

Screenshot

No screeshot

Hierarchy

Description

A toolbar groups a number of items (buttons, combo boxes,...), generally at the top of the application window, just below the menu bar. It provides quick access to the most commonly used features of your application. It is common for an application to have multiple toolbars.

Types

Subprograms

  • procedure Gtk_New (Widget : out Gtk_Toolbar);
    procedure Initialize (Widget : access Gtk_Toolbar_Record'Class);
    Create or initialize a new toolbar
  • function Get_Type return Glib.GType;
    Return the internal value associated with a Gtk_Toolbar.
  • Items

  • procedure Insert (Toolbar : access Gtk_Toolbar_Record; Item : access Gtk.Tool_Item.Gtk_Tool_Item_Record'Class; Pos : Gint := -1);
    Insert a new item anywhere in the toolbar. If Pos is negative, the item is inserted at the end. If Pos is 0, the item is inserted first in the toolbar
  • function Get_Item_Index (Toolbar : access Gtk_Toolbar_Record; Item : access Gtk.Tool_Item.Gtk_Tool_Item_Record'Class) return Gint;
    Get the position of Item within the toolbar
  • function Get_N_Items (Toolbar : access Gtk_Toolbar_Record) return Gint;
    Return the number of items in the toolbar
  • function Get_Nth_Item (Toolbar : access Gtk_Toolbar_Record; N : Gint) return Gtk.Tool_Item.Gtk_Tool_Item;
    Return the n-th item in the toolbar
  • procedure Set_Drop_Highlight_Item (Toolbar : access Gtk_Toolbar_Record; Tool_Item : access Gtk.Tool_Item.Gtk_Tool_Item_Record'Class; Index : Gint);
    Highlights Toolbar to give an idea of what it would look like if Item was added at the position indicated by Index. If Item is %NULL, highlighting is turned off. In that case Index is ignored.

    The item passed to this function must not be part of any widget hierarchy. When an item is set as drop highlight item it can not be added to any widget hierarchy or used as highlight item for another toolbar.

  • Style functions

  • procedure Set_Orientation (Toolbar : access Gtk_Toolbar_Record; Orientation : Gtk_Orientation);
    function Get_Orientation (Toolbar : access Gtk_Toolbar_Record) return Gtk_Orientation;
    Set or get the orientation (horizontal, vertical) for the toolbar
  • procedure Set_Style (Toolbar : access Gtk_Toolbar_Record; Style : Gtk_Toolbar_Style);
    function Get_Style (Toolbar : access Gtk_Toolbar_Record) return Gtk_Toolbar_Style;
    Set the style of the toolbar: text only, images only, or both
  • procedure Unset_Style (Toolbar : access Gtk_Toolbar_Record);
    Unsets a toolbar style set with Set_Style, so that user preferences will be used to determine the toolbar style. These user preferences are defined through the current gtk+ theme
  • procedure Set_Tooltips (Toolbar : access Gtk_Toolbar_Record; Enable : Boolean);
    function Get_Tooltips (Toolbar : access Gtk_Toolbar_Record) return Boolean;
    Sets whether tooltips should be enabled for items in the toolbar
  • function Get_Relief_Style (Toolbar : access Gtk_Toolbar_Record) return Gtk_Relief_Style;
    Returns the relief style of buttons on Toolbar. See Gtk.Button.Set_Relief for more information on reliefs.
  • procedure Set_Show_Arrow (Toolbar : access Gtk_Toolbar_Record; Show_Arrow : Boolean := True);
    function Get_Show_Arrow (Toolbar : access Gtk_Toolbar_Record) return Boolean;
    Sets or Gets whether to show an overflow arrow when the toolbar doesn't have room for all items on it. If True, the items that have no room are still available to the user.
  • function Get_Icon_Size (Toolbar : access Gtk_Toolbar_Record) return Gtk_Icon_Size;
    Returns the icon size used in this toolbar
  • Misc

  • function Get_Drop_Index (Toolbar : access Gtk_Toolbar_Record; X : Gint; Y : Gint) return Gint;
    Returns the position corresponding to the indicated point on Toolbar. This is useful when dragging items to the toolbar: this function returns the position a new item should be inserted. (X, Y) are the coordinates, in pixels, within the toolbar

Signals

  • focus_home_or_end
    function Handler (Toolbar : access Gtk_Toolbar_Record'Class; Focus_Home : Boolean) return Boolean;
    A keybinding signal used internally by GTK+. This signal can't be used in application code
  • popup_context_menu
    function Handler (Toolbar : access Gtk_Toolbar_Record'Class; X, Y, Button : Gint) return Boolean;
    Emitted when the user right-clicks the toolbar or uses the keybinding to display a popup menu. Application developers should handle this signal if they want to display a context menu on the toolbar. The context-menu should appear at the coordinates given by (x, y). The mouse button number is given by the Button parameter (set to -1 if popped up with the keyboard). Return value is True if the signal was handled.

Properties

  • Orientation_Property
    Gtk_Orientation
  • Show_Arrow_Property
    Boolean
  • Toolbar_Style_Property
    Gtk_Toolbar_Style
  • Tooltips_Property
    Boolean

Child Properties

  • Expand_Property
    Boolean
    Whether the item should receive extra space when the toolbar
  • Homogeneous_Property
    Boolean
    Whether the item should be the same size as other homogeneous

Style Properties

  • Button_Relief_Property
    Enum
    Type of bevel around toolbar buttons
  • Internal_Padding_Property
    Int
    Amount of border space between the toolbar shadow and the buttons
  • Shadow_Type_Property
    Enum
    Style of bevel around the toolbar
  • Space_Size_Property
    Int
    Size of spacers
  • Space_Style_Property
    Enum
    Whether spacers are vertical lines or just blank

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 -- -- Copyright 2000-2006 AdaCore -- -- -- -- 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 Gdk.Bitmap; use Gdk.Bitmap; with Gdk.Color; use Gdk.Color; with Gdk.Pixmap; use Gdk.Pixmap; with Gtk.Enums; use Gtk.Enums; with Gtk.GEntry; use Gtk.GEntry; with Gtk.Handlers; use Gtk.Handlers; with Gtk.Image; use Gtk.Image; with Gtk.Separator_Tool_Item; use Gtk.Separator_Tool_Item; with Gtk.Tool_Button; use Gtk.Tool_Button; with Gtk.Tool_Item; use Gtk.Tool_Item; with Gtk.Tooltips; use Gtk.Tooltips; with Gtk.Widget; use Gtk.Widget; with Gtk; use Gtk; package body Create_Toolbar is package Toolbar_Cb is new Handlers.Callback (Gtk_Toolbar_Record); ---------- -- Help -- ---------- function Help return String is begin return "A @bGtk_Toolbar@B is a set of buttons. Each button is can be" & " represented both as a text or an icon, or even both. A tooltip" & " is automatically created for each button." & ASCII.LF & "The following two signals are defined:" & ASCII.LF & " - ""orientation_changed"": the widget was re-oriented." & ASCII.LF & " - ""style_changed"": a new style was selected." & ASCII.LF & ASCII.LF & "It is worth noting that the toolbar can basically contain any type" & " of widget, not only buttons. In this demo, we have added a " & " @bGtk_Entry@B widget in the middle."; end Help; ---------------- -- New_Pixmap -- ---------------- function New_Pixmap (Filename : in String; Window : in Gdk_Window; Background : in Gdk_Color) return Gtk_Widget is Pixmap : Gdk_Pixmap; Mask : Gdk_Bitmap; GtkPixmap : Gtk_Image; begin Create_From_Xpm (Pixmap, Window, Mask, Background, Filename); Gtk_New (GtkPixmap, Pixmap, Mask); return Gtk_Widget (GtkPixmap); end New_Pixmap; -------------------- -- Set_Horizontal -- -------------------- procedure Set_Horizontal (Toolbar : access Gtk_Toolbar_Record'Class) is begin Set_Orientation (Toolbar, Orientation_Horizontal); end Set_Horizontal; ------------------ -- Set_Vertical -- ------------------ procedure Set_Vertical (Toolbar : access Gtk_Toolbar_Record'Class) is begin Set_Orientation (Toolbar, Orientation_Vertical); end Set_Vertical; --------------- -- Set_Icons -- --------------- procedure Set_Icons (Toolbar : access Gtk_Toolbar_Record'Class) is begin Set_Style (Toolbar, Toolbar_Icons); end Set_Icons; -------------- -- Set_Text -- -------------- procedure Set_Text (Toolbar : access Gtk_Toolbar_Record'Class) is begin Set_Style (Toolbar, Toolbar_Text); end Set_Text; -------------- -- Set_Both -- -------------- procedure Set_Both (Toolbar : access Gtk_Toolbar_Record'Class) is begin Set_Style (Toolbar, Toolbar_Both); end Set_Both; --------------------- -- Set_Small_Space -- --------------------- procedure Set_Small_Space (Toolbar : access Gtk_Toolbar_Record'Class) is pragma Warnings (Off, Toolbar); begin -- Set_Space_Size (Toolbar, 5); null; end Set_Small_Space; ------------------- -- Set_Big_Space -- ------------------- procedure Set_Big_Space (Toolbar : access Gtk_Toolbar_Record'Class) is pragma Warnings (Off, Toolbar); begin -- Set_Space_Size (Toolbar, 10); null; end Set_Big_Space; ---------------- -- Set_Enable -- ---------------- procedure Set_Enable (Toolbar : access Gtk_Toolbar_Record'Class) is begin Set_Tooltips (Toolbar, True); end Set_Enable; ----------------- -- Set_Disable -- ----------------- procedure Set_Disable (Toolbar : access Gtk_Toolbar_Record'Class) is begin Set_Tooltips (Toolbar, False); end Set_Disable; ------------- -- Borders -- ------------- procedure Borders (Toolbar : access Gtk_Toolbar_Record'Class) is pragma Warnings (Off, Toolbar); begin -- Set_Button_Relief (Toolbar, Relief_Normal); null; end Borders; ---------------- -- Borderless -- ---------------- procedure Borderless (Toolbar : access Gtk_Toolbar_Record'Class) is pragma Warnings (Off, Toolbar); begin -- Set_Button_Relief (Toolbar, Relief_None); null; end Borderless; ----------------------- -- Space_Style_Empty -- ----------------------- procedure Space_Style_Empty (Toolbar : access Gtk_Toolbar_Record'Class) is pragma Warnings (Off, Toolbar); begin -- Set_Space_Style (Toolbar, Toolbar_Space_Empty); null; end Space_Style_Empty; ---------------------- -- Space_Style_Line -- ---------------------- procedure Space_Style_Line (Toolbar : access Gtk_Toolbar_Record'Class) is pragma Warnings (Off, Toolbar); begin -- Set_Space_Style (Toolbar, Toolbar_Space_Line); null; end Space_Style_Line; ------------------ -- Make_Toolbar -- ------------------ procedure Make_Toolbar (Toolbar : out Gtk_Toolbar; Toplevel : in Gdk_Window; Style : in Gtk_Style; With_Entry : in Boolean := False) is The_Entry : Gtk_Entry; Button : Gtk_Tool_Button; Tooltips : Gtk_Tooltips; Separator : Gtk_Separator_Tool_Item; Item : Gtk_Tool_Item; Bg : constant Gdk_Color := Get_Bg (Style, State_Normal); begin Gtk_New (Toolbar); Set_Orientation (Toolbar, Orientation_Horizontal); Set_Style (Toolbar, Toolbar_Both); Gtk_New (Tooltips); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Horizontal"); Set_Tooltip (Button, Tooltips, "Horizontal toolbar layout"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Set_Horizontal'Access), Slot_Object => Toolbar); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Vertical"); Set_Tooltip (Button, Tooltips, "Vertical toolbar layout"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Set_Vertical'Access), Slot_Object => Toolbar); Gtk_New (Separator); Insert (Toolbar, Separator); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Icons"); Set_Tooltip (Button, Tooltips, "Only show toolbar icons"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Set_Icons'Access), Slot_Object => Toolbar); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Text"); Set_Tooltip (Button, Tooltips, "Only show toolbar text"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Set_Text'Access), Slot_Object => Toolbar); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Both"); Set_Tooltip (Button, Tooltips, "Show toolbar icons and text"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Set_Both'Access), Slot_Object => Toolbar); Gtk_New (Separator); Insert (Toolbar, Separator); if With_Entry then Gtk_New (Item); Insert (Toolbar, Item); Gtk_New (The_Entry); Show (The_Entry); Add (Item, The_Entry); Gtk_New (Separator); Insert (Toolbar, Separator); end if; Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Small"); Set_Tooltip (Button, Tooltips, "Use small spaces", "Toolbar/Small"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Set_Small_Space'Access), Slot_Object => Toolbar); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Big"); Set_Tooltip (Button, Tooltips, "Use big spaces", "Toolbar/Big"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Set_Big_Space'Access), Slot_Object => Toolbar); Gtk_New (Separator); Insert (Toolbar, Separator); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Enable"); Set_Tooltip (Button, Tooltips, "Enable tooltips"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Set_Enable'Access), Slot_Object => Toolbar); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Disable"); Set_Tooltip (Button, Tooltips, "Disable tooltips"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Set_Disable'Access), Slot_Object => Toolbar); Gtk_New (Separator); Insert (Toolbar, Separator); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Borders"); Set_Tooltip (Button, Tooltips, "Show borders"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Borders'Access), Slot_Object => Toolbar); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Borderless"); Set_Tooltip (Button, Tooltips, "Hide borders"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Borderless'Access), Slot_Object => Toolbar); Gtk_New (Separator); Insert (Toolbar, Separator); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Empty"); Set_Tooltip (Button, Tooltips, "Empty spaces"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Space_Style_Empty'Access), Slot_Object => Toolbar); Gtk_New (Button, New_Pixmap ("test.xpm", Toplevel, Bg), "Lines"); Set_Tooltip (Button, Tooltips, "Lines in spaces"); Insert (Toolbar, Button); Toolbar_Cb.Object_Connect (Button, "clicked", Toolbar_Cb.To_Marshaller (Space_Style_Line'Access), Slot_Object => Toolbar); end Make_Toolbar; procedure Run (Frame : access Gtk.Frame.Gtk_Frame_Record'Class) is Toolbar : Gtk_Toolbar; begin Set_Label (Frame, "Toolbar"); Make_Toolbar (Toolbar, Get_Window (Frame), Get_Style (Frame), True); Set_Orientation (Toolbar, Orientation_Vertical); Add (Frame, Toolbar); Show_All (Frame); end Run; end Create_Toolbar;

Alphabetical Index