-----------------------------------------------------------------------
-- 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;