package Implements_Gtk_Buildable is new Glib.Types.Implements (Gtk.Buildable.Gtk_Buildable, Gtk_File_Chooser_Dialog_Record, Gtk_File_Chooser_Dialog);
package Implements_Gtk_File_Chooser is new Glib.Types.Implements (Gtk.File_Chooser.Gtk_File_Chooser, Gtk_File_Chooser_Dialog_Record, Gtk_File_Chooser_Dialog);
type Gtk_File_Chooser_Dialog_Record is new Gtk_Dialog_Record with null record;
type Gtk_File_Chooser_Dialog is access all Gtk_File_Chooser_Dialog_Record'Class;
procedure Gtk_New
( | Dialog | : out Gtk_File_Chooser_Dialog; |
Title | : UTF8_String := ""; | |
Parent | : access Gtk.Window.Gtk_Window_Record'Class; | |
Action | : Gtk.File_Chooser.Gtk_File_Chooser_Action); |
procedure Initialize
( | Dialog | : not null access Gtk_File_Chooser_Dialog_Record'Class; |
Title | : UTF8_String := ""; | |
Parent | : access Gtk.Window.Gtk_Window_Record'Class; | |
Action | : Gtk.File_Chooser.Gtk_File_Chooser_Action); |
function Gtk_File_Chooser_Dialog_New
( | Title | : UTF8_String := ""; |
Parent | : access Gtk.Window.Gtk_Window_Record'Class; | |
Action | : Gtk.File_Chooser.Gtk_File_Chooser_Action) return Gtk_File_Chooser_Dialog; |
function Get_Type return Glib.GType;
procedure Add_Filter
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Filter | : not null access Gtk.File_Filter.Gtk_File_Filter_Record'Class); |
function Add_Shortcut_Folder
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Folder | : UTF8_String) return Boolean; |
function Add_Shortcut_Folder_Uri
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
URI | : UTF8_String) return Boolean; |
function Get_Action
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Gtk.File_Chooser.Gtk_File_Chooser_Action; |
procedure Set_Action
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Action | : Gtk.File_Chooser.Gtk_File_Chooser_Action); |
function Get_Create_Folders
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Boolean; |
procedure Set_Create_Folders
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Create_Folders | : Boolean); |
function Get_Current_Folder
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return UTF8_String; |
function Set_Current_Folder
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Filename | : UTF8_String) return Boolean; |
function Get_Current_Folder_Uri
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return UTF8_String; |
function Set_Current_Folder_Uri
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
URI | : UTF8_String) return Boolean; |
function Get_Do_Overwrite_Confirmation
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Boolean; |
procedure Set_Do_Overwrite_Confirmation
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Do_Overwrite_Confirmation | : Boolean); |
function Get_Extra_Widget
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Gtk.Widget.Gtk_Widget; |
procedure Set_Extra_Widget
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Extra_Widget | : not null access Gtk.Widget.Gtk_Widget_Record'Class); |
function Get_Filename
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return UTF8_String; |
function Set_Filename
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Filename | : UTF8_String) return Boolean; |
function Get_Filenames
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Gtk.Enums.String_SList.GSlist; |
function Get_Filter
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Gtk.File_Filter.Gtk_File_Filter; |
procedure Set_Filter
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Filter | : not null access Gtk.File_Filter.Gtk_File_Filter_Record'Class); |
function Get_Local_Only
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Boolean; |
procedure Set_Local_Only
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Local_Only | : Boolean); |
function Get_Preview_Filename
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return UTF8_String; |
function Get_Preview_Uri
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return UTF8_String; |
function Get_Preview_Widget
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Gtk.Widget.Gtk_Widget; |
procedure Set_Preview_Widget
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Preview_Widget | : not null access Gtk.Widget.Gtk_Widget_Record'Class); |
function Get_Preview_Widget_Active
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Boolean; |
procedure Set_Preview_Widget_Active
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Active | : Boolean); |
function Get_Select_Multiple
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Boolean; |
procedure Set_Select_Multiple
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Select_Multiple | : Boolean); |
function Get_Show_Hidden
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Boolean; |
procedure Set_Show_Hidden
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Show_Hidden | : Boolean); |
function Get_Uri
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return UTF8_String; |
function Set_Uri
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
URI | : UTF8_String) return Boolean; |
function Get_Uris
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Gtk.Enums.String_SList.GSlist; |
function Get_Use_Preview_Label
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Boolean; |
procedure Set_Use_Preview_Label
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Use_Label | : Boolean); |
function List_Filters
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Glib.Object.Object_List.GSlist; |
function List_Shortcut_Folder_Uris
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Gtk.Enums.String_SList.GSlist; |
function List_Shortcut_Folders
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record) return Gtk.Enums.String_SList.GSlist; |
procedure Remove_Filter
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Filter | : not null access Gtk.File_Filter.Gtk_File_Filter_Record'Class); |
function Remove_Shortcut_Folder
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Folder | : UTF8_String) return Boolean; |
function Remove_Shortcut_Folder_Uri
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
URI | : UTF8_String) return Boolean; |
procedure Select_All
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record); |
function Select_Filename
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Filename | : UTF8_String) return Boolean; |
function Select_Uri
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
URI | : UTF8_String) return Boolean; |
procedure Set_Current_Name
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Name | : UTF8_String); |
procedure Unselect_All
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record); |
procedure Unselect_Filename
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
Filename | : UTF8_String); |
procedure Unselect_Uri
( | Chooser | : not null access Gtk_File_Chooser_Dialog_Record; |
URI | : UTF8_String); |
function "+"
( | Widget | : access Gtk_File_Chooser_Dialog_Record'Class) return Gtk.Buildable.Gtk_Buildable renames Implements_Gtk_Buildable.To_Interface; |
function "-"
( | Interf | : Gtk.Buildable.Gtk_Buildable) return Gtk_File_Chooser_Dialog renames Implements_Gtk_Buildable.To_Object; |
function "+"
( | Widget | : access Gtk_File_Chooser_Dialog_Record'Class) return Gtk.File_Chooser.Gtk_File_Chooser renames Implements_Gtk_File_Chooser.To_Interface; |
function "-"
( | Interf | : Gtk.File_Chooser.Gtk_File_Chooser) return Gtk_File_Chooser_Dialog renames Implements_Gtk_File_Chooser.To_Object; |
Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog is a dialog box suitable for use with "File/Open" or "File/Save as" commands. This widget works by putting a Gtk.File_Chooser_Widget.Gtk_File_Chooser_Widget inside a Gtk.Dialog.Gtk_Dialog. It exposes the Gtk.File_Chooser.Gtk_File_Chooser interface, so you can use all of the Gtk.File_Chooser.Gtk_File_Chooser functions on the file chooser dialog as well as those for Gtk.Dialog.Gtk_Dialog.
Note that Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog does not have any methods of its own. Instead, you should use the functions that work on a Gtk.File_Chooser.Gtk_File_Chooser.
== Typical usage == In the simplest of cases, you can the following code to use Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog to select a file for opening: GtkWidget *dialog; dialog = gtk_file_chooser_dialog_new ("Open File", parent_window, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); open_file (filename); g_free (filename); } gtk_widget_destroy (dialog); To use a dialog for saving, you can use this: GtkWidget *dialog; dialog = gtk_file_chooser_dialog_new ("Save File", parent_window, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE); if (user_edited_a_new_document) gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Untitled document"); else gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), filename_for_existing_document); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); save_to_file (filename); g_free (filename); } gtk_widget_destroy (dialog); <section id="gtkfilechooserdialog-setting-up"> == Setting up a file chooser dialog == There are various cases in which you may need to use a Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog: * To select a file for opening, as for a <guimenuitem>File/Open</guimenuitem> command. Use GTK_FILE_CHOOSER_ACTION_OPEN. * To save a file for the first time, as for a <guimenuitem>File/Save</guimenuitem> command. Use GTK_FILE_CHOOSER_ACTION_SAVE, and suggest a name such as "Untitled" with Gtk.File_Chooser.Set_Current_Name. * To save a file under a different name, as for a <guimenuitem>File/Save As</guimenuitem> command. Use GTK_FILE_CHOOSER_ACTION_SAVE, and set the existing filename with Gtk.File_Chooser.Set_Filename. * To choose a folder instead of a file. Use GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
Note: Old versions of the file chooser's documentation suggested using Gtk.File_Chooser.Set_Current_Folder in various situations, with the intention of letting the application suggest a reasonable default folder.
This is no longer considered to be a good policy, as now the file chooser is able to make good suggestions on its own. In general, you should only cause the file chooser to show a specific folder when it is appropriate to use Gtk.File_Chooser.Set_Filename, i.e. when you are doing a <guimenuitem>File/Save As</guimenuitem> command *and* you already have a file saved somewhere. </section> <section id="gtkfilechooserdialog-response-codes"> == Response Codes == Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog inherits from Gtk.Dialog.Gtk_Dialog, so buttons that go in its action area have response codes such as GTK_RESPONSE_ACCEPT and GTK_RESPONSE_CANCEL. For example, you could call Gtk_New as follows: GtkWidget *dialog; dialog = gtk_file_chooser_dialog_new ("Open File", parent_window, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); This will create buttons for "Cancel" and "Open" that use stock response identifiers from Gtk_Response_Type. For most dialog boxes you can use your own custom response codes rather than the ones in Gtk_Response_Type, but Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog assumes that its "accept"-type action, e.g. an "Open" or "Save" button, *will* have one of the following response codes: <simplelist id="gtkfilechooserdialog-responses"> <member>GTK_RESPONSE_ACCEPT</member> <member>GTK_RESPONSE_OK</member> <member>GTK_RESPONSE_YES</member> <member>GTK_RESPONSE_APPLY</member> </simplelist> This is because Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog must intercept responses and switch to folders if appropriate, rather than letting the dialog terminate — the implementation uses these known response codes to know which responses can be blocked if appropriate.
Note: To summarize, make sure you use a <link linkend="gtkfilechooserdialog-responses">stock response code</link> when you use Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog to ensure proper operation. </section> </description>