----------------------------------------------------------------------- -- GtkAda - Ada95 binding for Gtk+/Gnome -- -- -- -- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet -- -- Copyright (C) 2000-2010, 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. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- -- -- 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. -- -- 2.8.17 -- Menus and Toolbars -- create_toolbar.adb -- gtk-toolbar with Glib; with Glib.Properties; with Gtk.Button; with Gtk.Container; with Gtk.Enums; use Gtk.Enums; with Gtk.Tool_Item; with Gtk.Widget; package Gtk.Toolbar is type Gtk_Toolbar_Record is new Gtk.Container.Gtk_Container_Record with private; type Gtk_Toolbar is access all Gtk_Toolbar_Record'Class; 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 ----------------- -- Obsolescent -- ----------------- -- All subprograms below are now obsolescent in gtk+. They might be removed -- from future versions of gtk+ (and therefore GtkAda). -- To find out whether your code uses any of these, we recommend compiling -- with the -gnatwj switch -- procedure Gtk_New (Widget : out Gtk_Toolbar; Orientation : Gtk_Orientation; Style : Gtk_Toolbar_Style); pragma Obsolescent; procedure Initialize (Widget : access Gtk_Toolbar_Record'Class; Orientation : Gtk_Orientation; Style : Gtk_Toolbar_Style); pragma Obsolescent; type Gtk_Toolbar_Child_Type is (Toolbar_Child_Space, Toolbar_Child_Button, Toolbar_Child_Togglebutton, Toolbar_Child_Radiobutton, Toolbar_Child_Widget); -- This type used to be in Gtk.Enums, but is no longer used outside of the -- obsolescent subprograms in this package. We strongly encourage you to -- move your code to the new Insert API. pragma Convention (C, Gtk_Toolbar_Child_Type); function Append_Element (Toolbar : access Gtk_Toolbar_Record; The_Type : Gtk_Toolbar_Child_Type; Widget : Gtk.Widget.Gtk_Widget := null; Text : UTF8_String := ""; Tooltip_Text : UTF8_String := ""; Tooltip_Private_Text : UTF8_String := ""; Icon : Gtk.Widget.Gtk_Widget := null) return Gtk.Widget.Gtk_Widget; pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Append_Element function Prepend_Element (Toolbar : access Gtk_Toolbar_Record; The_Type : Gtk_Toolbar_Child_Type; Widget : access Gtk.Widget.Gtk_Widget_Record'Class; Text : UTF8_String := ""; Tooltip_Text : UTF8_String := ""; Tooltip_Private_Text : UTF8_String := ""; Icon : Gtk.Widget.Gtk_Widget := null) return Gtk.Widget.Gtk_Widget; pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Prepend_Element function Insert_Element (Toolbar : access Gtk_Toolbar_Record; The_Type : Gtk_Toolbar_Child_Type; Widget : access Gtk.Widget.Gtk_Widget_Record'Class; Text : UTF8_String := ""; Tooltip_Text : UTF8_String := ""; Tooltip_Private_Text : UTF8_String := ""; Icon : Gtk.Widget.Gtk_Widget := null; Position : Gint) return Gtk.Widget.Gtk_Widget; pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Insert_Element function Append_Item (Toolbar : access Gtk_Toolbar_Record; Text : UTF8_String := ""; Tooltip_Text : UTF8_String := ""; Tooltip_Private_Text : UTF8_String := ""; Icon : Gtk.Widget.Gtk_Widget := null) return Gtk.Button.Gtk_Button; pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Append_Item function Prepend_Item (Toolbar : access Gtk_Toolbar_Record; Text : UTF8_String := ""; Tooltip_Text : UTF8_String := ""; Tooltip_Private_Text : UTF8_String := ""; Icon : Gtk.Widget.Gtk_Widget := null) return Gtk.Button.Gtk_Button; pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Prepend_Item function Insert_Item (Toolbar : access Gtk_Toolbar_Record; Text : UTF8_String := ""; Tooltip_Text : UTF8_String := ""; Tooltip_Private_Text : UTF8_String := ""; Icon : Gtk.Widget.Gtk_Widget := null; Position : Gint) return Gtk.Button.Gtk_Button; pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Insert_Item function Insert_Stock (Toolbar : access Gtk_Toolbar_Record; Stock_Id : UTF8_String; Tooltip_Text : UTF8_String := ""; Tooltip_Private_Text : UTF8_String := ""; Position : Gint := -1) return Gtk.Button.Gtk_Button; pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Insert_Stock procedure Append_Space (Toolbar : access Gtk_Toolbar_Record); pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Append_Space procedure Prepend_Space (Toolbar : access Gtk_Toolbar_Record); pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Prepend_Space procedure Insert_Space (Toolbar : access Gtk_Toolbar_Record; Position : Gint); pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Insert_Space procedure Remove_Space (Toolbar : access Gtk_Toolbar_Record; Position : Gint); pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Remove_Space procedure Append_Widget (Toolbar : access Gtk_Toolbar_Record; Widget : access Gtk.Widget.Gtk_Widget_Record'Class; Tooltip_Text : UTF8_String := ""; Tooltip_Private_Text : UTF8_String := ""); pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Append_Widget procedure Prepend_Widget (Toolbar : access Gtk_Toolbar_Record; Widget : access Gtk.Widget.Gtk_Widget_Record'Class; Tooltip_Text : UTF8_String := ""; Tooltip_Private_Text : UTF8_String := ""); pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Prepend_Widget procedure Insert_Widget (Toolbar : access Gtk_Toolbar_Record; Widget : access Gtk.Widget.Gtk_Widget_Record'Class; Tooltip_Text : UTF8_String := ""; Tooltip_Private_Text : UTF8_String := ""; Position : Gint); pragma Obsolescent ("Use Gtk.Toolbar.Insert instead"); -- Insert_Widget procedure Set_Icon_Size (Toolbar : access Gtk_Toolbar_Record; Icon_Size : Gtk_Icon_Size); pragma Obsolescent -- Set_Icon_Size ("Applications should respect user preferences (gtk+ themes)"); procedure Unset_Icon_Size (Toolbar : access Gtk_Toolbar_Record); pragma Obsolescent; -- Unset_Icon_Size -- Unsets icon sizes set through Set_Icon_Size, so that user preferences -- set through the gtk+ theme are used -- ---------------- -- Properties -- ---------------- -- The following properties are defined for this widget. See -- Glib.Properties for more information on properties. -- -- Name: Orientation_Property -- Type: Gtk_Orientation -- See: Set_Orientation / Get_Orientation -- -- Name: Toolbar_Style_Property -- Type: Gtk_Toolbar_Style -- See: Set_Style / Get_Style -- -- Name: Show_Arrow_Property -- Type: Boolean -- See: Set_Show_Arrow / Get_Show_Arrow -- -- Name: Tooltips_Property -- Type: Boolean -- See : Set_Tooltips / Get_Tooltips -- Orientation_Property : constant Gtk.Enums.Property_Gtk_Orientation; Toolbar_Style_Property : constant Gtk.Enums.Property_Gtk_Toolbar_Style; Show_Arrow_Property : constant Glib.Properties.Property_Boolean; Tooltips_Property : constant Glib.Properties.Property_Boolean; ---------------------- -- Child Properties -- ---------------------- -- The following properties can be set on children of this widget. See -- in particular Gtk.Containers.Child_Set_Property. -- -- Name: Expand_Property -- Type: Boolean -- Descr: Whether the item should receive extra space when the toolbar -- grows -- -- Name: Homogeneous_Property -- Type: Boolean -- Descr: Whether the item should be the same size as other homogeneous -- items -- Expand_Property : constant Glib.Properties.Property_Boolean; Homogeneous_Property : constant Glib.Properties.Property_Boolean; ---------------------- -- Style Properties -- ---------------------- -- The following properties can be changed through the gtk theme and -- configuration files, and retrieved through Gtk.Widget.Style_Get_Property -- -- Name: Button_Relief_Property -- Type: Enum -- Descr: Type of bevel around toolbar buttons -- -- Name: Internal_Padding_Property -- Type: Int -- Descr: Amount of border space between the toolbar shadow and the buttons -- -- Name: Shadow_Type_Property -- Type: Enum -- Descr: Style of bevel around the toolbar -- -- Name: Space_Size_Property -- Type: Int -- Descr: Size of spacers -- -- Name: Space_Style_Property -- Type: Enum -- Descr: Whether spacers are vertical lines or just blank -- Button_Relief_Property : constant Gtk.Enums.Property_Gtk_Relief_Style; Internal_Padding_Property : constant Glib.Properties.Property_Int; Shadow_Type_Property : constant Gtk.Enums.Property_Gtk_Shadow_Type; Space_Size_Property : constant Glib.Properties.Property_Int; Space_Style_Property : constant Gtk.Enums.Property_Toolbar_Space_Style; Icon_Size_Property : constant Gtk.Enums.Property_Gtk_Icon_Size; ------------- -- Signals -- ------------- -- -- The following new signals are defined for this widget: -- -- - "orientation-changed" -- procedure Handler -- (Toolbar : access Gtk_Toolbar_Record'Class; -- Orientation : Gtk_Orientation); -- Emitted when the orientation of the toolbar changes -- -- - "style-changed" -- procedure Handler -- (Toolbar : access Gtk_Toolbar_Record'Class; -- Style : Gtk_Toolbar_Style); -- Emitted when the style of the toolbar changes -- -- - "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. -- -- - "move_focus" -- This signal can't be used in application code, it is internal to GTK -- -- - "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 -- -- Signal_Orientation_Changed : constant Glib.Signal_Name := "orientation-changed"; Signal_Style_Changed : constant Glib.Signal_Name := "style-changed"; Signal_Popup_Context_Menu : constant Glib.Signal_Name := "popup_context_menu"; Signal_Focus_Home_Or_End : constant Glib.Signal_Name := "focus_home_or_end"; Signal_Move_Focus : constant Glib.Signal_Name := "move_focus"; private type Gtk_Toolbar_Record is new Gtk.Container.Gtk_Container_Record with null record; Orientation_Property : constant Gtk.Enums.Property_Gtk_Orientation := Gtk.Enums.Build ("orientation"); Toolbar_Style_Property : constant Gtk.Enums.Property_Gtk_Toolbar_Style := Gtk.Enums.Build ("toolbar-style"); Show_Arrow_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("show-arrow"); Tooltips_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("tooltips"); Expand_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("expand"); Homogeneous_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("homogeneous"); Button_Relief_Property : constant Gtk.Enums.Property_Gtk_Relief_Style := Gtk.Enums.Build ("button-relief"); Internal_Padding_Property : constant Glib.Properties.Property_Int := Glib.Properties.Build ("internal-padding"); Shadow_Type_Property : constant Gtk.Enums.Property_Gtk_Shadow_Type := Gtk.Enums.Build ("shadow-type"); Icon_Size_Property : constant Gtk.Enums.Property_Gtk_Icon_Size := Gtk.Enums.Build ("icon-size"); Space_Size_Property : constant Glib.Properties.Property_Int := Glib.Properties.Build ("space-size"); Space_Style_Property : constant Gtk.Enums.Property_Toolbar_Space_Style := Gtk.Enums.Build ("space-style"); pragma Import (C, Get_Type, "gtk_toolbar_get_type"); end Gtk.Toolbar;