GtkFileChooser
File chooser interface used by #GtkFileChooserWidget and #GtkFileChooserDialog.
#GtkFileChooser is an interface that can be implemented by file
selection widgets. In GTK+, the main objects that implement
this interface are #GtkFileChooserWidget and
#GtkFileChooserDialog. 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.
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.
Sample Usage
{
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)
gdk_pixbuf_unref (pixbuf);
gtk_file_chooser_set_preview_widget_active (file_chooser, have_preview);
}
#GtkFileChooserDialog, #GtkFileChooserWidget
@filechooser: the object which received the signal.
@filechooser: the object which received the signal.
@filechooser: the object which received the signal.
@filechooser: the object which received the signal.
Describes whether a #GtkFileChooser is being used to open
existing files or to save to a possibly new file.
@GTK_FILE_CHOOSER_ACTION_OPEN: Indicates open mode. The file chooser
will only let the user pick an existing file.
@GTK_FILE_CHOOSER_ACTION_SAVE: Indicates save mode. The file chooser
will let the user pick an existing file, or type in a new
filename.
@GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER: Indicates an Open mode for
selecting folders. The file chooser will let the user pick an
existing folder.
@GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER: Indicates a mode for creating a
new folder. The file chooser will let the user name an existing or
new folder.
Used to get the #GError quark for #GtkFileChooser errors.
These identify the various errors that can occur while calling
#GtkFileChooser functions.
@GTK_FILE_CHOOSER_ERROR_NONEXISTENT: Indicates that a file does not exist.
@GTK_FILE_CHOOSER_ERROR_BAD_FILENAME: Indicates a malformed filename.
@Returns:
@chooser:
@action:
@chooser:
@Returns:
@chooser:
@local_only:
@files_only:
@chooser:
@Returns:
@chooser:
@select_multiple:
@chooser:
@Returns:
@chooser:
@name:
@chooser:
@Returns:
@chooser:
@filename:
@chooser:
@filename:
@chooser:
@filename:
@chooser:
@chooser:
@chooser:
@Returns:
@chooser:
@filename:
@chooser:
@Returns:
@chooser:
@Returns:
@chooser:
@uri:
@chooser:
@uri:
@chooser:
@uri:
@chooser:
@Returns:
@chooser:
@uri:
@chooser:
@Returns:
@chooser:
@preview_widget:
@chooser:
@Returns:
@chooser:
@active:
@chooser:
@Returns:
@chooser:
@use_label:
@chooser:
@Returns:
@chooser:
@Returns:
@file_chooser:
@chooser:
@Returns:
@file_chooser:
@chooser:
@extra_widget:
@chooser:
@Returns:
@chooser:
@filter:
@chooser:
@filter:
@chooser:
@Returns:
@chooser:
@filter:
@chooser:
@Returns:
@chooser:
@folder:
@error:
@Returns:
@chooser:
@folder:
@error:
@Returns:
@chooser:
@Returns:
@chooser:
@uri:
@error:
@Returns:
@folder:
@chooser:
@uri:
@error:
@Returns:
@folder:
@chooser:
@Returns: