----------------------------------------------------------------------- -- GtkAda - Ada95 binding for Gtk+/Gnome -- -- -- -- Copyright (C) 2006-2011, 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. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- -- -- Actions represent operations that the user can perform, along with some -- information on how it should be presented in the interface. Each action -- provides methods to create icons, menu items and toolbar items representing -- itself. -- -- As well as the callback that is called when the action gets activated, the -- following also gets associated with the action: -- - a name (not translated, for path lookup) -- - a label (translated, for display) -- - an accelerator -- - whether label indicates a stock id -- - a tooltip (optional, translated) -- - a toolbar label (optional, shorter than label) -- -- The action will also have some state information: -- - visible (shown/hidden) -- - sensitive (enabled/disabled) -- -- Apart from regular actions, there are toggle actions, which can be toggled -- between two states and radio actions, of which only one in a group can be -- in the "active" state. Other actions can be implemented as Gtk_Action -- subclasses. -- -- Each action can have one or more proxy menu item, toolbar button or other -- proxy widgets. Proxies mirror the state of the action (text label, tooltip, -- icon, visible, sensitive, etc), and should change when the action's state -- changes. When the proxy is activated, it should activate its action. -- -- 2.16.6 -- Action-based menus with Glib.G_Icon; with Glib.Properties; with Gtk.Accel_Group; with Gtk.Enums; with Gtk.Object; with Gtk.Widget; with System; package Gtk.Action is type Gtk_Action_Record is new Gtk.Object.Gtk_Object_Record with private; type Gtk_Action is access all Gtk_Action_Record'Class; procedure Gtk_New (Action : out Gtk_Action; Name : String; Label : String; Tooltip : String := ""; Stock_Id : String := ""); procedure Initialize (Action : access Gtk_Action_Record'Class; Name : String; Label : String; Tooltip : String := ""; Stock_Id : String := ""); -- Creates a new Gtk_Action object. To add the action to a Gtk_Action_Group -- and set the accelerator for the action, call -- Gtk.Action_Group.Add_Action_With_Accel. -- Name must be a unique name for the action. Label is the label displayed -- in menu items and on buttons. function Convert (C_Object : System.Address) return Gtk_Action; -- Convert a C object to a Gtk_Action. The type of the C object must match, -- of course. function Get_Type return GType; -- Return the internal value associated with a Gtk_Action procedure Activate (Action : access Gtk_Action_Record); -- Emits the "activate" signal on the specified action, if it isn't -- insensitive. This gets called by the proxy widgets when they get -- activated. -- It can also be used to manually activate an action. procedure Connect_Accelerator (Action : access Gtk_Action_Record); procedure Disconnect_Accelerator (Action : access Gtk_Action_Record); -- Installs the accelerator for Action if Action has an accel path and -- group. See Set_Accel_Path and Set_Accel_Group. -- Since multiple proxies may independently trigger the installation -- of the accelerator, the Action counts the number of times this -- function has been called and doesn't remove the accelerator until -- Disconnect_Accelerator has been called as many times. function Create_Icon (Action : access Gtk_Action_Record; Icon_Size : Gtk.Enums.Gtk_Icon_Size) return Gtk.Widget.Gtk_Widget; -- This function is intended for use by action implementations to -- create icons displayed in the proxy widgets. -- Returns a widget that displays the icon for this action. function Get_GIcon (Action : access Gtk_Action_Record) return Glib.G_Icon.G_Icon; procedure Set_GIcon (Action : access Gtk_Action_Record; Icon : Glib.G_Icon.G_Icon); -- Gets/Sets the Action's G_Icon. function Get_Icon_Name (Action : access Gtk_Action_Record) return String; procedure Set_Icon_Name (Action : access Gtk_Action_Record; Icon_Name : String); -- Gets/Sets the Action's icon name. function Get_Is_Important (Action : access Gtk_Action_Record) return Boolean; procedure Set_Is_Important (Action : access Gtk_Action_Record; Is_Important : Boolean); -- Gets/Sets whether or not Action is important. function Get_Label (Action : access Gtk_Action_Record) return String; procedure Set_Label (Action : access Gtk_Action_Record; Label : String); -- Gets/Sets the label text associated with Action. function Get_Short_Label (Action : access Gtk_Action_Record) return String; procedure Set_Short_Label (Action : access Gtk_Action_Record; Short_Label : String); -- Gets/Sets the short label text of Action. function Get_Stock_Id (Action : access Gtk_Action_Record) return String; procedure Set_Stock_Id (Action : access Gtk_Action_Record; Stock_Id : String); -- Gets/Sets the stock id of Action. function Get_Tooltip (Action : access Gtk_Action_Record) return String; procedure Set_Tooltip (Action : access Gtk_Action_Record; Tooltip : String); -- Gets/Sets the tooltip text associated with Action. function Get_Visible_Horizontal (Action : access Gtk_Action_Record) return Boolean; procedure Set_Visible_Horizontal (Action : access Gtk_Action_Record; Visible_Horizontal : Boolean); -- Gets/Sets whether Action is visible when horizontal. function Get_Visible_Vertical (Action : access Gtk_Action_Record) return Boolean; procedure Set_Visible_Vertical (Action : access Gtk_Action_Record; Visible_Vertical : Boolean); -- Gets/Sets whether Action is visible when vertical. function Create_Menu (Action : access Gtk_Action_Record) return Gtk.Widget.Gtk_Widget; -- If Action provides a Gtk_Menu widget as a submenu for the menu -- item or the toolbar item it creates, this function returns an -- instance of that menu. -- Since: 2.12 function Create_Menu_Item (Action : access Gtk_Action_Record) return Gtk.Widget.Gtk_Widget; -- Creates a menu item widget that proxies for the given action. function Create_Tool_Item (Action : access Gtk_Action_Record) return Gtk.Widget.Gtk_Widget; -- Creates a toolbar item widget that proxies for the given action. procedure Set_Accel_Group (Action : access Gtk_Action_Record; Accel_Group : Gtk.Accel_Group.Gtk_Accel_Group := null); -- Sets the Gtk_Accel_Group in which the accelerator for this action -- will be installed. procedure Set_Accel_Path (Action : access Gtk_Action_Record; Accel_Path : String); function Get_Accel_Path (Action : access Gtk_Action_Record) return String; -- Sets the accel path for this action. All proxy widgets associated -- with the action will have this accel path, so that their -- accelerators are consistent. function Get_Name (Action : access Gtk_Action_Record) return String; -- Returns the name of the action. procedure Set_Sensitive (Action : access Gtk_Action_Record; Sensitive : Boolean); function Get_Sensitive (Action : access Gtk_Action_Record) return Boolean; -- Returns whether the action itself is sensitive. Note that this doesn't -- necessarily mean effective sensitivity. See Is_Sensitive for that. function Is_Sensitive (Action : access Gtk_Action_Record) return Boolean; -- Returns whether the action is effectively sensitive. -- Returns True if teh action and its associated action group are both -- sensitive. procedure Set_Visible (Action : access Gtk_Action_Record; Visible : Boolean); function Get_Visible (Action : access Gtk_Action_Record) return Boolean; -- Returns whether the action itself is visible. Note that this doesn't -- necessarily mean effective visibility. See Is_Visible for that. function Is_Visible (Action : access Gtk_Action_Record) return Boolean; -- Returns whether the action is effectively visible. -- Returns True if the action and its associated action group are both -- visible. ------------- -- Proxies -- ------------- function Get_Proxies (Action : access Gtk_Action_Record) return Gtk.Widget.Widget_SList.GSlist; -- Returns the proxy widgets for an action. The returned list must not be -- modified function Gtk_Widget_Get_Action (Widget : access Gtk.Widget.Gtk_Widget_Record) return Gtk_Action; pragma Obsolescent (Gtk_Widget_Get_Action); -- Returns the action that Widget is a proxy for. -- See also Get_Proxies. -- Since: 2.10 procedure Connect_Proxy (Action : access Gtk_Action_Record; Proxy : access Gtk.Widget.Gtk_Widget_Record'Class); pragma Obsolescent (Connect_Proxy); procedure Disconnect_Proxy (Action : access Gtk_Action_Record; Proxy : access Gtk.Widget.Gtk_Widget_Record'Class); pragma Obsolescent (Disconnect_Proxy); -- Connects a widget to an action object as a proxy. Synchronises various -- properties of the action with the widget (such as label text, icon, -- tooltip, etc), and attaches a callback so that the action gets activated -- when the proxy widget does. -- If the widget is already connected to an action, it is disconnected -- first. -- Disconnect_Proxy does not destroy the widget. procedure Block_Activate (Action : access Gtk_Action_Record); procedure Unblock_Activate (Action : access Gtk_Action_Record); -- Disable or reenable activation signals from the action. This is -- needed when updating the state of your proxy widget could result -- in calling Activate. This is a convenience function to avoid -- recursing in those cases (updating toggle state for instance). procedure Block_Activate_From (Action : access Gtk_Action_Record; Proxy : access Gtk.Widget.Gtk_Widget_Record'Class); pragma Obsolescent (Block_Activate_From); procedure Unblock_Activate_From (Action : access Gtk_Action_Record; Proxy : access Gtk.Widget.Gtk_Widget_Record'Class); pragma Obsolescent (Unblock_Activate_From); -- Disables calls to the Activate function by signals on the given proxy -- widget. This is used to break notification loops for things like check -- or radio actions. -- This function is intended for use by action implementations. ---------------- -- Properties -- ---------------- -- -- The following properties are defined for this widget. See -- Glib.Properties for more information on properties. -- -- Name: Action_Group_Property -- Type: Object -- Descr: The Gtk_Action_Group this Gtk_Action is associated with, or NULL -- (for internal use). -- -- Name: GIcon_Property -- Type: Object -- Descr: The GIcon being displayed -- -- Name: Hide_If_Empty_Property -- Type: Boolean -- Descr: When TRUE, empty menu proxies for this action are hidden. -- -- Name: Icon_Name_Property -- Type: String -- Descr: The name of the icon from the icon theme -- -- Name: Is_Important_Property -- Type: Boolean -- Descr: Whether the action is considered important. -- -- Name: Label_Property -- Type: String -- Descr: The label used for menu items and buttons -- -- Name: Name_Property -- Type: String -- Descr: A unique name for the action. -- -- Name: Sensitive_Property -- Type: Boolean -- Descr: Whether the action is enabled. -- -- Name: Short_Label_Property -- Type: String -- Descr: A shorter label that may be used on toolbar buttons. -- -- Name: Stock_Id_Property -- Type: String -- Descr: The stock icon displayed in widgets representing -- -- Name: Tooltip_Property -- Type: String -- Descr: A tooltip for this action. -- -- Name: Visible_Property -- Type: Boolean -- Descr: Whether the action is visible. -- -- Name: Visible_Horizontal_Property -- Type: Boolean -- Descr: Whether the toolbar item is visible when the toolbar -- -- Name: Visible_Overflown_Property -- Type: Boolean -- Descr: When TRUE, toolitem proxies for this action -- -- Name: Visible_Vertical_Property -- Type: Boolean -- Descr: Whether the toolbar item is visible when the toolbar -- -- Action_Group_Property : constant Glib.Properties.Property_Object; GIcon_Property : constant Glib.Properties.Property_Object; Hide_If_Empty_Property : constant Glib.Properties.Property_Boolean; Icon_Name_Property : constant Glib.Properties.Property_String; Is_Important_Property : constant Glib.Properties.Property_Boolean; Label_Property : constant Glib.Properties.Property_String; Name_Property : constant Glib.Properties.Property_String; Sensitive_Property : constant Glib.Properties.Property_Boolean; Short_Label_Property : constant Glib.Properties.Property_String; Stock_Id_Property : constant Glib.Properties.Property_String; Tooltip_Property : constant Glib.Properties.Property_String; Visible_Property : constant Glib.Properties.Property_Boolean; Visible_Horizontal_Property : constant Glib.Properties.Property_Boolean; Visible_Overflown_Property : constant Glib.Properties.Property_Boolean; Visible_Vertical_Property : constant Glib.Properties.Property_Boolean; ------------- -- Signals -- ------------- -- -- The following new signals are defined for this widget: -- -- - "activate" -- procedure Handler (Action : access Gtk_Action_Record'Class); -- The "activate" signal is emitted when the action is activated. -- Signal_Activate : constant Glib.Signal_Name := "activate"; private type Gtk_Action_Record is new Gtk.Object.Gtk_Object_Record with null record; Action_Group_Property : constant Glib.Properties.Property_Object := Glib.Properties.Build ("action-group"); GIcon_Property : constant Glib.Properties.Property_Object := Glib.Properties.Build ("gicon"); Hide_If_Empty_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("hide-if-empty"); Icon_Name_Property : constant Glib.Properties.Property_String := Glib.Properties.Build ("icon-name"); Is_Important_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("is-important"); Label_Property : constant Glib.Properties.Property_String := Glib.Properties.Build ("label"); Name_Property : constant Glib.Properties.Property_String := Glib.Properties.Build ("name"); Sensitive_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("sensitive"); Short_Label_Property : constant Glib.Properties.Property_String := Glib.Properties.Build ("short-label"); Stock_Id_Property : constant Glib.Properties.Property_String := Glib.Properties.Build ("stock-id"); Tooltip_Property : constant Glib.Properties.Property_String := Glib.Properties.Build ("tooltip"); Visible_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("visible"); Visible_Horizontal_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("visible-horizontal"); Visible_Overflown_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("visible-overflown"); Visible_Vertical_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("visible-vertical"); pragma Import (C, Get_Type, "gtk_action_get_type"); end Gtk.Action; -- No binding: gtk_action_get_accel_closure