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:
GtkFileChooserNative
is an abstraction of a dialog suitable for use with “File Open” or “File Save as” commands.By default, this just uses a
GtkFileChooserDialog
to 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),GtkFileChooserNative
may call the proper APIs (portals) to let the user choose a file and make it available to the application.While the API of
GtkFileChooserNative
closely mirrorsGtkFileChooserDialog
, the main difference is that there is no access to anyGtkWindow
orGtkWidget
for 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
,GtkFileChooserNative
objects 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
GtkFileChooserNative
to 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.FileChooserAction
action =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
GtkFileChooserNative
for 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.FileChooserAction
action =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
GtkFileChooserNative
inherits from [class`Gtk`.NativeDialog], which means it will returnGtk.ResponseType.ACCEPT
if the user accepted, andGtk.ResponseType.CANCEL
if he pressed cancel. It can also returnGtk.ResponseType.DELETE_EVENT
if 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
IFileDialog
implementation (added in Windows Vista) is used. It supports many of the features thatGtkFileChooser
has, 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
GtkFileChooserDialog
will be used in place of the native one.- Portal details
When the
org.freedesktop.portal.FileChooser
portal 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
NSSavePanel
andNSOpenPanel
classes are used to provide native file chooser dialogs. Some features provided byGtkFileChooser
are 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.Window
orNone
) – Transient parent of the nativeaction (
Gtk.FileChooserAction
) – Open or save mode for the dialogaccept_label (
str
orNone
) – text to go in the accept button, orNone
for the defaultcancel_label (
str
orNone
) – text to go in the cancel button, orNone
for 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