Class
GtkFileChooserDialog
deprecated: 4.10
Description [src]
final class Gtk.FileChooserDialog : Gtk.Dialog {
/* No available fields */
}
GtkFileChooserDialog is a dialog suitable for use with
“File Open” or “File Save” commands.

This widget works by putting a GtkFileChooserWidget
inside a GtkDialog. It exposes the GtkFileChooser
interface, so you can use all of the GtkFileChooser functions
on the file chooser dialog as well as those for GtkDialog.
Note that GtkFileChooserDialog does not have any methods of its
own. Instead, you should use the functions that work on a
GtkFileChooser.
If you want to integrate well with the platform you should use the
GtkFileChooserNative 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
GTK_FILE_CHOOSER_ACTION_OPEN. -
To save a file for the first time, use
GTK_FILE_CHOOSER_ACTION_SAVE, and suggest a name such as “Untitled” withgtk_file_chooser_set_current_name(). -
To save a file under a different name, use
GTK_FILE_CHOOSER_ACTION_SAVE, and set the existing file withgtk_file_chooser_set_file(). -
To choose a folder instead of a filem use
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
In general, you should only cause the file chooser to show a specific
folder when it is appropriate to use gtk_file_chooser_set_file(),
i.e. when you are doing a “Save As” command and you already have a file
saved somewhere.
Response Codes
GtkFileChooserDialog inherits from GtkDialog, 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_file_chooser_dialog_new() 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 GtkResponseType. For most dialog
boxes you can use your own custom response codes rather than the
ones in GtkResponseType, but GtkFileChooserDialog assumes that
its “accept”-type action, e.g. an “Open” or “Save” button,
will have one of the following response codes:
GTK_RESPONSE_ACCEPTGTK_RESPONSE_OKGTK_RESPONSE_YESGTK_RESPONSE_APPLY
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.
Deprecated since: 4.10
Use GtkFileDialog instead.
Instance methods
Methods inherited from GtkDialog (10)
gtk_dialog_add_action_widget
Adds an activatable widget to the action area of a GtkDialog.
deprecated: 4.10
gtk_dialog_add_button
Adds a button with the given text.
deprecated: 4.10
gtk_dialog_add_buttons
Adds multiple buttons.
deprecated: 4.10
gtk_dialog_get_content_area
Returns the content area of dialog.
deprecated: 4.10
gtk_dialog_get_header_bar
Returns the header bar of dialog.
deprecated: 4.10
gtk_dialog_get_response_for_widget
Gets the response id of a widget in the action area of a dialog.
deprecated: 4.10
gtk_dialog_get_widget_for_response
Gets the widget button that uses the given response ID in the action area of a dialog.
deprecated: 4.10
gtk_dialog_response
Emits the ::response signal with the given response ID.
deprecated: 4.10
gtk_dialog_set_default_response
Sets the default widget for the dialog based on the response ID.
deprecated: 4.10
gtk_dialog_set_response_sensitive
A convenient way to sensitize/desensitize dialog buttons.
deprecated: 4.10
Methods inherited from GtkAccessible (18)
gtk_accessible_get_accessible_parent
Retrieves the accessible parent for an accessible object.
since: 4.10
gtk_accessible_get_accessible_role
Retrieves the accessible role of an accessible object.
gtk_accessible_get_at_context
Retrieves the accessible implementation for the given GtkAccessible.
since: 4.10
gtk_accessible_get_bounds
Queries the coordinates and dimensions of this accessible.
since: 4.10
gtk_accessible_get_first_accessible_child
Retrieves the first accessible child of an accessible object.
since: 4.10
gtk_accessible_get_next_accessible_sibling
Retrieves the next accessible sibling of an accessible object.
since: 4.10
gtk_accessible_get_platform_state
Query a platform state, such as focus.
since: 4.10
gtk_accessible_reset_property
Resets the accessible property to its default value.
gtk_accessible_reset_relation
Resets the accessible relation to its default value.
gtk_accessible_reset_state
Resets the accessible state to its default value.
gtk_accessible_set_accessible_parent
Sets the parent and sibling of an accessible object.
since: 4.10
gtk_accessible_update_next_accessible_sibling
Updates the next accessible sibling of self.
since: 4.10
gtk_accessible_update_property
Updates a list of accessible properties.
gtk_accessible_update_property_value
Updates an array of accessible properties.
gtk_accessible_update_relation
Updates a list of accessible relations.
gtk_accessible_update_relation_value
Updates an array of accessible relations.
gtk_accessible_update_state
Updates a list of accessible states. See the GtkAccessibleState
documentation for the value types of accessible states.
gtk_accessible_update_state_value
Updates an array of accessible states.
Methods inherited from GtkBuildable (1)
Methods inherited from GtkFileChooser (25)
Please see GtkFileChooser for a full list of methods.
Methods inherited from GtkNative (5)
gtk_native_get_renderer
Returns the renderer that is used for this GtkNative.
gtk_native_get_surface
Returns the surface of this GtkNative.
gtk_native_get_surface_transform
Retrieves the surface transform of self.
gtk_native_realize
Realizes a GtkNative.
gtk_native_unrealize
Unrealizes a GtkNative.
Methods inherited from GtkRoot (3)
gtk_root_get_display
Returns the display that this GtkRoot is on.
gtk_root_get_focus
Retrieves the current focused widget within the root.
gtk_root_set_focus
If focus is not the current focus widget, and is focusable, sets
it as the focus widget for the root.
Properties
Properties inherited from GtkDialog (1)
Gtk.Dialog:use-header-bar
TRUE if the dialog uses a headerbar for action buttons
instead of the action-area.
deprecated: 4.10
Properties inherited from GtkWindow (25)
Gtk.Window:application
The GtkApplication associated with the window.
Gtk.Window:child
The child widget.
Gtk.Window:decorated
Whether the window should have a frame (also known as decorations).
Gtk.Window:default-height
The default height of the window.
Gtk.Window:default-widget
The default widget.
Gtk.Window:default-width
The default width of the window.
Gtk.Window:deletable
Whether the window frame should have a close button.
Gtk.Window:destroy-with-parent
If this window should be destroyed when the parent is destroyed.
Gtk.Window:display
The display that will display this window.
Gtk.Window:focus-visible
Whether ‘focus rectangles’ are currently visible in this window.
Gtk.Window:focus-widget
The focus widget.
Gtk.Window:fullscreened
Whether the window is fullscreen.
Gtk.Window:handle-menubar-accel
Whether the window frame should handle F10 for activating menubars.
since: 4.2
Gtk.Window:hide-on-close
If this window should be hidden when the users clicks the close button.
Gtk.Window:icon-name
Specifies the name of the themed icon to use as the window icon.
Gtk.Window:is-active
Whether the toplevel is the currently active window.
Gtk.Window:maximized
Whether the window is maximized.
Gtk.Window:mnemonics-visible
Whether mnemonics are currently visible in this window.
Gtk.Window:modal
If TRUE, the window is modal.
Gtk.Window:resizable
If TRUE, users can resize the window.
Gtk.Window:startup-id
A write-only property for setting window’s startup notification identifier.
Gtk.Window:suspended
Whether the window is suspended.
since: 4.12
Gtk.Window:title
The title of the window.
Gtk.Window:titlebar
The titlebar widget.
since: 4.6
Gtk.Window:transient-for
The transient parent of the window.
Properties inherited from GtkWidget (34)
Gtk.Widget:can-focus
Whether the widget or any of its descendents can accept the input focus.
Gtk.Widget:can-target
Whether the widget can receive pointer events.
Gtk.Widget:css-classes
A list of css classes applied to this widget.
Gtk.Widget:css-name
The name of this widget in the CSS tree.
Gtk.Widget:cursor
The cursor used by widget.
Gtk.Widget:focus-on-click
Whether the widget should grab focus when it is clicked with the mouse.
Gtk.Widget:focusable
Whether this widget itself will accept the input focus.
Gtk.Widget:halign
How to distribute horizontal space if widget gets extra space.
Gtk.Widget:has-default
Whether the widget is the default widget.
Gtk.Widget:has-focus
Whether the widget has the input focus.
Gtk.Widget:has-tooltip
Enables or disables the emission of the ::query-tooltip signal on widget.
Gtk.Widget:height-request
Override for height request of the widget.
Gtk.Widget:hexpand
Whether to expand horizontally.
Gtk.Widget:hexpand-set
Whether to use the hexpand property.
Gtk.Widget:layout-manager
The GtkLayoutManager instance to use to compute the preferred size
of the widget, and allocate its children.
Gtk.Widget:margin-bottom
Margin on bottom side of widget.
Gtk.Widget:margin-end
Margin on end of widget, horizontally.
Gtk.Widget:margin-start
Margin on start of widget, horizontally.
Gtk.Widget:margin-top
Margin on top side of widget.
Gtk.Widget:name
The name of the widget.
Gtk.Widget:opacity
The requested opacity of the widget.
Gtk.Widget:overflow
How content outside the widget’s content area is treated.
Gtk.Widget:parent
The parent widget of this widget.
Gtk.Widget:receives-default
Whether the widget will receive the default action when it is focused.
Gtk.Widget:root
The GtkRoot widget of the widget tree containing this widget.
Gtk.Widget:scale-factor
The scale factor of the widget.
Gtk.Widget:sensitive
Whether the widget responds to input.
Gtk.Widget:tooltip-markup
Sets the text of tooltip to be the given string, which is marked up with Pango markup.
Gtk.Widget:tooltip-text
Sets the text of tooltip to be the given string.
Gtk.Widget:valign
How to distribute vertical space if widget gets extra space.
Gtk.Widget:vexpand
Whether to expand vertically.
Gtk.Widget:vexpand-set
Whether to use the vexpand property.
Gtk.Widget:visible
Whether the widget is visible.
Gtk.Widget:width-request
Override for width request of the widget.
Properties inherited from GtkAccessible (1)
Properties inherited from GtkFileChooser (6)
GtkFileChooser:action
The type of operation that the file chooser is performing.
deprecated: 4.10
GtkFileChooser:create-folders
Whether a file chooser not in GTK_FILE_CHOOSER_ACTION_OPEN mode
will offer the user to create new folders.
deprecated: 4.10
GtkFileChooser:filter
The current filter for selecting files that are displayed.
deprecated: 4.10
GtkFileChooser:filters
A GListModel containing the filters that have been
added with gtk_file_chooser_add_filter().
deprecated: 4.10
GtkFileChooser:select-multiple
Whether to allow multiple files to be selected.
deprecated: 4.10
GtkFileChooser:shortcut-folders
A GListModel containing the shortcut folders that have been
added with gtk_file_chooser_add_shortcut_folder().
deprecated: 4.10
Signals
Signals inherited from GtkDialog (2)
GtkDialog::close
Emitted when the user uses a keybinding to close the dialog.
deprecated: 4.10
GtkDialog::response
Emitted when an action widget is clicked.
deprecated: 4.10
Signals inherited from GtkWindow (5)
GtkWindow::activate-default
Emitted when the user activates the default widget
of window.
GtkWindow::activate-focus
Emitted when the user activates the currently focused
widget of window.
GtkWindow::close-request
Emitted when the user clicks on the close button of the window.
GtkWindow::enable-debugging
Emitted when the user enables or disables interactive debugging.
GtkWindow::keys-changed
Emitted when the set of accelerators or mnemonics that
are associated with window changes.
deprecated: 4.10
Signals inherited from GtkWidget (13)
GtkWidget::destroy
Signals that all holders of a reference to the widget should release the reference that they hold.
GtkWidget::direction-changed
Emitted when the text direction of a widget changes.
GtkWidget::hide
Emitted when widget is hidden.
GtkWidget::keynav-failed
Emitted if keyboard navigation fails.
GtkWidget::map
Emitted when widget is going to be mapped.
GtkWidget::mnemonic-activate
Emitted when a widget is activated via a mnemonic.
GtkWidget::move-focus
Emitted when the focus is moved.
GtkWidget::query-tooltip
Emitted when the widget’s tooltip is about to be shown.
GtkWidget::realize
Emitted when widget is associated with a GdkSurface.
GtkWidget::show
Emitted when widget is shown.
GtkWidget::state-flags-changed
Emitted when the widget state changes.
GtkWidget::unmap
Emitted when widget is going to be unmapped.
GtkWidget::unrealize
Emitted when the GdkSurface associated with widget is destroyed.
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.