1. ------------------------------------------------------------------------------ 
  2. --                                                                          -- 
  3. --      Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet       -- 
  4. --                     Copyright (C) 2000-2014, AdaCore                     -- 
  5. --                                                                          -- 
  6. -- This library is free software;  you can redistribute it and/or modify it -- 
  7. -- under terms of the  GNU General Public License  as published by the Free -- 
  8. -- Software  Foundation;  either version 3,  or (at your  option) any later -- 
  9. -- version. This library is distributed in the hope that it will be useful, -- 
  10. -- but WITHOUT ANY WARRANTY;  without even the implied warranty of MERCHAN- -- 
  11. -- TABILITY or FITNESS FOR A PARTICULAR PURPOSE.                            -- 
  12. --                                                                          -- 
  13. -- As a special exception under Section 7 of GPL version 3, you are granted -- 
  14. -- additional permissions described in the GCC Runtime Library Exception,   -- 
  15. -- version 3.1, as published by the Free Software Foundation.               -- 
  16. --                                                                          -- 
  17. -- You should have received a copy of the GNU General Public License and    -- 
  18. -- a copy of the GCC Runtime Library Exception along with this program;     -- 
  19. -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    -- 
  20. -- <http://www.gnu.org/licenses/>.                                          -- 
  21. --                                                                          -- 
  22. ------------------------------------------------------------------------------ 
  23.  
  24. --  <description> 
  25. --  The Gtk.File_Chooser_Button.Gtk_File_Chooser_Button is a widget that lets 
  26. --  the user select a file. It implements the Gtk.File_Chooser.Gtk_File_Chooser 
  27. --  interface. Visually, it is a file name with a button to bring up a 
  28. --  Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog. The user can then use that 
  29. --  dialog to change the file associated with that button. This widget does not 
  30. --  support setting the Gtk.File_Chooser.Gtk_File_Chooser:select-multiple 
  31. --  property to True. 
  32. -- 
  33. --  == Create a button to let the user select a file in /etc == 
  34. -- 
  35. --    { 
  36. --       GtkWidget *button; 
  37. --       button = gtk_file_chooser_button_new (_("Select a file"), 
  38. --          GTK_FILE_CHOOSER_ACTION_OPEN); 
  39. --       gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button), 
  40. --          "/etc"); 
  41. --    } 
  42. -- 
  43. --  The Gtk.File_Chooser_Button.Gtk_File_Chooser_Button supports the 
  44. --  Gtk.File_Chooser.Gtk_File_Chooser_Action<!-- -->s 
  45. --  Gtk.File_Chooser.Action_Open and Gtk.File_Chooser.Action_Select_Folder. 
  46. -- 
  47. --  <important> The Gtk.File_Chooser_Button.Gtk_File_Chooser_Button will 
  48. --  ellipsize the label, and thus will thus request little horizontal space. To 
  49. --  give the button more space, you should call Gtk.Widget.Get_Preferred_Size, 
  50. --  Gtk.File_Chooser_Button.Set_Width_Chars, or pack the button in such a way 
  51. --  that other interface elements give space to the widget. </important> 
  52. --  </description> 
  53. --  <group>Buttons and Toggles</group> 
  54. pragma Ada_2005; 
  55.  
  56. pragma Warnings (Off, "*is already use-visible*"); 
  57. with Glib;             use Glib; 
  58. with Glib.Object;      use Glib.Object; 
  59. with Glib.Properties;  use Glib.Properties; 
  60. with Glib.Types;       use Glib.Types; 
  61. with Gtk.Box;          use Gtk.Box; 
  62. with Gtk.Buildable;    use Gtk.Buildable; 
  63. with Gtk.Enums;        use Gtk.Enums; 
  64. with Gtk.File_Chooser; use Gtk.File_Chooser; 
  65. with Gtk.File_Filter;  use Gtk.File_Filter; 
  66. with Gtk.Orientable;   use Gtk.Orientable; 
  67. with Gtk.Widget;       use Gtk.Widget; 
  68.  
  69. package Gtk.File_Chooser_Button is 
  70.  
  71.    type Gtk_File_Chooser_Button_Record is new Gtk_Box_Record with null record; 
  72.    type Gtk_File_Chooser_Button is access all Gtk_File_Chooser_Button_Record'Class; 
  73.  
  74.    ------------------ 
  75.    -- Constructors -- 
  76.    ------------------ 
  77.  
  78.    procedure Gtk_New 
  79.       (Button : out Gtk_File_Chooser_Button; 
  80.        Title  : UTF8_String; 
  81.        Action : Gtk.File_Chooser.Gtk_File_Chooser_Action); 
  82.    procedure Initialize 
  83.       (Button : not null access Gtk_File_Chooser_Button_Record'Class; 
  84.        Title  : UTF8_String; 
  85.        Action : Gtk.File_Chooser.Gtk_File_Chooser_Action); 
  86.    --  Creates a new file-selecting button widget. 
  87.    --  Since: gtk+ 2.6 
  88.    --  "title": the title of the browse dialog. 
  89.    --  "action": the open mode for the widget. 
  90.  
  91.    function Gtk_File_Chooser_Button_New 
  92.       (Title  : UTF8_String; 
  93.        Action : Gtk.File_Chooser.Gtk_File_Chooser_Action) 
  94.        return Gtk_File_Chooser_Button; 
  95.    --  Creates a new file-selecting button widget. 
  96.    --  Since: gtk+ 2.6 
  97.    --  "title": the title of the browse dialog. 
  98.    --  "action": the open mode for the widget. 
  99.  
  100.    procedure Gtk_New_With_Dialog 
  101.       (Button : out Gtk_File_Chooser_Button; 
  102.        Dialog : not null access Gtk.Widget.Gtk_Widget_Record'Class); 
  103.    procedure Initialize_With_Dialog 
  104.       (Button : not null access Gtk_File_Chooser_Button_Record'Class; 
  105.        Dialog : not null access Gtk.Widget.Gtk_Widget_Record'Class); 
  106.    --  Creates a Gtk.File_Chooser_Button.Gtk_File_Chooser_Button widget which 
  107.    --  uses Dialog as its file-picking window. 
  108.    --  Note that Dialog must be a Gtk.Dialog.Gtk_Dialog (or subclass) which 
  109.    --  implements the Gtk.File_Chooser.Gtk_File_Chooser interface and must not 
  110.    --  have GTK_DIALOG_DESTROY_WITH_PARENT set. 
  111.    --  Also note that the dialog needs to have its confirmative button added 
  112.    --  with response GTK_RESPONSE_ACCEPT or GTK_RESPONSE_OK in order for the 
  113.    --  button to take over the file selected in the dialog. 
  114.    --  Since: gtk+ 2.6 
  115.    --  "dialog": the widget to use as dialog 
  116.  
  117.    function Gtk_File_Chooser_Button_New_With_Dialog 
  118.       (Dialog : not null access Gtk.Widget.Gtk_Widget_Record'Class) 
  119.        return Gtk_File_Chooser_Button; 
  120.    --  Creates a Gtk.File_Chooser_Button.Gtk_File_Chooser_Button widget which 
  121.    --  uses Dialog as its file-picking window. 
  122.    --  Note that Dialog must be a Gtk.Dialog.Gtk_Dialog (or subclass) which 
  123.    --  implements the Gtk.File_Chooser.Gtk_File_Chooser interface and must not 
  124.    --  have GTK_DIALOG_DESTROY_WITH_PARENT set. 
  125.    --  Also note that the dialog needs to have its confirmative button added 
  126.    --  with response GTK_RESPONSE_ACCEPT or GTK_RESPONSE_OK in order for the 
  127.    --  button to take over the file selected in the dialog. 
  128.    --  Since: gtk+ 2.6 
  129.    --  "dialog": the widget to use as dialog 
  130.  
  131.    function Get_Type return Glib.GType; 
  132.    pragma Import (C, Get_Type, "gtk_file_chooser_button_get_type"); 
  133.  
  134.    ------------- 
  135.    -- Methods -- 
  136.    ------------- 
  137.  
  138.    function Get_Focus_On_Click 
  139.       (Button : not null access Gtk_File_Chooser_Button_Record) 
  140.        return Boolean; 
  141.    --  Returns whether the button grabs focus when it is clicked with the 
  142.    --  mouse. See Gtk.File_Chooser_Button.Set_Focus_On_Click. 
  143.    --  Since: gtk+ 2.10 
  144.  
  145.    procedure Set_Focus_On_Click 
  146.       (Button         : not null access Gtk_File_Chooser_Button_Record; 
  147.        Focus_On_Click : Boolean); 
  148.    --  Sets whether the button will grab focus when it is clicked with the 
  149.    --  mouse. Making mouse clicks not grab focus is useful in places like 
  150.    --  toolbars where you don't want the keyboard focus removed from the main 
  151.    --  area of the application. 
  152.    --  Since: gtk+ 2.10 
  153.    --  "focus_on_click": whether the button grabs focus when clicked with the 
  154.    --  mouse 
  155.  
  156.    function Get_Title 
  157.       (Button : not null access Gtk_File_Chooser_Button_Record) 
  158.        return UTF8_String; 
  159.    --  Retrieves the title of the browse dialog used by Button. The returned 
  160.    --  value should not be modified or freed. 
  161.    --  Since: gtk+ 2.6 
  162.  
  163.    procedure Set_Title 
  164.       (Button : not null access Gtk_File_Chooser_Button_Record; 
  165.        Title  : UTF8_String); 
  166.    --  Modifies the Title of the browse dialog used by Button. 
  167.    --  Since: gtk+ 2.6 
  168.    --  "title": the new browse dialog title. 
  169.  
  170.    function Get_Width_Chars 
  171.       (Button : not null access Gtk_File_Chooser_Button_Record) return Gint; 
  172.    --  Retrieves the width in characters of the Button widget's entry and/or 
  173.    --  label. 
  174.    --  Since: gtk+ 2.6 
  175.  
  176.    procedure Set_Width_Chars 
  177.       (Button  : not null access Gtk_File_Chooser_Button_Record; 
  178.        N_Chars : Gint); 
  179.    --  Sets the width (in characters) that Button will use to N_Chars. 
  180.    --  Since: gtk+ 2.6 
  181.    --  "n_chars": the new width, in characters. 
  182.  
  183.    --------------------------------------------- 
  184.    -- Inherited subprograms (from interfaces) -- 
  185.    --------------------------------------------- 
  186.    --  Methods inherited from the Buildable interface are not duplicated here 
  187.    --  since they are meant to be used by tools, mostly. If you need to call 
  188.    --  them, use an explicit cast through the "-" operator below. 
  189.  
  190.    procedure Add_Filter 
  191.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  192.        Filter  : not null access Gtk.File_Filter.Gtk_File_Filter_Record'Class); 
  193.  
  194.    function Add_Shortcut_Folder 
  195.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  196.        Folder  : UTF8_String) return Boolean; 
  197.  
  198.    function Add_Shortcut_Folder_Uri 
  199.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  200.        URI     : UTF8_String) return Boolean; 
  201.  
  202.    function Get_Action 
  203.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  204.        return Gtk.File_Chooser.Gtk_File_Chooser_Action; 
  205.  
  206.    procedure Set_Action 
  207.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  208.        Action  : Gtk.File_Chooser.Gtk_File_Chooser_Action); 
  209.  
  210.    function Get_Create_Folders 
  211.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  212.        return Boolean; 
  213.  
  214.    procedure Set_Create_Folders 
  215.       (Chooser        : not null access Gtk_File_Chooser_Button_Record; 
  216.        Create_Folders : Boolean); 
  217.  
  218.    function Get_Current_Folder 
  219.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  220.        return UTF8_String; 
  221.  
  222.    function Set_Current_Folder 
  223.       (Chooser  : not null access Gtk_File_Chooser_Button_Record; 
  224.        Filename : UTF8_String) return Boolean; 
  225.  
  226.    function Get_Current_Folder_Uri 
  227.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  228.        return UTF8_String; 
  229.  
  230.    function Set_Current_Folder_Uri 
  231.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  232.        URI     : UTF8_String) return Boolean; 
  233.  
  234.    function Get_Do_Overwrite_Confirmation 
  235.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  236.        return Boolean; 
  237.  
  238.    procedure Set_Do_Overwrite_Confirmation 
  239.       (Chooser                   : not null access Gtk_File_Chooser_Button_Record; 
  240.        Do_Overwrite_Confirmation : Boolean); 
  241.  
  242.    function Get_Extra_Widget 
  243.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  244.        return Gtk.Widget.Gtk_Widget; 
  245.  
  246.    procedure Set_Extra_Widget 
  247.       (Chooser      : not null access Gtk_File_Chooser_Button_Record; 
  248.        Extra_Widget : not null access Gtk.Widget.Gtk_Widget_Record'Class); 
  249.  
  250.    function Get_Filename 
  251.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  252.        return UTF8_String; 
  253.  
  254.    function Set_Filename 
  255.       (Chooser  : not null access Gtk_File_Chooser_Button_Record; 
  256.        Filename : UTF8_String) return Boolean; 
  257.  
  258.    function Get_Filenames 
  259.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  260.        return Gtk.Enums.String_SList.GSlist; 
  261.  
  262.    function Get_Filter 
  263.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  264.        return Gtk.File_Filter.Gtk_File_Filter; 
  265.  
  266.    procedure Set_Filter 
  267.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  268.        Filter  : not null access Gtk.File_Filter.Gtk_File_Filter_Record'Class); 
  269.  
  270.    function Get_Local_Only 
  271.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  272.        return Boolean; 
  273.  
  274.    procedure Set_Local_Only 
  275.       (Chooser    : not null access Gtk_File_Chooser_Button_Record; 
  276.        Local_Only : Boolean); 
  277.  
  278.    function Get_Preview_Filename 
  279.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  280.        return UTF8_String; 
  281.  
  282.    function Get_Preview_Uri 
  283.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  284.        return UTF8_String; 
  285.  
  286.    function Get_Preview_Widget 
  287.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  288.        return Gtk.Widget.Gtk_Widget; 
  289.  
  290.    procedure Set_Preview_Widget 
  291.       (Chooser        : not null access Gtk_File_Chooser_Button_Record; 
  292.        Preview_Widget : not null access Gtk.Widget.Gtk_Widget_Record'Class); 
  293.  
  294.    function Get_Preview_Widget_Active 
  295.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  296.        return Boolean; 
  297.  
  298.    procedure Set_Preview_Widget_Active 
  299.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  300.        Active  : Boolean); 
  301.  
  302.    function Get_Select_Multiple 
  303.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  304.        return Boolean; 
  305.  
  306.    procedure Set_Select_Multiple 
  307.       (Chooser         : not null access Gtk_File_Chooser_Button_Record; 
  308.        Select_Multiple : Boolean); 
  309.  
  310.    function Get_Show_Hidden 
  311.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  312.        return Boolean; 
  313.  
  314.    procedure Set_Show_Hidden 
  315.       (Chooser     : not null access Gtk_File_Chooser_Button_Record; 
  316.        Show_Hidden : Boolean); 
  317.  
  318.    function Get_Uri 
  319.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  320.        return UTF8_String; 
  321.  
  322.    function Set_Uri 
  323.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  324.        URI     : UTF8_String) return Boolean; 
  325.  
  326.    function Get_Uris 
  327.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  328.        return Gtk.Enums.String_SList.GSlist; 
  329.  
  330.    function Get_Use_Preview_Label 
  331.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  332.        return Boolean; 
  333.  
  334.    procedure Set_Use_Preview_Label 
  335.       (Chooser   : not null access Gtk_File_Chooser_Button_Record; 
  336.        Use_Label : Boolean); 
  337.  
  338.    function List_Filters 
  339.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  340.        return Glib.Object.Object_List.GSlist; 
  341.  
  342.    function List_Shortcut_Folder_Uris 
  343.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  344.        return Gtk.Enums.String_SList.GSlist; 
  345.  
  346.    function List_Shortcut_Folders 
  347.       (Chooser : not null access Gtk_File_Chooser_Button_Record) 
  348.        return Gtk.Enums.String_SList.GSlist; 
  349.  
  350.    procedure Remove_Filter 
  351.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  352.        Filter  : not null access Gtk.File_Filter.Gtk_File_Filter_Record'Class); 
  353.  
  354.    function Remove_Shortcut_Folder 
  355.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  356.        Folder  : UTF8_String) return Boolean; 
  357.  
  358.    function Remove_Shortcut_Folder_Uri 
  359.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  360.        URI     : UTF8_String) return Boolean; 
  361.  
  362.    procedure Select_All 
  363.       (Chooser : not null access Gtk_File_Chooser_Button_Record); 
  364.  
  365.    function Select_Filename 
  366.       (Chooser  : not null access Gtk_File_Chooser_Button_Record; 
  367.        Filename : UTF8_String) return Boolean; 
  368.  
  369.    function Select_Uri 
  370.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  371.        URI     : UTF8_String) return Boolean; 
  372.  
  373.    procedure Set_Current_Name 
  374.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  375.        Name    : UTF8_String); 
  376.  
  377.    procedure Unselect_All 
  378.       (Chooser : not null access Gtk_File_Chooser_Button_Record); 
  379.  
  380.    procedure Unselect_Filename 
  381.       (Chooser  : not null access Gtk_File_Chooser_Button_Record; 
  382.        Filename : UTF8_String); 
  383.  
  384.    procedure Unselect_Uri 
  385.       (Chooser : not null access Gtk_File_Chooser_Button_Record; 
  386.        URI     : UTF8_String); 
  387.  
  388.    function Get_Orientation 
  389.       (Self : not null access Gtk_File_Chooser_Button_Record) 
  390.        return Gtk.Enums.Gtk_Orientation; 
  391.  
  392.    procedure Set_Orientation 
  393.       (Self        : not null access Gtk_File_Chooser_Button_Record; 
  394.        Orientation : Gtk.Enums.Gtk_Orientation); 
  395.  
  396.    ---------------- 
  397.    -- Properties -- 
  398.    ---------------- 
  399.    --  The following properties are defined for this widget. See 
  400.    --  Glib.Properties for more information on properties) 
  401.  
  402.    Dialog_Property : constant Glib.Properties.Property_Interface; 
  403.    --  Type: Gtk.File_Chooser.Gtk_File_Chooser 
  404.    --  Flags: write 
  405.    --  Instance of the Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog 
  406.    --  associated with the button. 
  407.  
  408.    Focus_On_Click_Property : constant Glib.Properties.Property_Boolean; 
  409.    --  Whether the Gtk.File_Chooser_Button.Gtk_File_Chooser_Button button 
  410.    --  grabs focus when it is clicked with the mouse. 
  411.  
  412.    Title_Property : constant Glib.Properties.Property_String; 
  413.    --  Title to put on the Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog 
  414.    --  associated with the button. 
  415.  
  416.    Width_Chars_Property : constant Glib.Properties.Property_Int; 
  417.    --  The width of the entry and label inside the button, in characters. 
  418.  
  419.    ------------- 
  420.    -- Signals -- 
  421.    ------------- 
  422.  
  423.    type Cb_Gtk_File_Chooser_Button_Void is not null access procedure 
  424.      (Self : access Gtk_File_Chooser_Button_Record'Class); 
  425.  
  426.    type Cb_GObject_Void is not null access procedure 
  427.      (Self : access Glib.Object.GObject_Record'Class); 
  428.  
  429.    Signal_File_Set : constant Glib.Signal_Name := "file-set"; 
  430.    procedure On_File_Set 
  431.       (Self  : not null access Gtk_File_Chooser_Button_Record; 
  432.        Call  : Cb_Gtk_File_Chooser_Button_Void; 
  433.        After : Boolean := False); 
  434.    procedure On_File_Set 
  435.       (Self  : not null access Gtk_File_Chooser_Button_Record; 
  436.        Call  : Cb_GObject_Void; 
  437.        Slot  : not null access Glib.Object.GObject_Record'Class; 
  438.        After : Boolean := False); 
  439.    --  The ::file-set signal is emitted when the user selects a file. 
  440.    -- 
  441.    --  Note that this signal is only emitted when the *user* changes the file. 
  442.  
  443.    ---------------- 
  444.    -- Interfaces -- 
  445.    ---------------- 
  446.    --  This class implements several interfaces. See Glib.Types 
  447.    -- 
  448.    --  - "Buildable" 
  449.    -- 
  450.    --  - "FileChooser" 
  451.    -- 
  452.    --  - "Orientable" 
  453.  
  454.    package Implements_Gtk_Buildable is new Glib.Types.Implements 
  455.      (Gtk.Buildable.Gtk_Buildable, Gtk_File_Chooser_Button_Record, Gtk_File_Chooser_Button); 
  456.    function "+" 
  457.      (Widget : access Gtk_File_Chooser_Button_Record'Class) 
  458.    return Gtk.Buildable.Gtk_Buildable 
  459.    renames Implements_Gtk_Buildable.To_Interface; 
  460.    function "-" 
  461.      (Interf : Gtk.Buildable.Gtk_Buildable) 
  462.    return Gtk_File_Chooser_Button 
  463.    renames Implements_Gtk_Buildable.To_Object; 
  464.  
  465.    package Implements_Gtk_File_Chooser is new Glib.Types.Implements 
  466.      (Gtk.File_Chooser.Gtk_File_Chooser, Gtk_File_Chooser_Button_Record, Gtk_File_Chooser_Button); 
  467.    function "+" 
  468.      (Widget : access Gtk_File_Chooser_Button_Record'Class) 
  469.    return Gtk.File_Chooser.Gtk_File_Chooser 
  470.    renames Implements_Gtk_File_Chooser.To_Interface; 
  471.    function "-" 
  472.      (Interf : Gtk.File_Chooser.Gtk_File_Chooser) 
  473.    return Gtk_File_Chooser_Button 
  474.    renames Implements_Gtk_File_Chooser.To_Object; 
  475.  
  476.    package Implements_Gtk_Orientable is new Glib.Types.Implements 
  477.      (Gtk.Orientable.Gtk_Orientable, Gtk_File_Chooser_Button_Record, Gtk_File_Chooser_Button); 
  478.    function "+" 
  479.      (Widget : access Gtk_File_Chooser_Button_Record'Class) 
  480.    return Gtk.Orientable.Gtk_Orientable 
  481.    renames Implements_Gtk_Orientable.To_Interface; 
  482.    function "-" 
  483.      (Interf : Gtk.Orientable.Gtk_Orientable) 
  484.    return Gtk_File_Chooser_Button 
  485.    renames Implements_Gtk_Orientable.To_Object; 
  486.  
  487. private 
  488.    Width_Chars_Property : constant Glib.Properties.Property_Int := 
  489.      Glib.Properties.Build ("width-chars"); 
  490.    Title_Property : constant Glib.Properties.Property_String := 
  491.      Glib.Properties.Build ("title"); 
  492.    Focus_On_Click_Property : constant Glib.Properties.Property_Boolean := 
  493.      Glib.Properties.Build ("focus-on-click"); 
  494.    Dialog_Property : constant Glib.Properties.Property_Interface := 
  495.      Glib.Properties.Build ("dialog"); 
  496. end Gtk.File_Chooser_Button;