Class FileChooserDialog
- All Implemented Interfaces:
Accessible,Buildable,ConstraintTarget,FileChooser,Native,Root,ShortcutManager,Proxy
GtkFileChooserDialog is a dialog suitable for use with
“File Open” or “File Save” commands.
This widget works by putting a FileChooserWidget
inside a Dialog. It exposes the FileChooser
interface, so you can use all of the FileChooser functions
on the file chooser dialog as well as those for Dialog.
Note that GtkFileChooserDialog does not have any methods of its
own. Instead, you should use the functions that work on a
FileChooser.
If you want to integrate well with the platform you should use the
FileChooserNative API, which will use a platform-specific
dialog if available and fall back to GtkFileChooserDialog
otherwise.
Typical usage
In the simplest of cases, you can the following code to use
GtkFileChooserDialog to select a file for opening:
static void
on_open_response (GtkDialog *dialog,
int response)
{
if (response == GTK_RESPONSE_ACCEPT)
{
GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog);
g_autoptr(GFile) file = gtk_file_chooser_get_file (chooser);
open_file (file);
}
gtk_window_destroy (GTK_WINDOW (dialog));
}
// ...
GtkWidget *dialog;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
dialog = gtk_file_chooser_dialog_new ("Open File",
parent_window,
action,
_("_Cancel"),
GTK_RESPONSE_CANCEL,
_("_Open"),
GTK_RESPONSE_ACCEPT,
NULL);
gtk_window_present (GTK_WINDOW (dialog));
g_signal_connect (dialog, "response",
G_CALLBACK (on_open_response),
NULL);
To use a dialog for saving, you can use this:
static void
on_save_response (GtkDialog *dialog,
int response)
{
if (response == GTK_RESPONSE_ACCEPT)
{
GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog);
g_autoptr(GFile) file = gtk_file_chooser_get_file (chooser);
save_to_file (file);
}
gtk_window_destroy (GTK_WINDOW (dialog));
}
// ...
GtkWidget *dialog;
GtkFileChooser *chooser;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
dialog = gtk_file_chooser_dialog_new ("Save File",
parent_window,
action,
_("_Cancel"),
GTK_RESPONSE_CANCEL,
_("_Save"),
GTK_RESPONSE_ACCEPT,
NULL);
chooser = GTK_FILE_CHOOSER (dialog);
if (user_edited_a_new_document)
gtk_file_chooser_set_current_name (chooser, _("Untitled document"));
else
gtk_file_chooser_set_file (chooser, existing_filename);
gtk_window_present (GTK_WINDOW (dialog));
g_signal_connect (dialog, "response",
G_CALLBACK (on_save_response),
NULL);
Setting up a file chooser dialog
There are various cases in which you may need to use a GtkFileChooserDialog:
- To select a file for opening, use
FileChooserAction.OPEN.
- To save a file for the first time, use
FileChooserAction.SAVE, and suggest a name such as “Untitled” withFileChooser.setCurrentName(java.lang.String).
- To save a file under a different name, use
FileChooserAction.SAVE, and set the existing file withFileChooser.setFile(org.gnome.gio.File).
- To choose a folder instead of a filem use
FileChooserAction.SELECT_FOLDER.
In general, you should only cause the file chooser to show a specific
folder when it is appropriate to use FileChooser.setFile(org.gnome.gio.File),
i.e. when you are doing a “Save As” command and you already have a file
saved somewhere.
Response Codes
GtkFileChooserDialog inherits from Dialog, so buttons that
go in its action area have response codes such as ResponseType.ACCEPT and
ResponseType.CANCEL. For example, you could call
FileChooserDialog() as follows:
GtkWidget *dialog;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
dialog = gtk_file_chooser_dialog_new ("Open File",
parent_window,
action,
_("_Cancel"),
GTK_RESPONSE_CANCEL,
_("_Open"),
GTK_RESPONSE_ACCEPT,
NULL);
This will create buttons for “Cancel” and “Open” that use predefined
response identifiers from Gtk.ResponseType. For most dialog
boxes you can use your own custom response codes rather than the
ones in Gtk.ResponseType, but GtkFileChooserDialog assumes that
its “accept”-type action, e.g. an “Open” or “Save” button,
will have one of the following response codes:
This is because GtkFileChooserDialog 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.
To summarize, make sure you use a predefined response code
when you use GtkFileChooserDialog to ensure proper operation.
CSS nodes
GtkFileChooserDialog has a single CSS node with the name window and style
class .filechooser.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classFileChooserDialog.Builder<B extends FileChooserDialog.Builder<B>>Deprecated.Inner class implementing a builder pattern to construct a GObject with properties.Nested classes/interfaces inherited from class org.gnome.gtk.Dialog
Dialog.CloseCallback, Dialog.DialogClass, Dialog.ResponseCallbackNested classes/interfaces inherited from class org.gnome.gtk.Window
Window.ActivateDefaultCallback, Window.ActivateFocusCallback, Window.CloseRequestCallback, Window.EnableDebuggingCallback, Window.KeysChangedCallback, Window.WindowClassNested classes/interfaces inherited from class org.gnome.gtk.Widget
Widget.DestroyCallback, Widget.DirectionChangedCallback, Widget.HideCallback, Widget.KeynavFailedCallback, Widget.MapCallback, Widget.MnemonicActivateCallback, Widget.MoveFocusCallback, Widget.QueryTooltipCallback, Widget.RealizeCallback, Widget.ShowCallback, Widget.StateFlagsChangedCallback, Widget.UnmapCallback, Widget.UnrealizeCallback, Widget.Widget$Impl, Widget.WidgetClassNested classes/interfaces inherited from class org.gnome.gobject.InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClassNested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClassNested classes/interfaces inherited from interface org.gnome.gtk.Accessible
Accessible.Accessible$Impl, Accessible.AccessibleInterfaceNested classes/interfaces inherited from interface org.gnome.gtk.Buildable
Buildable.Buildable$Impl, Buildable.BuildableIfaceNested classes/interfaces inherited from interface org.gnome.gtk.ConstraintTarget
ConstraintTarget.ConstraintTarget$Impl, ConstraintTarget.ConstraintTargetInterfaceNested classes/interfaces inherited from interface org.gnome.gtk.FileChooser
FileChooser.FileChooser$ImplNested classes/interfaces inherited from interface org.gnome.gtk.Native
Native.Native$Impl, Native.NativeInterfaceNested classes/interfaces inherited from interface org.gnome.gtk.Root
Root.Root$Impl, Root.RootInterfaceNested classes/interfaces inherited from interface org.gnome.gtk.ShortcutManager
ShortcutManager.ShortcutManager$Impl, ShortcutManager.ShortcutManagerInterface -
Field Summary
Fields inherited from class org.javagi.base.ProxyInstance
address -
Constructor Summary
ConstructorsConstructorDescriptionDeprecated.Creates a new FileChooserDialog.FileChooserDialog(@Nullable String title, @Nullable Window parent, FileChooserAction action, @Nullable String firstButtonText, Object... varargs) Deprecated.UseFileDialoginsteadFileChooserDialog(MemorySegment address) Deprecated.Create a FileChooserDialog proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected FileChooserDialogasParent()Deprecated.Returns this instance as if it were its parent type.static FileChooserDialog.Builder<? extends FileChooserDialog.Builder> builder()Deprecated.AFileChooserDialog.Builderobject constructs aFileChooserDialogwith the specified properties.static TypegetType()Deprecated.Get the GType of the FileChooserDialog classMethods inherited from class org.gnome.gtk.Dialog
addActionWidget, addButton, addButtons, close, emitClose, emitResponse, getContentArea, getHeaderBar, getMemoryLayout, getResponseForWidget, getWidgetForResponse, onClose, onResponse, response, setDefaultResponse, setResponseSensitive, withButtons, withButtonsMethods inherited from class org.gnome.gtk.Window
activateDefault, activateFocus, closeRequest, destroy, emitActivateDefault, emitActivateFocus, emitCloseRequest, emitEnableDebugging, emitKeysChanged, enableDebugging, fullscreen, fullscreenOnMonitor, getApplication, getChild, getDecorated, getDefaultIconName, getDefaultSize, getDefaultWidget, getDeletable, getDestroyWithParent, getFocus, getFocusVisible, getGroup, getHandleMenubarAccel, getHideOnClose, getIconName, getMnemonicsVisible, getModal, getResizable, getTitle, getTitlebar, getToplevels, getTransientFor, hasGroup, isActive, isFullscreen, isMaximized, isSuspended, keysChanged, listToplevels, maximize, minimize, onActivateDefault, onActivateFocus, onCloseRequest, onEnableDebugging, onKeysChanged, present, presentWithTime, setApplication, setAutoStartupNotification, setChild, setDecorated, setDefaultIconName, setDefaultSize, setDefaultWidget, setDeletable, setDestroyWithParent, setDisplay, setFocus, setFocusVisible, setHandleMenubarAccel, setHideOnClose, setIconName, setInteractiveDebugging, setMnemonicsVisible, setModal, setResizable, setStartupId, setTitle, setTitlebar, setTransientFor, unfullscreen, unmaximize, unminimizeMethods inherited from class org.gnome.gtk.Widget
actionSetEnabled, activateActionIfExists, activateWidget, addController, addCssClass, addMnemonicLabel, addTickCallback, allocate, childFocus, computeBounds, computeExpand, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, cssChanged, directionChanged, disposeTemplate, dragCheckThreshold, emitDestroy, emitDirectionChanged, emitHide, emitKeynavFailed, emitMap, emitMnemonicActivate, emitMoveFocus, emitQueryTooltip, emitRealize, emitShow, emitStateFlagsChanged, emitUnmap, emitUnrealize, errorBell, focus, getAllocatedBaseline, getAllocatedHeight, getAllocatedWidth, getAllocation, getAncestor, getBaseline, getCanFocus, getCanTarget, getChildVisible, getClipboard, getColor, getCssClasses, getCssName, getCursor, getDefaultDirection, getDirection, getDisplay, getFirstChild, getFocusable, getFocusChild, getFocusOnClick, getFontMap, getFontOptions, getFrameClock, getHalign, getHasTooltip, getHeight, getHexpand, getHexpandSet, getLastChild, getLayoutManager, getLimitEvents, getMapped, getMarginBottom, getMarginEnd, getMarginStart, getMarginTop, getName, getNative, getNextSibling, getOpacity, getOverflow, getPangoContext, getParent, getPreferredSize, getPrevSibling, getPrimaryClipboard, getRealized, getReceivesDefault, getRequestMode, getRoot, getScaleFactor, getSensitive, getSettings, getSize, getSizeRequest, getStateFlags, getStyleContext, getTemplateChild, getTooltipMarkup, getTooltipText, getValign, getVexpand, getVexpandSet, getVisible, getWidth, grabFocus, hasCssClass, hasDefault, hasFocus, hasVisibleFocus, hide, inDestruction, initTemplate, insertActionGroup, insertAfter, insertBefore, isAncestor, isDrawable, isFocus, isSensitive, isVisible, keynavFailed, listMnemonicLabels, map, measure, mnemonicActivate, moveFocus, observeChildren, observeControllers, onDestroy, onDirectionChanged, onHide, onKeynavFailed, onMap, onMnemonicActivate, onMoveFocus, onQueryTooltip, onRealize, onShow, onStateFlagsChanged, onUnmap, onUnrealize, pick, pick, queryTooltip, queueAllocate, queueDraw, queueResize, realize, removeController, removeCssClass, removeMnemonicLabel, removeTickCallback, root, setCanFocus, setCanTarget, setChildVisible, setCssClasses, setCursor, setCursorFromName, setDefaultDirection, setDirection, setFocusable, setFocusChild, setFocusOnClick, setFontMap, setFontOptions, setHalign, setHasTooltip, setHexpand, setHexpandSet, setLayoutManager, setLimitEvents, setMarginBottom, setMarginEnd, setMarginStart, setMarginTop, setName, setOpacity, setOverflow, setParent, setReceivesDefault, setSensitive, setSizeRequest, setStateFlags, setStateFlags, setTooltipMarkup, setTooltipText, setValign, setVexpand, setVexpandSet, setVisible, shouldLayout, show, sizeAllocate, sizeAllocate, snapshot, snapshotChild, stateFlagsChanged, systemSettingChanged, translateCoordinates, triggerTooltipQuery, unmap, unparent, unrealize, unroot, unsetStateFlags, unsetStateFlagsMethods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newv, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withPropertiesMethods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClassMethods inherited from class org.javagi.base.ProxyInstance
equals, handle, hashCodeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.gnome.gtk.Accessible
announce, getAccessibleParent, getAccessibleRole, getAtContext, getBounds, getFirstAccessibleChild, getNextAccessibleSibling, getPlatformState, resetProperty, resetRelation, resetState, setAccessibleParent, updateNextAccessibleSibling, updatePlatformState, updateProperty, updateRelation, updateStateMethods inherited from interface org.gnome.gtk.Buildable
getBuildableIdMethods inherited from interface org.gnome.gtk.FileChooser
addChoice, addFilter, addShortcutFolder, getAction, getChoice, getCreateFolders, getCurrentFolder, getCurrentName, getFile, getFiles, getFilter, getFilters, getSelectMultiple, getShortcutFolders, removeChoice, removeFilter, removeShortcutFolder, setAction, setChoice, setCreateFolders, setCurrentFolder, setCurrentName, setFile, setFilter, setSelectMultipleMethods inherited from interface org.gnome.gtk.Native
getRenderer, getSurface, getSurfaceTransform, realize, unrealizeMethods inherited from interface org.gnome.gtk.Root
getDisplay, getFocus, setFocus
-
Constructor Details
-
FileChooserDialog
Deprecated.Create a FileChooserDialog proxy instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
FileChooserDialog
@Deprecated public FileChooserDialog(@Nullable @Nullable String title, @Nullable @Nullable Window parent, FileChooserAction action, @Nullable @Nullable String firstButtonText, Object... varargs) Deprecated.UseFileDialoginsteadCreates a newGtkFileChooserDialog.This function is analogous to
Dialog.withButtons(java.lang.String, org.gnome.gtk.Window, java.util.Set<org.gnome.gtk.DialogFlags>, java.lang.String, java.lang.Object...).- Parameters:
title- Title of the dialogparent- Transient parent of the dialogaction- Open or save mode for the dialogfirstButtonText- text to go in the first buttonvarargs- response ID for the first button, then additional (button, id) pairs, ending withnull
-
FileChooserDialog
public FileChooserDialog()Deprecated.Creates a new FileChooserDialog.
-
-
Method Details
-
getType
Deprecated.Get the GType of the FileChooserDialog class- Returns:
- the GType
-
asParent
Deprecated.Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuperkeyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName(). This will call the native function pointer of this virtual method in the typeclass of the parent type. -
builder
Deprecated.AFileChooserDialog.Builderobject constructs aFileChooserDialogwith the specified properties. Use the variousset...()methods to set properties, and finish construction withFileChooserDialog.Builder.build().
-
FileDialoginstead