gtk2/docs/reference/gtk/tmpl/gtkfilechooser.sgml

671 lines
11 KiB
Plaintext
Raw Normal View History

<!-- ##### SECTION Title ##### -->
GtkFileChooser
<!-- ##### SECTION Short_Description ##### -->
File chooser interface used by #GtkFileChooserWidget and #GtkFileChooserDialog.
<!-- ##### SECTION Long_Description ##### -->
<para>
#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.
</para>
<refsect2 id="gtkfilechooser-preview">
<title>Adding a Preview Widget</title>
<para>
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.
</para>
<para>
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.
</para>
<example id="example-gtkfilechooser-preview">
<title>Sample Usage</title>
<programlisting>
{
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);
}
</programlisting>
</example>
</refsect2>
<refsect2 id="gtkfilechooser-extra">
<title>Adding Extra Widgets</title>
<para>
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.
</para>
<example id="example-gtkfilechooser-extra">
<title>Sample Usage</title>
<programlisting>
{
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);
}
</programlisting>
</example>
<note>
<para>
If you want to set more than one extra widget in the file
chooser, you can a container such as a GtkVBox or a GtkTable
and include your widgets in it. Then, set the container as
the whole extra widget.
</para>
</note>
</refsect2>
<!-- ##### SECTION See_Also ##### -->
<para>
#GtkFileChooserDialog, #GtkFileChooserWidget
</para>
<!-- ##### STRUCT GtkFileChooser ##### -->
<para>
</para>
<!-- ##### SIGNAL GtkFileChooser::current-folder-changed ##### -->
<para>
</para>
@filechooser: the object which received the signal.
<!-- ##### SIGNAL GtkFileChooser::file-activated ##### -->
<para>
</para>
@filechooser: the object which received the signal.
<!-- ##### SIGNAL GtkFileChooser::selection-changed ##### -->
<para>
</para>
@filechooser: the object which received the signal.
<!-- ##### SIGNAL GtkFileChooser::update-preview ##### -->
<para>
</para>
@filechooser: the object which received the signal.
<!-- ##### ARG GtkFileChooser:action ##### -->
<para>
</para>
<!-- ##### ARG GtkFileChooser:extra-widget ##### -->
<para>
</para>
<!-- ##### ARG GtkFileChooser:file-system-backend ##### -->
<para>
</para>
<!-- ##### ARG GtkFileChooser:filter ##### -->
<para>
</para>
<!-- ##### ARG GtkFileChooser:local-only ##### -->
<para>
</para>
<!-- ##### ARG GtkFileChooser:preview-widget ##### -->
<para>
</para>
<!-- ##### ARG GtkFileChooser:preview-widget-active ##### -->
<para>
</para>
<!-- ##### ARG GtkFileChooser:select-multiple ##### -->
<para>
</para>
<!-- ##### ARG GtkFileChooser:show-hidden ##### -->
<para>
</para>
<!-- ##### ARG GtkFileChooser:use-preview-label ##### -->
<para>
</para>
<!-- ##### ENUM GtkFileChooserAction ##### -->
<para>
Describes whether a #GtkFileChooser is being used to open
existing files or to save to a possibly new file.
</para>
@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.
<!-- ##### MACRO GTK_FILE_CHOOSER_ERROR ##### -->
<para>
Used to get the #GError quark for #GtkFileChooser errors.
</para>
<!-- ##### ENUM GtkFileChooserError ##### -->
<para>
These identify the various errors that can occur while calling
#GtkFileChooser functions.
</para>
@GTK_FILE_CHOOSER_ERROR_NONEXISTENT: Indicates that a file does not exist.
@GTK_FILE_CHOOSER_ERROR_BAD_FILENAME: Indicates a malformed filename.
<!-- ##### FUNCTION gtk_file_chooser_error_quark ##### -->
<para>
</para>
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_action ##### -->
<para>
</para>
@chooser:
@action:
<!-- ##### FUNCTION gtk_file_chooser_get_action ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_local_only ##### -->
<para>
</para>
@chooser:
@local_only:
<!-- # Unused Parameters # -->
@files_only:
<!-- ##### FUNCTION gtk_file_chooser_get_local_only ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_select_multiple ##### -->
<para>
</para>
@chooser:
@select_multiple:
<!-- ##### FUNCTION gtk_file_chooser_get_select_multiple ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_current_name ##### -->
<para>
</para>
@chooser:
@name:
<!-- ##### FUNCTION gtk_file_chooser_get_filename ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_filename ##### -->
<para>
</para>
@chooser:
@filename:
<!-- ##### FUNCTION gtk_file_chooser_select_filename ##### -->
<para>
</para>
@chooser:
@filename:
<!-- ##### FUNCTION gtk_file_chooser_unselect_filename ##### -->
<para>
</para>
@chooser:
@filename:
<!-- ##### FUNCTION gtk_file_chooser_select_all ##### -->
<para>
</para>
@chooser:
<!-- ##### FUNCTION gtk_file_chooser_unselect_all ##### -->
<para>
</para>
@chooser:
<!-- ##### FUNCTION gtk_file_chooser_get_filenames ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_current_folder ##### -->
<para>
</para>
@chooser:
@filename:
<!-- ##### FUNCTION gtk_file_chooser_get_current_folder ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_get_uri ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_uri ##### -->
<para>
</para>
@chooser:
@uri:
<!-- ##### FUNCTION gtk_file_chooser_select_uri ##### -->
<para>
</para>
@chooser:
@uri:
<!-- ##### FUNCTION gtk_file_chooser_unselect_uri ##### -->
<para>
</para>
@chooser:
@uri:
<!-- ##### FUNCTION gtk_file_chooser_get_uris ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_current_folder_uri ##### -->
<para>
</para>
@chooser:
@uri:
<!-- ##### FUNCTION gtk_file_chooser_get_current_folder_uri ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_preview_widget ##### -->
<para>
</para>
@chooser:
@preview_widget:
<!-- ##### FUNCTION gtk_file_chooser_get_preview_widget ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_preview_widget_active ##### -->
<para>
</para>
@chooser:
@active:
<!-- ##### FUNCTION gtk_file_chooser_get_preview_widget_active ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_use_preview_label ##### -->
<para>
</para>
@chooser:
@use_label:
<!-- ##### FUNCTION gtk_file_chooser_get_use_preview_label ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_get_preview_filename ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- # Unused Parameters # -->
@file_chooser:
<!-- ##### FUNCTION gtk_file_chooser_get_preview_uri ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- # Unused Parameters # -->
@file_chooser:
<!-- ##### FUNCTION gtk_file_chooser_set_extra_widget ##### -->
<para>
</para>
@chooser:
@extra_widget:
<!-- ##### FUNCTION gtk_file_chooser_get_extra_widget ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_add_filter ##### -->
<para>
</para>
@chooser:
@filter:
<!-- ##### FUNCTION gtk_file_chooser_remove_filter ##### -->
<para>
</para>
@chooser:
@filter:
<!-- ##### FUNCTION gtk_file_chooser_list_filters ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_set_filter ##### -->
<para>
</para>
@chooser:
@filter:
<!-- ##### FUNCTION gtk_file_chooser_get_filter ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_add_shortcut_folder ##### -->
<para>
</para>
@chooser:
@folder:
@error:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_remove_shortcut_folder ##### -->
<para>
</para>
@chooser:
@folder:
@error:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_list_shortcut_folders ##### -->
<para>
</para>
@chooser:
@Returns:
<!-- ##### FUNCTION gtk_file_chooser_add_shortcut_folder_uri ##### -->
<para>
</para>
@chooser:
@uri:
@error:
@Returns:
<!-- # Unused Parameters # -->
@folder:
<!-- ##### FUNCTION gtk_file_chooser_remove_shortcut_folder_uri ##### -->
<para>
</para>
@chooser:
@uri:
@error:
@Returns:
<!-- # Unused Parameters # -->
@folder:
<!-- ##### FUNCTION gtk_file_chooser_list_shortcut_folder_uris ##### -->
<para>
</para>
@chooser:
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gtk-docs.sgml" "book" "refentry")
End:
-->