----------------------------------------------------------------------- -- GtkAda - Ada95 binding for Gtk+/Gnome -- -- -- -- Copyright (C) 2006-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. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- -- -- The Gtk_File_Chooser_Button is a widget that lets the user select a file. -- It implements the Gtk_File_Chooser interface. Visually, it is a file name -- with a button to bring up a Gtk_File_Chooser_Dialog. The user can then use -- that dialog to change the file associated with that button. This widget -- does not support setting the "select-multiple" property to TRUE. -- -- The Gtk_File_Chooser_Button supports the File_Chooser_Actions -- Action_Open and Action_Select_Folder. -- -- The Gtk_File_Chooser_Button will ellipsize the label, and thus will request -- little horizontal space. To give the button more space, you should call -- Gtk.Widget.Size_Request, Set_Width_Chars, or pack the button in such a way -- that other interface elements give space to the widget. -- -- 2.16.6 -- Selectors -- file-button.png -- create_file_chooser.adb with Glib.Properties; with Glib.Types; with Gtk.Box; with Gtk.File_Chooser; with Gtk.File_Chooser_Dialog; use Gtk.File_Chooser_Dialog; package Gtk.File_Chooser_Button is type Gtk_File_Chooser_Button_Record is new Gtk.Box.Gtk_Hbox_Record with null record; type Gtk_File_Chooser_Button is access all Gtk_File_Chooser_Button_Record'Class; function Get_Type return GType; -- Return the internal value associated with a Gtk_File_Chooser_Button procedure Gtk_New (Button : out Gtk_File_Chooser_Button; Title : String; Action : Gtk.File_Chooser.File_Chooser_Action); procedure Initialize (Button : access Gtk_File_Chooser_Button_Record'Class; Title : String; Action : Gtk.File_Chooser.File_Chooser_Action); -- Creates a new file-selecting button widget. -- Title is the title of the browse dialog procedure Gtk_New_With_Backend (Button : out Gtk_File_Chooser_Button; Title : String; Action : Gtk.File_Chooser.File_Chooser_Action; Backend : String); pragma Obsolescent; -- Gtk_New_With_Backend procedure Initialize_With_Backend (Button : access Gtk_File_Chooser_Button_Record'Class; Title : String; Action : Gtk.File_Chooser.File_Chooser_Action; Backend : String); -- Creates a new file-selecting button widget using Backend. See also -- Gtk.File_System. procedure Gtk_New_With_Dialog (Button : out Gtk_File_Chooser_Button; Dialog : access Gtk_File_Chooser_Dialog_Record'Class); procedure Initialize_With_Dialog (Button : access Gtk_File_Chooser_Button_Record'Class; Dialog : access Gtk_File_Chooser_Dialog_Record'Class); -- Creates a button widget which uses Dialog as it's file-picking window. -- Note that dialog must not have Destroy_With_Parent set. procedure Set_Title (Button : access Gtk_File_Chooser_Button_Record; Title : String); function Get_Title (Button : access Gtk_File_Chooser_Button_Record) return String; -- Modifies the Title of the browse dialog used by Button. procedure Set_Width_Chars (Button : access Gtk_File_Chooser_Button_Record; N_Chars : Gint); function Get_Width_Chars (Button : access Gtk_File_Chooser_Button_Record) return Gint; -- Sets the width (in characters) that Button will use. function Get_Focus_On_Click (Button : access Gtk_File_Chooser_Button_Record) return Boolean; procedure Set_Focus_On_Click (Button : access Gtk_File_Chooser_Button_Record; Focus_On_Click : Boolean); -- Controls whether the button will grab focus when it is clicked with -- the mouse. Making mouse clicks not grab focus is useful in places -- like toolbars where you don't want the keyboard focus removed from -- the main area of the application. ---------------- -- Interfaces -- ---------------- -- This class implements several interfaces. See Glib.Types -- -- - "Gtk_File_Chooser" package Implements_File_Chooser is new Glib.Types.Implements (Gtk.File_Chooser.Gtk_File_Chooser, Gtk_File_Chooser_Button_Record, Gtk_File_Chooser_Button); function "+" (Button : access Gtk_File_Chooser_Button_Record'Class) return Gtk.File_Chooser.Gtk_File_Chooser renames Implements_File_Chooser.To_Interface; function "-" (File : Gtk.File_Chooser.Gtk_File_Chooser) return Gtk_File_Chooser_Button renames Implements_File_Chooser.To_Object; -- Converts to and from the Gtk_File_Chooser interface ---------------- -- Properties -- ---------------- -- -- Name: Dialog_Property -- Type: Object -- Descr: The file chooser dialog to use. -- -- Name: Focus_On_Click_Property -- Type: Boolean -- Descr: Whether the button grabs focus when it is clicked with the mouse -- -- Name: Title_Property -- Type: String -- Descr: The title of the file chooser dialog. -- -- Name: Width_Chars_Property -- Type: Int -- Descr: The desired width of the button widget, in characters. -- -- Dialog_Property : constant Glib.Properties.Property_Object; Focus_On_Click_Property : constant Glib.Properties.Property_Boolean; Title_Property : constant Glib.Properties.Property_String; Width_Chars_Property : constant Glib.Properties.Property_Int; private pragma Import (C, Get_Type, "gtk_file_chooser_button_get_type"); Dialog_Property : constant Glib.Properties.Property_Object := Glib.Properties.Build ("dialog"); Focus_On_Click_Property : constant Glib.Properties.Property_Boolean := Glib.Properties.Build ("focus-on-click"); Title_Property : constant Glib.Properties.Property_String := Glib.Properties.Build ("title"); Width_Chars_Property : constant Glib.Properties.Property_Int := Glib.Properties.Build ("width-chars"); end Gtk.File_Chooser_Button;