Gtk.FileChooserNative¶
- Subclasses:
None
Methods¶
- Inherited:
Gtk.NativeDialog (10), GObject.Object (37), Gtk.FileChooser (25)
- Structs:
class |
|
|
|
|
Virtual Methods¶
- Inherited:
Properties¶
- Inherited:
Name |
Type |
Flags |
Short Description |
|---|---|---|---|
r/w |
|||
r/w |
Signals¶
- Inherited:
Fields¶
- Inherited:
Class Details¶
- class Gtk.FileChooserNative(**kwargs)¶
- Bases:
- Abstract:
No
- Structure:
GtkFileChooserNativeis an abstraction of a dialog suitable for use with “File Open” or “File Save as” commands.By default, this just uses a
GtkFileChooserDialogto implement the actual dialog. However, on some platforms, such as Windows and macOS, the native platform file chooser is used instead. When the application is running in a sandboxed environment without direct filesystem access (such as Flatpak),GtkFileChooserNativemay call the proper APIs (portals) to let the user choose a file and make it available to the application.While the API of
GtkFileChooserNativeclosely mirrorsGtkFileChooserDialog, the main difference is that there is no access to anyGtkWindoworGtkWidgetfor the dialog. This is required, as there may not be one in the case of a platform native dialog.Showing, hiding and running the dialog is handled by the [class`Gtk`.NativeDialog] functions.
Note that unlike
GtkFileChooserDialog,GtkFileChooserNativeobjects are not toplevel widgets, and GTK does not keep them alive. It is your responsibility to keep a reference until you are done with the object.- Typical usage
In the simplest of cases, you can the following code to use
GtkFileChooserNativeto select a file for opening:```c static void on_response (
Gtk.NativeDialog*native, int response) { if (response ==Gtk.ResponseType.ACCEPT) {Gtk.FileChooser*chooser = GTK_FILE_CHOOSER (native);Gio.File*file =Gtk.FileChooser.get_file(chooser);open_file (file);
GObject.Object.unref(file); }GObject.Object.unref(native); }// …
Gtk.FileChooserNative*native;Gtk.FileChooserActionaction =Gtk.FileChooserAction.OPEN;native =
Gtk.FileChooserNative.new(“Open File”, parent_window, action, “_Open”, “_Cancel”);g_signal_connect (native, “response”, G_CALLBACK (on_response),
None);Gtk.NativeDialog.show(GTK_NATIVE_DIALOG (native)); ```To use a
GtkFileChooserNativefor saving, you can use this:```c static void on_response (
Gtk.NativeDialog*native, int response) { if (response ==Gtk.ResponseType.ACCEPT) {Gtk.FileChooser*chooser = GTK_FILE_CHOOSER (native);Gio.File*file =Gtk.FileChooser.get_file(chooser);save_to_file (file);
GObject.Object.unref(file); }GObject.Object.unref(native); }// …
Gtk.FileChooserNative*native;Gtk.FileChooser*chooser;Gtk.FileChooserActionaction =Gtk.FileChooserAction.SAVE;native =
Gtk.FileChooserNative.new(“Save File”, parent_window, action, “_Save”, “_Cancel”); chooser = GTK_FILE_CHOOSER (native);if (user_edited_a_new_document)
Gtk.FileChooser.set_current_name(chooser, _(“Untitled document”)); elseGtk.FileChooser.set_file(chooser, existing_file,None);g_signal_connect (native, “response”, G_CALLBACK (on_response),
None);Gtk.NativeDialog.show(GTK_NATIVE_DIALOG (native)); ```For more information on how to best set up a file dialog, see the [class`Gtk`.FileChooserDialog] documentation.
- Response Codes
GtkFileChooserNativeinherits from [class`Gtk`.NativeDialog], which means it will returnGtk.ResponseType.ACCEPTif the user accepted, andGtk.ResponseType.CANCELif he pressed cancel. It can also returnGtk.ResponseType.DELETE_EVENTif the window was unexpectedly closed.- Differences from
Gtk.FileChooserDialog
There are a few things in the [iface`Gtk`.FileChooser] interface that are not possible to use with
GtkFileChooserNative, as such use would prohibit the use of a native dialog.No operations that change the dialog work while the dialog is visible. Set all the properties that are required before showing the dialog.
- Win32 details
On windows the
IFileDialogimplementation (added in Windows Vista) is used. It supports many of the features thatGtkFileChooserhas, but there are some things it does not handle:Any [class`Gtk`.FileFilter] added using a mimetype
If any of these features are used the regular
GtkFileChooserDialogwill be used in place of the native one.- Portal details
When the
org.freedesktop.portal.FileChooserportal is available on the session bus, it is used to bring up an out-of-process file chooser. Depending on the kind of session the application is running in, this may or may not be a GTK file chooser.- macOS details
On macOS the
NSSavePanelandNSOpenPanelclasses are used to provide native file chooser dialogs. Some features provided byGtkFileChooserare not supported:Shortcut folders.
Deprecated since version 4.10: Use [class`Gtk`.FileDialog] instead
- classmethod new(title, parent, action, accept_label, cancel_label)[source]¶
- Parameters:
parent (
Gtk.WindoworNone) – Transient parent of the nativeaction (
Gtk.FileChooserAction) – Open or save mode for the dialogaccept_label (
strorNone) – text to go in the accept button, orNonefor the defaultcancel_label (
strorNone) – text to go in the cancel button, orNonefor the default
- Returns:
a new
GtkFileChooserNative- Return type:
Creates a new
GtkFileChooserNative.Deprecated since version 4.10: Use [class`Gtk`.FileDialog] instead
- get_accept_label()[source]¶
-
Retrieves the custom label text for the accept button.
Deprecated since version 4.10: Use [class`Gtk`.FileDialog] instead
- get_cancel_label()[source]¶
-
Retrieves the custom label text for the cancel button.
Deprecated since version 4.10: Use [class`Gtk`.FileDialog] instead
- set_accept_label(accept_label)[source]¶
-
Sets the custom label text for the accept button.
If characters in label are preceded by an underscore, they are underlined. If you need a literal underscore character in a label, use “__” (two underscores). The first underlined character represents a keyboard accelerator called a mnemonic.
Pressing Alt and that key should activate the button.
Deprecated since version 4.10: Use [class`Gtk`.FileDialog] instead
- set_cancel_label(cancel_label)[source]¶
-
Sets the custom label text for the cancel button.
If characters in label are preceded by an underscore, they are underlined. If you need a literal underscore character in a label, use “__” (two underscores). The first underlined character represents a keyboard accelerator called a mnemonic.
Pressing Alt and that key should activate the button.
Deprecated since version 4.10: Use [class`Gtk`.FileDialog] instead