FileChooserProtocol

public protocol FileChooserProtocol

GtkFileChooser is an interface that can be implemented by file selection widgets. In GTK+, the main objects that implement this interface are GtkFileChooserWidget, GtkFileChooserDialog, and GtkFileChooserButton. You do not need to write an object that implements the GtkFileChooser interface unless you are trying to adapt an existing file selector to expose a standard programming interface.

GtkFileChooser allows for shortcuts to various places in the filesystem. In the default implementation these are displayed in the left pane. It may be a bit confusing at first that these shortcuts come from various sources and in various flavours, so lets explain the terminology here:

  • Bookmarks: are created by the user, by dragging folders from the right pane to the left pane, or by using the “Add”. Bookmarks can be renamed and deleted by the user.

  • Shortcuts: can be provided by the application. For example, a Paint program may want to add a shortcut for a Clipart folder. Shortcuts cannot be modified by the user.

  • Volumes: are provided by the underlying filesystem abstraction. They are the “roots” of the filesystem.

File Names and Encodings

When the user is finished selecting files in a GtkFileChooser, your program can get the selected names either as filenames or as URIs. For URIs, the normal escaping rules are applied if the URI contains non-ASCII characters. However, filenames are always returned in the character set specified by the G_FILENAME_ENCODING environment variable. Please see the GLib documentation for more details about this variable.

This means that while you can pass the result of gtk_file_chooser_get_filename() to g_open() or g_fopen(), you may not be able to directly set it as the text of a GtkLabel widget unless you convert it first to UTF-8, which all GTK+ widgets expect. You should use g_filename_to_utf8() to convert filenames into strings that can be passed to GTK+ widgets.

Adding a Preview Widget

You can add a custom preview widget to a file chooser and then get notification about when the preview needs to be updated. To install a preview widget, use gtk_file_chooser_set_preview_widget(). Then, connect to the GtkFileChooser::update-preview signal to get notified when you need to update the contents of the preview.

Your callback should use gtk_file_chooser_get_preview_filename() to see what needs previewing. Once you have generated the preview for the corresponding file, you must call gtk_file_chooser_set_preview_widget_active() with a boolean flag that indicates whether your callback could successfully generate a preview.

Example: Using a Preview Widget ##

(C Language Example):

{
  GtkImage *preview;

  ...

  preview = gtk_image_new ();

  gtk_file_chooser_set_preview_widget (my_file_chooser, preview);
  g_signal_connect (my_file_chooser, "update-preview",
            G_CALLBACK (update_preview_cb), preview);
}

static void
update_preview_cb (GtkFileChooser *file_chooser, gpointer data)
{
  GtkWidget *preview;
  char *filename;
  GdkPixbuf *pixbuf;
  gboolean have_preview;

  preview = GTK_WIDGET (data);
  filename = gtk_file_chooser_get_preview_filename (file_chooser);

  pixbuf = gdk_pixbuf_new_from_file_at_size (filename, 128, 128, NULL);
  have_preview = (pixbuf != NULL);
  g_free (filename);

  gtk_image_set_from_pixbuf (GTK_IMAGE (preview), pixbuf);
  if (pixbuf)
    g_object_unref (pixbuf);

  gtk_file_chooser_set_preview_widget_active (file_chooser, have_preview);
}

Adding Extra Widgets

You can add extra widgets to a file chooser to provide options that are not present in the default design. For example, you can add a toggle button to give the user the option to open a file in read-only mode. You can use gtk_file_chooser_set_extra_widget() to insert additional widgets in a file chooser.

An example for adding extra widgets: (C Language Example):


  GtkWidget *toggle;

  ...

  toggle = gtk_check_button_new_with_label ("Open file read-only");
  gtk_widget_show (toggle);
  gtk_file_chooser_set_extra_widget (my_file_chooser, toggle);
}

If you want to set more than one extra widget in the file chooser, you can a container such as a GtkBox or a GtkGrid and include your widgets in it. Then, set the container as the whole extra widget.

The FileChooserProtocol protocol exposes the methods and properties of an underlying GtkFileChooser instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, see FileChooser. Alternatively, use FileChooserRef as a lighweight, unowned reference if you already have an instance you just want to use.

  • ptr

    Untyped pointer to the underlying GtkFileChooser instance.

    Declaration

    Swift

    var ptr: UnsafeMutableRawPointer! { get }
  • file_chooser_ptr Default implementation

    Typed pointer to the underlying GtkFileChooser instance.

    Default Implementation

    Return the stored, untyped pointer as a typed pointer to the GtkFileChooser instance.

    Declaration

    Swift

    var file_chooser_ptr: UnsafeMutablePointer<GtkFileChooser>! { get }
  • Required Initialiser for types conforming to FileChooserProtocol

    Declaration

    Swift

    init(raw: UnsafeMutableRawPointer)

FileChooser Interface

  • Bind a FileChooserPropertyName source property to a given target object.

    Declaration

    Swift

    @discardableResult
    @inlinable
    func bind<Q, T>(property source_property: FileChooserPropertyName, to target: T, _ target_property: Q, flags f: BindingFlags = .default, transformFrom transform_from: @escaping GLibObject.ValueTransformer = { $0.transform(destValue: $1) }, transformTo transform_to: @escaping GLibObject.ValueTransformer = { $0.transform(destValue: $1) }) -> BindingRef! where Q : PropertyNameProtocol, T : ObjectProtocol

    Parameters

    source_property

    the source property to bind

    target

    the target object to bind to

    target_property

    the target property to bind to

    flags

    the flags to pass to the Binding

    transform_from

    ValueTransformer to use for forward transformation

    transform_to

    ValueTransformer to use for backwards transformation

    Return Value

    binding reference or nil in case of an error

  • get(property:) Extension method

    Get the value of a FileChooser property

    Declaration

    Swift

    @inlinable
    func get(property: FileChooserPropertyName) -> GLibObject.Value

    Parameters

    property

    the property to get the value for

    Return Value

    the value of the named property

  • set(property:value:) Extension method

    Set the value of a FileChooser property. Note that this will only have an effect on properties that are writable and not construct-only!

    Declaration

    Swift

    @inlinable
    func set(property: FileChooserPropertyName, value v: GLibObject.Value)

    Parameters

    property

    the property to get the value for

    Return Value

    the value of the named property

FileChooser signals

  • Connect a Swift signal handler to the given, typed FileChooserSignalName signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func connect(signal s: FileChooserSignalName, flags f: ConnectFlags = ConnectFlags(0), handler h: @escaping SignalHandler) -> Int

    Parameters

    signal

    The signal to connect

    flags

    The connection flags to use

    data

    A pointer to user data to provide to the callback

    destroyData

    A GClosureNotify C function to destroy the data pointed to by userData

    handler

    The Swift signal handler (function or callback) to invoke on the given signal

    Return Value

    The signal handler ID (always greater than 0 for successful connections)

  • Connect a C signal handler to the given, typed FileChooserSignalName signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func connect(signal s: FileChooserSignalName, flags f: ConnectFlags = ConnectFlags(0), data userData: gpointer!, destroyData destructor: GClosureNotify? = nil, signalHandler h: @escaping GCallback) -> Int

    Parameters

    signal

    The signal to connect

    flags

    The connection flags to use

    data

    A pointer to user data to provide to the callback

    destroyData

    A GClosureNotify C function to destroy the data pointed to by userData

    signalHandler

    The C function to be called on the given signal

    Return Value

    The signal handler ID (always greater than 0 for successful connections)

  • This signal gets emitted whenever it is appropriate to present a confirmation dialog when the user has selected a file name that already exists. The signal only gets emitted when the file chooser is in GTK_FILE_CHOOSER_ACTION_SAVE mode.

    Most applications just need to turn on the GtkFileChooser:do-overwrite-confirmation property (or call the gtk_file_chooser_set_do_overwrite_confirmation() function), and they will automatically get a stock confirmation dialog. Applications which need to customize this behavior should do that, and also connect to the GtkFileChooser::confirm-overwrite signal.

    A signal handler for this signal must return a GtkFileChooserConfirmation value, which indicates the action to take. If the handler determines that the user wants to select a different filename, it should return GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN. If it determines that the user is satisfied with his choice of file name, it should return GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME. On the other hand, if it determines that the stock confirmation dialog should be used, it should return GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM. The following example illustrates this.

    Custom confirmation ##

    (C Language Example):

    static GtkFileChooserConfirmation
    confirm_overwrite_callback (GtkFileChooser *chooser, gpointer data)
    {
      char *uri;
    
      uri = gtk_file_chooser_get_uri (chooser);
    
      if (is_uri_read_only (uri))
        {
          if (user_wants_to_replace_read_only_file (uri))
            return GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME;
          else
            return GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN;
        } else
          return GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM; // fall back to the default dialog
    }
    
    ...
    
    chooser = gtk_file_chooser_dialog_new (...);
    
    gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
    g_signal_connect (chooser, "confirm-overwrite",
                      G_CALLBACK (confirm_overwrite_callback), NULL);
    
    if (gtk_dialog_run (chooser) == GTK_RESPONSE_ACCEPT)
            save_to_file (gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));
    
    gtk_widget_destroy (chooser);
    

    Note

    This represents the underlying confirm-overwrite signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onConfirmOverwrite(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef) -> FileChooserConfirmation) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    handler

    a GtkFileChooserConfirmation value that indicates which action to take after emitting the signal. Run the given callback whenever the confirmOverwrite signal is emitted

  • confirmOverwriteSignal Extension method

    Typed confirm-overwrite signal for using the connect(signal:) methods

    Declaration

    Swift

    static var confirmOverwriteSignal: FileChooserSignalName { get }
  • This signal is emitted when the current folder in a GtkFileChooser changes. This can happen due to the user performing some action that changes folders, such as selecting a bookmark or visiting a folder on the file list. It can also happen as a result of calling a function to explicitly change the current folder in a file chooser.

    Normally you do not need to connect to this signal, unless you need to keep track of which folder a file chooser is showing.

    See also: gtk_file_chooser_set_current_folder(), gtk_file_chooser_get_current_folder(), gtk_file_chooser_set_current_folder_uri(), gtk_file_chooser_get_current_folder_uri().

    Note

    This represents the underlying current-folder-changed signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onCurrentFolderChanged(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    handler

    The signal handler to call Run the given callback whenever the currentFolderChanged signal is emitted

  • currentFolderChangedSignal Extension method

    Typed current-folder-changed signal for using the connect(signal:) methods

    Declaration

    Swift

    static var currentFolderChangedSignal: FileChooserSignalName { get }
  • This signal is emitted when the user “activates” a file in the file chooser. This can happen by double-clicking on a file in the file list, or by pressing Enter.

    Normally you do not need to connect to this signal. It is used internally by GtkFileChooserDialog to know when to activate the default button in the dialog.

    See also: gtk_file_chooser_get_filename(), gtk_file_chooser_get_filenames(), gtk_file_chooser_get_uri(), gtk_file_chooser_get_uris().

    Note

    This represents the underlying file-activated signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onFileActivated(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    handler

    The signal handler to call Run the given callback whenever the fileActivated signal is emitted

  • fileActivatedSignal Extension method

    Typed file-activated signal for using the connect(signal:) methods

    Declaration

    Swift

    static var fileActivatedSignal: FileChooserSignalName { get }
  • This signal is emitted when there is a change in the set of selected files in a GtkFileChooser. This can happen when the user modifies the selection with the mouse or the keyboard, or when explicitly calling functions to change the selection.

    Normally you do not need to connect to this signal, as it is easier to wait for the file chooser to finish running, and then to get the list of selected files using the functions mentioned below.

    See also: gtk_file_chooser_select_filename(), gtk_file_chooser_unselect_filename(), gtk_file_chooser_get_filename(), gtk_file_chooser_get_filenames(), gtk_file_chooser_select_uri(), gtk_file_chooser_unselect_uri(), gtk_file_chooser_get_uri(), gtk_file_chooser_get_uris().

    Note

    This represents the underlying selection-changed signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onSelectionChanged(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    handler

    The signal handler to call Run the given callback whenever the selectionChanged signal is emitted

  • selectionChangedSignal Extension method

    Typed selection-changed signal for using the connect(signal:) methods

    Declaration

    Swift

    static var selectionChangedSignal: FileChooserSignalName { get }
  • This signal is emitted when the preview in a file chooser should be regenerated. For example, this can happen when the currently selected file changes. You should use this signal if you want your file chooser to have a preview widget.

    Once you have installed a preview widget with gtk_file_chooser_set_preview_widget(), you should update it when this signal is emitted. You can use the functions gtk_file_chooser_get_preview_filename() or gtk_file_chooser_get_preview_uri() to get the name of the file to preview. Your widget may not be able to preview all kinds of files; your callback must call gtk_file_chooser_set_preview_widget_active() to inform the file chooser about whether the preview was generated successfully or not.

    Please see the example code in Using a Preview Widget.

    See also: gtk_file_chooser_set_preview_widget(), gtk_file_chooser_set_preview_widget_active(), gtk_file_chooser_set_use_preview_label(), gtk_file_chooser_get_preview_filename(), gtk_file_chooser_get_preview_uri().

    Note

    This represents the underlying update-preview signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onUpdatePreview(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    handler

    The signal handler to call Run the given callback whenever the updatePreview signal is emitted

  • updatePreviewSignal Extension method

    Typed update-preview signal for using the connect(signal:) methods

    Declaration

    Swift

    static var updatePreviewSignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::action signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifyAction(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifyAction signal is emitted

  • notifyActionSignal Extension method

    Typed notify::action signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyActionSignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::create-folders signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifyCreateFolders(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifyCreateFolders signal is emitted

  • notifyCreateFoldersSignal Extension method

    Typed notify::create-folders signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyCreateFoldersSignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::do-overwrite-confirmation signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifyDoOverwriteConfirmation(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifyDoOverwriteConfirmation signal is emitted

  • Typed notify::do-overwrite-confirmation signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyDoOverwriteConfirmationSignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::extra-widget signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifyExtraWidget(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifyExtraWidget signal is emitted

  • notifyExtraWidgetSignal Extension method

    Typed notify::extra-widget signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyExtraWidgetSignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::filter signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifyFilter(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifyFilter signal is emitted

  • notifyFilterSignal Extension method

    Typed notify::filter signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyFilterSignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::local-only signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifyLocalOnly(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifyLocalOnly signal is emitted

  • notifyLocalOnlySignal Extension method

    Typed notify::local-only signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyLocalOnlySignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::preview-widget signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifyPreviewWidget(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifyPreviewWidget signal is emitted

  • notifyPreviewWidgetSignal Extension method

    Typed notify::preview-widget signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyPreviewWidgetSignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::preview-widget-active signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifyPreviewWidgetActive(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifyPreviewWidgetActive signal is emitted

  • Typed notify::preview-widget-active signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyPreviewWidgetActiveSignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::select-multiple signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifySelectMultiple(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifySelectMultiple signal is emitted

  • notifySelectMultipleSignal Extension method

    Typed notify::select-multiple signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifySelectMultipleSignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::show-hidden signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifyShowHidden(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifyShowHidden signal is emitted

  • notifyShowHiddenSignal Extension method

    Typed notify::show-hidden signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyShowHiddenSignal: FileChooserSignalName { get }
  • 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.

    Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in notify being emitted, even if the new value is the same as the old. If they did pass G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.

    This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:

    (C Language Example):

    g_signal_connect (text_view->buffer, "notify::paste-target-list",
                      G_CALLBACK (gtk_text_view_target_list_notify),
                      text_view)
    

    It is important to note that you must use canonical parameter names as detail strings for the notify signal.

    Note

    This represents the underlying notify::use-preview-label signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onNotifyUsePreviewLabel(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: FileChooserRef, _ pspec: ParamSpecRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    pspec

    the GParamSpec of the property which changed.

    handler

    The signal handler to call Run the given callback whenever the notifyUsePreviewLabel signal is emitted

  • notifyUsePreviewLabelSignal Extension method

    Typed notify::use-preview-label signal for using the connect(signal:) methods

    Declaration

    Swift

    static var notifyUsePreviewLabelSignal: FileChooserSignalName { get }

FileChooser Interface: FileChooserProtocol extension (methods and fields)

  • Adds a ‘choice’ to the file chooser. This is typically implemented as a combobox or, for boolean choices, as a checkbutton. You can select a value using gtk_file_chooser_set_choice() before the dialog is shown, and you can obtain the user-selected value in the response signal handler using gtk_file_chooser_get_choice().

    Compare gtk_file_chooser_set_extra_widget().

    Declaration

    Swift

    @inlinable
    func addChoice(id: UnsafePointer<CChar>!, label: UnsafePointer<CChar>!, options: UnsafeMutablePointer<UnsafePointer<CChar>?>! = nil, optionLabels: UnsafeMutablePointer<UnsafePointer<CChar>?>! = nil)
  • add(filter:) Extension method

    Adds filter to the list of filters that the user can select between. When a filter is selected, only files that are passed by that filter are displayed.

    Note that the chooser takes ownership of the filter, so you have to ref and sink it if you want to keep a reference.

    Declaration

    Swift

    @inlinable
    func add<FileFilterT>(filter: FileFilterT) where FileFilterT : FileFilterProtocol
  • addShortcut(folder:) Extension method

    Adds a folder to be displayed with the shortcut folders in a file chooser. Note that shortcut folders do not get saved, as they are provided by the application. For example, you can use this to add a “/usr/share/mydrawprogram/Clipart” folder to the volume list.

    Declaration

    Swift

    @inlinable
    func addShortcut(folder: UnsafePointer<CChar>!) throws -> Bool
  • addShortcutFolder(uri:) Extension method

    Adds a folder URI to be displayed with the shortcut folders in a file chooser. Note that shortcut folders do not get saved, as they are provided by the application. For example, you can use this to add a “file:///usr/share/mydrawprogram/Clipart” folder to the volume list.

    Declaration

    Swift

    @inlinable
    func addShortcutFolder(uri: UnsafePointer<CChar>!) throws -> Bool
  • getAction() Extension method

    Gets the type of operation that the file chooser is performing; see gtk_file_chooser_set_action().

    Declaration

    Swift

    @inlinable
    func getAction() -> GtkFileChooserAction
  • getChoice(id:) Extension method

    Gets the currently selected option in the ‘choice’ with the given ID.

    Declaration

    Swift

    @inlinable
    func getChoice(id: UnsafePointer<CChar>!) -> String!
  • getCreateFolders() Extension method

    Gets whether file choser will offer to create new folders. See gtk_file_chooser_set_create_folders().

    Declaration

    Swift

    @inlinable
    func getCreateFolders() -> Bool
  • getCurrentFolder() Extension method

    Gets the current folder of chooser as a local filename. See gtk_file_chooser_set_current_folder().

    Note that this is the folder that the file chooser is currently displaying (e.g. “/home/username/Documents”), which is not the same as the currently-selected folder if the chooser is in GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER mode (e.g. “/home/username/Documents/selected-folder/”. To get the currently-selected folder in that mode, use gtk_file_chooser_get_uri() as the usual way to get the selection.

    Declaration

    Swift

    @inlinable
    func getCurrentFolder() -> String!
  • getCurrentFolderFile() Extension method

    Gets the current folder of chooser as GFile. See gtk_file_chooser_get_current_folder_uri().

    Declaration

    Swift

    @inlinable
    func getCurrentFolderFile() -> GIO.FileRef!
  • getCurrentFolderURI() Extension method

    Gets the current folder of chooser as an URI. See gtk_file_chooser_set_current_folder_uri().

    Note that this is the folder that the file chooser is currently displaying (e.g. “file:///home/username/Documents”), which is not the same as the currently-selected folder if the chooser is in GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER mode (e.g. “file:///home/username/Documents/selected-folder/”. To get the currently-selected folder in that mode, use gtk_file_chooser_get_uri() as the usual way to get the selection.

    Declaration

    Swift

    @inlinable
    func getCurrentFolderURI() -> String!
  • getCurrentName() Extension method

    Gets the current name in the file selector, as entered by the user in the text entry for “Name”.

    This is meant to be used in save dialogs, to get the currently typed filename when the file itself does not exist yet. For example, an application that adds a custom extra widget to the file chooser for “file format” may want to change the extension of the typed filename based on the chosen format, say, from “.jpg” to “.png”.

    Declaration

    Swift

    @inlinable
    func getCurrentName() -> String!
  • getDoOverwriteConfirmation() Extension method

    Queries whether a file chooser is set to confirm for overwriting when the user types a file name that already exists.

    Declaration

    Swift

    @inlinable
    func getDoOverwriteConfirmation() -> Bool
  • getExtraWidget() Extension method

    Gets the current extra widget; see gtk_file_chooser_set_extra_widget().

    Declaration

    Swift

    @inlinable
    func getExtraWidget() -> WidgetRef!
  • getFile() Extension method

    Gets the GFile for the currently selected file in the file selector. If multiple files are selected, one of the files will be returned at random.

    If the file chooser is in folder mode, this function returns the selected folder.

    Declaration

    Swift

    @inlinable
    func getFile() -> GIO.FileRef!
  • getFilename() Extension method

    Gets the filename for the currently selected file in the file selector. The filename is returned as an absolute path. If multiple files are selected, one of the filenames will be returned at random.

    If the file chooser is in folder mode, this function returns the selected folder.

    Declaration

    Swift

    @inlinable
    func getFilename() -> String!
  • getFilenames() Extension method

    Lists all the selected files and subfolders in the current folder of chooser. The returned names are full absolute paths. If files in the current folder cannot be represented as local filenames they will be ignored. (See gtk_file_chooser_get_uris())

    Declaration

    Swift

    @inlinable
    func getFilenames() -> GLib.SListRef!
  • getFiles() Extension method

    Lists all the selected files and subfolders in the current folder of chooser as GFile. An internal function, see gtk_file_chooser_get_uris().

    Declaration

    Swift

    @inlinable
    func getFiles() -> GLib.SListRef!
  • getFilter() Extension method

    Gets the current filter; see gtk_file_chooser_set_filter().

    Declaration

    Swift

    @inlinable
    func getFilter() -> FileFilterRef!
  • getLocalOnly() Extension method

    Gets whether only local files can be selected in the file selector. See gtk_file_chooser_set_local_only()

    Declaration

    Swift

    @inlinable
    func getLocalOnly() -> Bool
  • getPreviewFile() Extension method

    Gets the GFile that should be previewed in a custom preview Internal function, see gtk_file_chooser_get_preview_uri().

    Declaration

    Swift

    @inlinable
    func getPreviewFile() -> GIO.FileRef!
  • getPreviewFilename() Extension method

    Gets the filename that should be previewed in a custom preview widget. See gtk_file_chooser_set_preview_widget().

    Declaration

    Swift

    @inlinable
    func getPreviewFilename() -> String!
  • getPreviewURI() Extension method

    Gets the URI that should be previewed in a custom preview widget. See gtk_file_chooser_set_preview_widget().

    Declaration

    Swift

    @inlinable
    func getPreviewURI() -> String!
  • getPreviewWidget() Extension method

    Gets the current preview widget; see gtk_file_chooser_set_preview_widget().

    Declaration

    Swift

    @inlinable
    func getPreviewWidget() -> WidgetRef!
  • getPreviewWidgetActive() Extension method

    Gets whether the preview widget set by gtk_file_chooser_set_preview_widget() should be shown for the current filename. See gtk_file_chooser_set_preview_widget_active().

    Declaration

    Swift

    @inlinable
    func getPreviewWidgetActive() -> Bool
  • getSelectMultiple() Extension method

    Gets whether multiple files can be selected in the file selector. See gtk_file_chooser_set_select_multiple().

    Declaration

    Swift

    @inlinable
    func getSelectMultiple() -> Bool
  • getShowHidden() Extension method

    Gets whether hidden files and folders are displayed in the file selector. See gtk_file_chooser_set_show_hidden().

    Declaration

    Swift

    @inlinable
    func getShowHidden() -> Bool
  • getURI() Extension method

    Gets the URI for the currently selected file in the file selector. If multiple files are selected, one of the filenames will be returned at random.

    If the file chooser is in folder mode, this function returns the selected folder.

    Declaration

    Swift

    @inlinable
    func getURI() -> String!
  • getURIs() Extension method

    Lists all the selected files and subfolders in the current folder of chooser. The returned names are full absolute URIs.

    Declaration

    Swift

    @inlinable
    func getURIs() -> GLib.SListRef!
  • getUsePreviewLabel() Extension method

    Gets whether a stock label should be drawn with the name of the previewed file. See gtk_file_chooser_set_use_preview_label().

    Declaration

    Swift

    @inlinable
    func getUsePreviewLabel() -> Bool
  • listFilters() Extension method

    Lists the current set of user-selectable filters; see gtk_file_chooser_add_filter(), gtk_file_chooser_remove_filter().

    Declaration

    Swift

    @inlinable
    func listFilters() -> GLib.SListRef!
  • listShortcutFolderURIs() Extension method

    Queries the list of shortcut folders in the file chooser, as set by gtk_file_chooser_add_shortcut_folder_uri().

    Declaration

    Swift

    @inlinable
    func listShortcutFolderURIs() -> GLib.SListRef!
  • listShortcutFolders() Extension method

    Queries the list of shortcut folders in the file chooser, as set by gtk_file_chooser_add_shortcut_folder().

    Declaration

    Swift

    @inlinable
    func listShortcutFolders() -> GLib.SListRef!
  • removeChoice(id:) Extension method

    Removes a ‘choice’ that has been added with gtk_file_chooser_add_choice().

    Declaration

    Swift

    @inlinable
    func removeChoice(id: UnsafePointer<CChar>!)
  • remove(filter:) Extension method

    Removes filter from the list of filters that the user can select between.

    Declaration

    Swift

    @inlinable
    func remove<FileFilterT>(filter: FileFilterT) where FileFilterT : FileFilterProtocol
  • removeShortcut(folder:) Extension method

    Removes a folder from a file chooser’s list of shortcut folders.

    Declaration

    Swift

    @inlinable
    func removeShortcut(folder: UnsafePointer<CChar>!) throws -> Bool
  • removeShortcutFolder(uri:) Extension method

    Removes a folder URI from a file chooser’s list of shortcut folders.

    Declaration

    Swift

    @inlinable
    func removeShortcutFolder(uri: UnsafePointer<CChar>!) throws -> Bool
  • selectAll() Extension method

    Selects all the files in the current folder of a file chooser.

    Declaration

    Swift

    @inlinable
    func selectAll()
  • select(file:) Extension method

    Selects the file referred to by file. An internal function. See _gtk_file_chooser_select_uri().

    Declaration

    Swift

    @inlinable
    func select<FileT>(file: FileT) throws -> Bool where FileT : FileProtocol
  • select(filename:) Extension method

    Selects a filename. If the file name isn’t in the current folder of chooser, then the current folder of chooser will be changed to the folder containing filename.

    Declaration

    Swift

    @inlinable
    func select(filename: UnsafePointer<CChar>!) -> Bool
  • select(uri:) Extension method

    Selects the file to by uri. If the URI doesn’t refer to a file in the current folder of chooser, then the current folder of chooser will be changed to the folder containing filename.

    Declaration

    Swift

    @inlinable
    func select(uri: UnsafePointer<CChar>!) -> Bool
  • set(action:) Extension method

    Sets the type of operation that the chooser is performing; the user interface is adapted to suit the selected action. For example, an option to create a new folder might be shown if the action is GTK_FILE_CHOOSER_ACTION_SAVE but not if the action is GTK_FILE_CHOOSER_ACTION_OPEN.

    Declaration

    Swift

    @inlinable
    func set(action: GtkFileChooserAction)
  • setChoice(id:option:) Extension method

    Selects an option in a ‘choice’ that has been added with gtk_file_chooser_add_choice(). For a boolean choice, the possible options are “true” and “false”.

    Declaration

    Swift

    @inlinable
    func setChoice(id: UnsafePointer<CChar>!, option: UnsafePointer<CChar>!)
  • set(createFolders:) Extension method

    Sets whether file choser will offer to create new folders. This is only relevant if the action is not set to be GTK_FILE_CHOOSER_ACTION_OPEN.

    Declaration

    Swift

    @inlinable
    func set(createFolders: Bool)
  • setCurrentFolder(filename:) Extension method

    Sets the current folder for chooser from a local filename. The user will be shown the full contents of the current folder, plus user interface elements for navigating to other folders.

    In general, you should not use this function. See the section on setting up a file chooser dialog for the rationale behind this.

    Declaration

    Swift

    @inlinable
    func setCurrentFolder(filename: UnsafePointer<gchar>!) -> Bool
  • setCurrentFolder(file:) Extension method

    Sets the current folder for chooser from a GFile. Internal function, see gtk_file_chooser_set_current_folder_uri().

    Declaration

    Swift

    @inlinable
    func setCurrentFolder<FileT>(file: FileT) throws -> Bool where FileT : FileProtocol
  • setCurrentFolder(uri:) Extension method

    Sets the current folder for chooser from an URI. The user will be shown the full contents of the current folder, plus user interface elements for navigating to other folders.

    In general, you should not use this function. See the section on setting up a file chooser dialog for the rationale behind this.

    Declaration

    Swift

    @inlinable
    func setCurrentFolder(uri: UnsafePointer<gchar>!) -> Bool
  • setCurrent(name:) Extension method

    Sets the current name in the file selector, as if entered by the user. Note that the name passed in here is a UTF-8 string rather than a filename. This function is meant for such uses as a suggested name in a “Save As…” dialog. You can pass “Untitled.doc” or a similarly suitable suggestion for the name.

    If you want to preselect a particular existing file, you should use gtk_file_chooser_set_filename() or gtk_file_chooser_set_uri() instead. Please see the documentation for those functions for an example of using gtk_file_chooser_set_current_name() as well.

    Declaration

    Swift

    @inlinable
    func setCurrent(name: UnsafePointer<gchar>!)
  • Sets whether a file chooser in GTK_FILE_CHOOSER_ACTION_SAVE mode will present a confirmation dialog if the user types a file name that already exists. This is false by default.

    If set to true, the chooser will emit the GtkFileChooser::confirm-overwrite signal when appropriate.

    If all you need is the stock confirmation dialog, set this property to true. You can override the way confirmation is done by actually handling the GtkFileChooser::confirm-overwrite signal; please refer to its documentation for the details.

    Declaration

    Swift

    @inlinable
    func set(doOverwriteConfirmation: Bool)
  • set(extraWidget:) Extension method

    Sets an application-supplied widget to provide extra options to the user.

    Declaration

    Swift

    @inlinable
    func set<WidgetT>(extraWidget: WidgetT) where WidgetT : WidgetProtocol
  • set(file:) Extension method

    Sets file as the current filename for the file chooser, by changing to the file’s parent folder and actually selecting the file in list. If the chooser is in GTK_FILE_CHOOSER_ACTION_SAVE mode, the file’s base name will also appear in the dialog’s file name entry.

    If the file name isn’t in the current folder of chooser, then the current folder of chooser will be changed to the folder containing filename. This is equivalent to a sequence of gtk_file_chooser_unselect_all() followed by gtk_file_chooser_select_filename().

    Note that the file must exist, or nothing will be done except for the directory change.

    If you are implementing a save dialog, you should use this function if you already have a file name to which the user may save; for example, when the user opens an existing file and then does Save As… If you don’t have a file name already — for example, if the user just created a new file and is saving it for the first time, do not call this function. Instead, use something similar to this: (C Language Example):

    if (document_is_new)
      {
        // the user just created a new document
        gtk_file_chooser_set_current_folder_file (chooser, default_file_for_saving);
        gtk_file_chooser_set_current_name (chooser, "Untitled document");
      }
    else
      {
        // the user edited an existing document
        gtk_file_chooser_set_file (chooser, existing_file);
      }
    

    Declaration

    Swift

    @inlinable
    func set<FileT>(file: FileT) throws -> Bool where FileT : FileProtocol
  • set(filename:) Extension method

    Sets filename as the current filename for the file chooser, by changing to the file’s parent folder and actually selecting the file in list; all other files will be unselected. If the chooser is in GTK_FILE_CHOOSER_ACTION_SAVE mode, the file’s base name will also appear in the dialog’s file name entry.

    Note that the file must exist, or nothing will be done except for the directory change.

    You should use this function only when implementing a save dialog for which you already have a file name to which the user may save. For example, when the user opens an existing file and then does Save As… to save a copy or a modified version. If you don’t have a file name already — for example, if the user just created a new file and is saving it for the first time, do not call this function. Instead, use something similar to this: (C Language Example):

    if (document_is_new)
      {
        // the user just created a new document
        gtk_file_chooser_set_current_name (chooser, "Untitled document");
      }
    else
      {
        // the user edited an existing document
        gtk_file_chooser_set_filename (chooser, existing_filename);
      }
    

    In the first case, the file chooser will present the user with useful suggestions as to where to save his new file. In the second case, the file’s existing location is already known, so the file chooser will use it.

    Declaration

    Swift

    @inlinable
    func set(filename: UnsafePointer<CChar>!) -> Bool
  • set(filter:) Extension method

    Sets the current filter; only the files that pass the filter will be displayed. If the user-selectable list of filters is non-empty, then the filter should be one of the filters in that list. Setting the current filter when the list of filters is empty is useful if you want to restrict the displayed set of files without letting the user change it.

    Declaration

    Swift

    @inlinable
    func set<FileFilterT>(filter: FileFilterT) where FileFilterT : FileFilterProtocol
  • set(localOnly:) Extension method

    Sets whether only local files can be selected in the file selector. If local_only is true (the default), then the selected file or files are guaranteed to be accessible through the operating systems native file system and therefore the application only needs to worry about the filename functions in GtkFileChooser, like gtk_file_chooser_get_filename(), rather than the URI functions like gtk_file_chooser_get_uri(),

    On some systems non-native files may still be available using the native filesystem via a userspace filesystem (FUSE).

    Declaration

    Swift

    @inlinable
    func set(localOnly: Bool)
  • set(previewWidget:) Extension method

    Sets an application-supplied widget to use to display a custom preview of the currently selected file. To implement a preview, after setting the preview widget, you connect to the GtkFileChooser::update-preview signal, and call gtk_file_chooser_get_preview_filename() or gtk_file_chooser_get_preview_uri() on each change. If you can display a preview of the new file, update your widget and set the preview active using gtk_file_chooser_set_preview_widget_active(). Otherwise, set the preview inactive.

    When there is no application-supplied preview widget, or the application-supplied preview widget is not active, the file chooser will display no preview at all.

    Declaration

    Swift

    @inlinable
    func set<WidgetT>(previewWidget: WidgetT) where WidgetT : WidgetProtocol
  • setPreviewWidget(active:) Extension method

    Sets whether the preview widget set by gtk_file_chooser_set_preview_widget() should be shown for the current filename. When active is set to false, the file chooser may display an internally generated preview of the current file or it may display no preview at all. See gtk_file_chooser_set_preview_widget() for more details.

    Declaration

    Swift

    @inlinable
    func setPreviewWidget(active: Bool)
  • set(selectMultiple:) Extension method

    Sets whether multiple files can be selected in the file selector. This is only relevant if the action is set to be GTK_FILE_CHOOSER_ACTION_OPEN or GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.

    Declaration

    Swift

    @inlinable
    func set(selectMultiple: Bool)
  • set(showHidden:) Extension method

    Sets whether hidden files and folders are displayed in the file selector.

    Declaration

    Swift

    @inlinable
    func set(showHidden: Bool)
  • set(uri:) Extension method

    Sets the file referred to by uri as the current file for the file chooser, by changing to the URI’s parent folder and actually selecting the URI in the list. If the chooser is GTK_FILE_CHOOSER_ACTION_SAVE mode, the URI’s base name will also appear in the dialog’s file name entry.

    Note that the URI must exist, or nothing will be done except for the directory change.

    You should use this function only when implementing a save dialog for which you already have a file name to which the user may save. For example, when the user opens an existing file and then does Save As… to save a copy or a modified version. If you don’t have a file name already — for example, if the user just created a new file and is saving it for the first time, do not call this function. Instead, use something similar to this: (C Language Example):

    if (document_is_new)
      {
        // the user just created a new document
        gtk_file_chooser_set_current_name (chooser, "Untitled document");
      }
    else
      {
        // the user edited an existing document
        gtk_file_chooser_set_uri (chooser, existing_uri);
      }
    

    In the first case, the file chooser will present the user with useful suggestions as to where to save his new file. In the second case, the file’s existing location is already known, so the file chooser will use it.

    Declaration

    Swift

    @inlinable
    func set(uri: UnsafePointer<CChar>!) -> Bool
  • Sets whether the file chooser should display a stock label with the name of the file that is being previewed; the default is true. Applications that want to draw the whole preview area themselves should set this to false and display the name themselves in their preview widget.

    See also: gtk_file_chooser_set_preview_widget()

    Declaration

    Swift

    @inlinable
    func setUsePreviewLabel(useLabel: Bool)
  • unselectAll() Extension method

    Unselects all the files in the current folder of a file chooser.

    Declaration

    Swift

    @inlinable
    func unselectAll()
  • unselect(file:) Extension method

    Unselects the file referred to by file. If the file is not in the current directory, does not exist, or is otherwise not currently selected, does nothing.

    Declaration

    Swift

    @inlinable
    func unselect<FileT>(file: FileT) where FileT : FileProtocol
  • unselect(filename:) Extension method

    Unselects a currently selected filename. If the filename is not in the current directory, does not exist, or is otherwise not currently selected, does nothing.

    Declaration

    Swift

    @inlinable
    func unselect(filename: UnsafePointer<CChar>!)
  • unselect(uri:) Extension method

    Unselects the file referred to by uri. If the file is not in the current directory, does not exist, or is otherwise not currently selected, does nothing.

    Declaration

    Swift

    @inlinable
    func unselect(uri: UnsafePointer<CChar>!)
  • action Extension method

    Undocumented

    Declaration

    Swift

    @inlinable
    var action: GtkFileChooserAction { get nonmutating set }
  • createFolders Extension method

    Gets whether file choser will offer to create new folders. See gtk_file_chooser_set_create_folders().

    Declaration

    Swift

    @inlinable
    var createFolders: Bool { get nonmutating set }
  • currentFolder Extension method

    Gets the current folder of chooser as a local filename. See gtk_file_chooser_set_current_folder().

    Note that this is the folder that the file chooser is currently displaying (e.g. “/home/username/Documents”), which is not the same as the currently-selected folder if the chooser is in GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER mode (e.g. “/home/username/Documents/selected-folder/”. To get the currently-selected folder in that mode, use gtk_file_chooser_get_uri() as the usual way to get the selection.

    Declaration

    Swift

    @inlinable
    var currentFolder: String! { get nonmutating set }
  • currentFolderFile Extension method

    Gets the current folder of chooser as GFile. See gtk_file_chooser_get_current_folder_uri().

    Declaration

    Swift

    @inlinable
    var currentFolderFile: GIO.FileRef! { get nonmutating set }
  • currentFolderURI Extension method

    Gets the current folder of chooser as an URI. See gtk_file_chooser_set_current_folder_uri().

    Note that this is the folder that the file chooser is currently displaying (e.g. “file:///home/username/Documents”), which is not the same as the currently-selected folder if the chooser is in GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER mode (e.g. “file:///home/username/Documents/selected-folder/”. To get the currently-selected folder in that mode, use gtk_file_chooser_get_uri() as the usual way to get the selection.

    Declaration

    Swift

    @inlinable
    var currentFolderURI: String! { get nonmutating set }
  • currentName Extension method

    Gets the current name in the file selector, as entered by the user in the text entry for “Name”.

    This is meant to be used in save dialogs, to get the currently typed filename when the file itself does not exist yet. For example, an application that adds a custom extra widget to the file chooser for “file format” may want to change the extension of the typed filename based on the chosen format, say, from “.jpg” to “.png”.

    Declaration

    Swift

    @inlinable
    var currentName: String! { get nonmutating set }
  • doOverwriteConfirmation Extension method

    Queries whether a file chooser is set to confirm for overwriting when the user types a file name that already exists.

    Declaration

    Swift

    @inlinable
    var doOverwriteConfirmation: Bool { get nonmutating set }
  • extraWidget Extension method

    Gets the current extra widget; see gtk_file_chooser_set_extra_widget().

    Declaration

    Swift

    @inlinable
    var extraWidget: WidgetRef! { get nonmutating set }
  • file Extension method

    Gets the GFile for the currently selected file in the file selector. If multiple files are selected, one of the files will be returned at random.

    If the file chooser is in folder mode, this function returns the selected folder.

    Declaration

    Swift

    @inlinable
    var file: GIO.FileRef! { get nonmutating set }
  • filename Extension method

    Gets the filename for the currently selected file in the file selector. The filename is returned as an absolute path. If multiple files are selected, one of the filenames will be returned at random.

    If the file chooser is in folder mode, this function returns the selected folder.

    Declaration

    Swift

    @inlinable
    var filename: String! { get nonmutating set }
  • filenames Extension method

    Lists all the selected files and subfolders in the current folder of chooser. The returned names are full absolute paths. If files in the current folder cannot be represented as local filenames they will be ignored. (See gtk_file_chooser_get_uris())

    Declaration

    Swift

    @inlinable
    var filenames: GLib.SListRef! { get }
  • files Extension method

    Lists all the selected files and subfolders in the current folder of chooser as GFile. An internal function, see gtk_file_chooser_get_uris().

    Declaration

    Swift

    @inlinable
    var files: GLib.SListRef! { get }
  • filter Extension method

    Undocumented

    Declaration

    Swift

    @inlinable
    var filter: FileFilterRef! { get nonmutating set }
  • localOnly Extension method

    Gets whether only local files can be selected in the file selector. See gtk_file_chooser_set_local_only()

    Declaration

    Swift

    @inlinable
    var localOnly: Bool { get nonmutating set }
  • previewFile Extension method

    Gets the GFile that should be previewed in a custom preview Internal function, see gtk_file_chooser_get_preview_uri().

    Declaration

    Swift

    @inlinable
    var previewFile: GIO.FileRef! { get }
  • previewFilename Extension method

    Gets the filename that should be previewed in a custom preview widget. See gtk_file_chooser_set_preview_widget().

    Declaration

    Swift

    @inlinable
    var previewFilename: String! { get }
  • previewURI Extension method

    Gets the URI that should be previewed in a custom preview widget. See gtk_file_chooser_set_preview_widget().

    Declaration

    Swift

    @inlinable
    var previewURI: String! { get }
  • previewWidget Extension method

    Gets the current preview widget; see gtk_file_chooser_set_preview_widget().

    Declaration

    Swift

    @inlinable
    var previewWidget: WidgetRef! { get nonmutating set }
  • previewWidgetActive Extension method

    Gets whether the preview widget set by gtk_file_chooser_set_preview_widget() should be shown for the current filename. See gtk_file_chooser_set_preview_widget_active().

    Declaration

    Swift

    @inlinable
    var previewWidgetActive: Bool { get nonmutating set }
  • selectMultiple Extension method

    Gets whether multiple files can be selected in the file selector. See gtk_file_chooser_set_select_multiple().

    Declaration

    Swift

    @inlinable
    var selectMultiple: Bool { get nonmutating set }
  • showHidden Extension method

    Gets whether hidden files and folders are displayed in the file selector. See gtk_file_chooser_set_show_hidden().

    Declaration

    Swift

    @inlinable
    var showHidden: Bool { get nonmutating set }
  • uri Extension method

    Gets the URI for the currently selected file in the file selector. If multiple files are selected, one of the filenames will be returned at random.

    If the file chooser is in folder mode, this function returns the selected folder.

    Declaration

    Swift

    @inlinable
    var uri: String! { get nonmutating set }
  • uris Extension method

    Lists all the selected files and subfolders in the current folder of chooser. The returned names are full absolute URIs.

    Declaration

    Swift

    @inlinable
    var uris: GLib.SListRef! { get }
  • usePreviewLabel Extension method

    Gets whether a stock label should be drawn with the name of the previewed file. See gtk_file_chooser_set_use_preview_label().

    Declaration

    Swift

    @inlinable
    var usePreviewLabel: Bool { get nonmutating set }