Package ch.bailu.gtk.gtk
Klasse FileChooserNative
java.lang.Object
ch.bailu.gtk.type.Type
ch.bailu.gtk.type.Pointer
ch.bailu.gtk.gobject.Object
ch.bailu.gtk.type.PropertyHolder
ch.bailu.gtk.gtk.NativeDialog
ch.bailu.gtk.gtk.FileChooserNative
- Alle implementierten Schnittstellen:
PointerInterface
`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 mirrors `GtkFileChooserDialog`,
the main difference is that there is no access to any `GtkWindow` or `GtkWidget`
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 (GtkNativeDialog *native,
int response)
{
if (response == GTK_RESPONSE_ACCEPT)
{
GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
GFile *file = gtk_file_chooser_get_file (chooser);
open_file (file);
g_object_unref (file);
}
g_object_unref (native);
}
// ...
GtkFileChooserNative *native;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
native = gtk_file_chooser_native_new ("Open File",
parent_window,
action,
"_Open",
"_Cancel");
g_signal_connect (native, "response", G_CALLBACK (on_response), NULL);
gtk_native_dialog_show (GTK_NATIVE_DIALOG (native));
```
To use a `GtkFileChooserNative` for saving, you can use this:
```c
static void
on_response (GtkNativeDialog *native,
int response)
{
if (response == GTK_RESPONSE_ACCEPT)
{
GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
GFile *file = gtk_file_chooser_get_file (chooser);
save_to_file (file);
g_object_unref (file);
}
g_object_unref (native);
}
// ...
GtkFileChooserNative *native;
GtkFileChooser *chooser;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
native = gtk_file_chooser_native_new ("Save File",
parent_window,
action,
"_Save",
"_Cancel");
chooser = GTK_FILE_CHOOSER (native);
if (user_edited_a_new_document)
gtk_file_chooser_set_current_name (chooser, _("Untitled document"));
else
gtk_file_chooser_set_file (chooser, existing_file, NULL);
g_signal_connect (native, "response", G_CALLBACK (on_response), NULL);
gtk_native_dialog_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 return %GTK_RESPONSE_ACCEPT if the user accepted,
and %GTK_RESPONSE_CANCEL if he pressed cancel. It can also return
%GTK_RESPONSE_DELETE_EVENT if the window was unexpectedly closed.
## Differences from `GtkFileChooserDialog`
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 that `GtkFileChooser` 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` and `NSOpenPanel` classes are used to provide
native file chooser dialogs. Some features provided by `GtkFileChooser`
are not supported:
* Shortcut folders.
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 mirrors `GtkFileChooserDialog`,
the main difference is that there is no access to any `GtkWindow` or `GtkWidget`
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 (GtkNativeDialog *native,
int response)
{
if (response == GTK_RESPONSE_ACCEPT)
{
GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
GFile *file = gtk_file_chooser_get_file (chooser);
open_file (file);
g_object_unref (file);
}
g_object_unref (native);
}
// ...
GtkFileChooserNative *native;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
native = gtk_file_chooser_native_new ("Open File",
parent_window,
action,
"_Open",
"_Cancel");
g_signal_connect (native, "response", G_CALLBACK (on_response), NULL);
gtk_native_dialog_show (GTK_NATIVE_DIALOG (native));
```
To use a `GtkFileChooserNative` for saving, you can use this:
```c
static void
on_response (GtkNativeDialog *native,
int response)
{
if (response == GTK_RESPONSE_ACCEPT)
{
GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
GFile *file = gtk_file_chooser_get_file (chooser);
save_to_file (file);
g_object_unref (file);
}
g_object_unref (native);
}
// ...
GtkFileChooserNative *native;
GtkFileChooser *chooser;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
native = gtk_file_chooser_native_new ("Save File",
parent_window,
action,
"_Save",
"_Cancel");
chooser = GTK_FILE_CHOOSER (native);
if (user_edited_a_new_document)
gtk_file_chooser_set_current_name (chooser, _("Untitled document"));
else
gtk_file_chooser_set_file (chooser, existing_file, NULL);
g_signal_connect (native, "response", G_CALLBACK (on_response), NULL);
gtk_native_dialog_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 return %GTK_RESPONSE_ACCEPT if the user accepted,
and %GTK_RESPONSE_CANCEL if he pressed cancel. It can also return
%GTK_RESPONSE_DELETE_EVENT if the window was unexpectedly closed.
## Differences from `GtkFileChooserDialog`
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 that `GtkFileChooser` 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` and `NSOpenPanel` classes are used to provide
native file chooser dialogs. Some features provided by `GtkFileChooser`
are not supported:
* Shortcut folders.
-
Verschachtelte Klassen - Übersicht
Von Klasse geerbte verschachtelte Klassen/Schnittstellen ch.bailu.gtk.gtk.NativeDialog
NativeDialog.OnResponse
Von Klasse geerbte verschachtelte Klassen/Schnittstellen ch.bailu.gtk.gobject.Object
Object.OnBindingTransformFunc, Object.OnDestroyNotify, Object.OnDuplicateFunc, Object.OnNotify, Object.OnToggleNotify, Object.OnWeakNotify
-
Feldübersicht
Von Klasse geerbte Felder ch.bailu.gtk.gtk.NativeDialog
SIGNAL_ON_RESPONSE
Von Klasse geerbte Felder ch.bailu.gtk.gobject.Object
SIGNAL_ON_NOTIFY
-
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungFileChooserNative
(PointerContainer pointer) FileChooserNative
(Str title, Window parent, int action, Str accept_label, Str cancel_label) Veraltet.FileChooserNative
(String title, Window parent, int action, String accept_label, String cancel_label) Veraltet. -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungImplements interfaceFileChooser
.Veraltet.Veraltet.static ClassHandler
static int
static long
static TypeSystem.TypeSize
static long
static TypeSystem.TypeSize
void
setAcceptLabel
(Str accept_label) Veraltet.void
setAcceptLabel
(String accept_label) Veraltet.void
setCancelLabel
(Str cancel_label) Veraltet.void
setCancelLabel
(String cancel_label) Veraltet.Von Klasse geerbte Methoden ch.bailu.gtk.gtk.NativeDialog
destroy, getModal, getTitle, getTransientFor, getVisible, hide, onResponse, setModal, setTitle, setTitle, setTransientFor, show
Von Klasse geerbte Methoden ch.bailu.gtk.type.PropertyHolder
getBooleanProperty, getIntProperty, getObjectProperty, getStringProperty, getStrProperty, setBooleanProperty, setIntProperty, setObjectProperty, setStringProperty, setStrProperty
Von Klasse geerbte Methoden ch.bailu.gtk.gobject.Object
addToggleRef, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, disconnect, disconnect, dupData, dupData, dupQdata, forceFloating, freezeNotify, get, get, getData, getData, getProperty, getProperty, getQdata, interfaceFindProperty, interfaceInstallProperty, isFloating, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, replaceData, replaceData, replaceQdata, runDispose, set, set, setData, setData, setDataFull, setDataFull, setProperty, setProperty, setQdata, setQdataFull, stealData, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref
Von Klasse geerbte Methoden ch.bailu.gtk.type.Pointer
asCPointer, cast, connectSignal, disconnectSignals, disconnectSignals, equals, hashCode, throwIfNull, throwNullPointerException, toString, unregisterCallbacks, unregisterCallbacks
Von Klasse geerbte Methoden ch.bailu.gtk.type.Type
asCPointer, asCPointer, asCPointerNotNull, asJnaPointer, asJnaPointer, asPointer, asPointer, cast, cast, throwIfNull
Von Klasse geerbte Methoden java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Von Schnittstelle geerbte Methoden ch.bailu.gtk.type.PointerInterface
asCPointerNotNull, asJnaPointer, asPointer, isNotNull, isNull
-
Konstruktordetails
-
FileChooserNative
-
FileChooserNative
@Deprecated public FileChooserNative(@Nullable Str title, @Nullable Window parent, int action, @Nullable Str accept_label, @Nullable Str cancel_label) Veraltet.Creates a new `GtkFileChooserNative`.- Parameter:
title
- Title of the nativeparent
- Transient parent of the nativeaction
- Open or save mode for the dialogaccept_label
- text to go in the accept button, or %NULL for the defaultcancel_label
- text to go in the cancel button, or %NULL for the default
-
FileChooserNative
@Deprecated public FileChooserNative(String title, @Nullable Window parent, int action, String accept_label, String cancel_label) Veraltet.Creates a new `GtkFileChooserNative`.- Parameter:
title
- Title of the nativeparent
- Transient parent of the nativeaction
- Open or save mode for the dialogaccept_label
- text to go in the accept button, or %NULL for the defaultcancel_label
- text to go in the cancel button, or %NULL for the default
-
-
Methodendetails
-
getClassHandler
-
getAcceptLabel
Veraltet.Retrieves the custom label text for the accept button.- Gibt zurück:
- The custom label
-
getCancelLabel
Veraltet.Retrieves the custom label text for the cancel button.- Gibt zurück:
- The custom label
-
setAcceptLabel
Veraltet.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.- Parameter:
accept_label
- custom label
-
setAcceptLabel
Veraltet.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.- Parameter:
accept_label
- custom label
-
setCancelLabel
Veraltet.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.- Parameter:
cancel_label
- custom label
-
setCancelLabel
Veraltet.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.- Parameter:
cancel_label
- custom label
-
asFileChooser
Implements interfaceFileChooser
. Call this to get access to interface functions.- Gibt zurück:
FileChooser
-
getTypeID
public static long getTypeID() -
getParentTypeID
public static long getParentTypeID() -
getTypeSize
-
getParentTypeSize
-
getInstanceSize
public static int getInstanceSize()
-