X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkfilechooser.c;h=8e2d64da4c87e8e2d37b5a97f921d028a3c0cf1d;hb=d97861bd8b338c3d25d7ffb5496edee9eee9bfbb;hp=c64678aa20e9ffc51411e9e2928f7420adfaadcd;hpb=7447ef0fc24dc046b92b55e75c02ff0725b85680;p=~andy%2Fgtk diff --git a/gtk/gtkfilechooser.c b/gtk/gtkfilechooser.c index c64678aa2..8e2d64da4 100644 --- a/gtk/gtkfilechooser.c +++ b/gtk/gtkfilechooser.c @@ -13,9 +13,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #include "config.h" @@ -25,7 +23,6 @@ #include "gtktypebuiltins.h" #include "gtkprivate.h" #include "gtkmarshalers.h" -#include "gtkalias.h" /** @@ -44,7 +41,7 @@ * * #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 taht these shortcuts come from various + * may be a bit confusing at first that these shortcuts come from various * sources and in various flavours, so lets explain the terminology here: * * @@ -82,7 +79,7 @@ * 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 + * Please see the GLib documentation for more details about this * variable. * * This means that while you can pass the result of @@ -179,7 +176,7 @@ * * * 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 + * 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. * @@ -223,18 +220,25 @@ * * up-folder * - * AltUp + * AltUp; + * AltShiftUp * * Both the individual Up key and the numeric * keypad's Up key are supported. - * - * ; + * ; * Backspace * * * * down-folder - * AltDown + * + * AltDown; + * AltShiftDown + * + * Both the individual Down key and the numeric + * keypad's Down key are supported. + * + * * * * home-folder @@ -255,22 +259,20 @@ * You can change these defaults to something else. For * example, to add a Shift modifier to a few * of the default bindings, you can include the following - * fragment in your .gtkrc-3.0 file: + * fragment in your .config/gtk-3.0/gtk.css file: * * - * binding "my-own-gtkfilechooser-bindings" { - * bind "<Alt><Shift>Up" { - * "up-folder" () - * } - * bind "<Alt><Shift>Down" { - * "down-folder" () - * } - * bind "<Alt><Shift>Home" { - * "home-folder" () - * } + * @binding-set MyOwnFilechooserBindings + * { + * bind "<Alt><Shift>Up" { "up-folder" () } + * bind "<Alt><Shift>Down" { "down-folder" () } + * bind "<Alt><Shift>Home" { "home-folder" () } * } * - * class "GtkFileChooserDefault" binding "my-own-gtkfilechooser-bindings" + * GtkFileChooserDefault + * { + * gtk-key-bindings: MyOwnFilechooserBindings + * } * * * @@ -330,15 +332,17 @@ * frequently. You could then create an * Alt M * shortcut by including the following in your - * .gtkrc-3.0: + * .config/gtk-3.0/gtk.css: * - * binding "misc-shortcut" { - * bind "<Alt>M" { - * "location-popup" ("/home/username/misc") - * } + * @binding-set MiscShortcut + * { + * bind "<Alt>M" { "location-popup" ("/home/username/misc") } * } * - * class "GtkFileChooserDefault" binding "misc-shortcut" + * GtkFileChooserDefault + * { + * gtk-key-bindings: MiscShortcut + * } * * * @@ -504,11 +508,7 @@ * * * -<<<<<<< HEAD * bookmark_indes : -======= - * bookmark_index : ->>>>>>> native-layout-incubator * * * index of the bookmark to switch to; the indices start at 0. @@ -529,26 +529,8 @@ */ -static void gtk_file_chooser_class_init (gpointer g_iface); - -GType -gtk_file_chooser_get_type (void) -{ - static GType file_chooser_type = 0; - - if (!file_chooser_type) - { - file_chooser_type = g_type_register_static_simple (G_TYPE_INTERFACE, - I_("GtkFileChooser"), - sizeof (GtkFileChooserIface), - (GClassInitFunc) gtk_file_chooser_class_init, - 0, NULL, 0); - - g_type_interface_add_prerequisite (file_chooser_type, GTK_TYPE_WIDGET); - } - - return file_chooser_type; -} +typedef GtkFileChooserIface GtkFileChooserInterface; +G_DEFINE_INTERFACE (GtkFileChooser, gtk_file_chooser, GTK_TYPE_WIDGET); static gboolean confirm_overwrite_accumulator (GSignalInvocationHint *ihint, @@ -567,12 +549,12 @@ confirm_overwrite_accumulator (GSignalInvocationHint *ihint, } static void -gtk_file_chooser_class_init (gpointer g_iface) +gtk_file_chooser_default_init (GtkFileChooserInterface *iface) { - GType iface_type = G_TYPE_FROM_INTERFACE (g_iface); + GType iface_type = G_TYPE_FROM_INTERFACE (iface); /** - * GtkFileChooser::current-folder-changed + * GtkFileChooser::current-folder-changed: * @chooser: the object which received the signal. * * This signal is emitted when the current folder in a #GtkFileChooser @@ -598,7 +580,7 @@ gtk_file_chooser_class_init (gpointer g_iface) G_TYPE_NONE, 0); /** - * GtkFileChooser::selection-changed + * GtkFileChooser::selection-changed: * @chooser: the object which received the signal. * * This signal is emitted when there is a change in the set of selected files @@ -625,7 +607,7 @@ gtk_file_chooser_class_init (gpointer g_iface) G_TYPE_NONE, 0); /** - * GtkFileChooser::update-preview + * GtkFileChooser::update-preview: * @chooser: the object which received the signal. * * This signal is emitted when the preview in a file chooser should be @@ -659,7 +641,7 @@ gtk_file_chooser_class_init (gpointer g_iface) G_TYPE_NONE, 0); /** - * GtkFileChooser::file-activated + * GtkFileChooser::file-activated: * @chooser: the object which received the signal. * * This signal is emitted when the user "activates" a file in the file @@ -758,63 +740,57 @@ gtk_file_chooser_class_init (gpointer g_iface) _gtk_marshal_ENUM__VOID, GTK_TYPE_FILE_CHOOSER_CONFIRMATION, 0); - g_object_interface_install_property (g_iface, + g_object_interface_install_property (iface, g_param_spec_enum ("action", P_("Action"), P_("The type of operation that the file selector is performing"), GTK_TYPE_FILE_CHOOSER_ACTION, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_PARAM_READWRITE)); - g_object_interface_install_property (g_iface, - g_param_spec_string ("file-system-backend", - P_("File System Backend"), - P_("Name of file system backend to use"), - NULL, - GTK_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); - g_object_interface_install_property (g_iface, + g_object_interface_install_property (iface, g_param_spec_object ("filter", P_("Filter"), P_("The current filter for selecting which files are displayed"), GTK_TYPE_FILE_FILTER, GTK_PARAM_READWRITE)); - g_object_interface_install_property (g_iface, + g_object_interface_install_property (iface, g_param_spec_boolean ("local-only", P_("Local Only"), P_("Whether the selected file(s) should be limited to local file: URLs"), TRUE, GTK_PARAM_READWRITE)); - g_object_interface_install_property (g_iface, + g_object_interface_install_property (iface, g_param_spec_object ("preview-widget", P_("Preview widget"), P_("Application supplied widget for custom previews."), GTK_TYPE_WIDGET, GTK_PARAM_READWRITE)); - g_object_interface_install_property (g_iface, + g_object_interface_install_property (iface, g_param_spec_boolean ("preview-widget-active", P_("Preview Widget Active"), P_("Whether the application supplied widget for custom previews should be shown."), TRUE, GTK_PARAM_READWRITE)); - g_object_interface_install_property (g_iface, + g_object_interface_install_property (iface, g_param_spec_boolean ("use-preview-label", P_("Use Preview Label"), P_("Whether to display a stock label with the name of the previewed file."), TRUE, GTK_PARAM_READWRITE)); - g_object_interface_install_property (g_iface, + g_object_interface_install_property (iface, g_param_spec_object ("extra-widget", P_("Extra widget"), P_("Application supplied widget for extra options."), GTK_TYPE_WIDGET, GTK_PARAM_READWRITE)); - g_object_interface_install_property (g_iface, + g_object_interface_install_property (iface, g_param_spec_boolean ("select-multiple", P_("Select Multiple"), P_("Whether to allow multiple files to be selected"), FALSE, GTK_PARAM_READWRITE)); - - g_object_interface_install_property (g_iface, + + g_object_interface_install_property (iface, g_param_spec_boolean ("show-hidden", P_("Show Hidden"), P_("Whether the hidden files and folders should be displayed"), @@ -830,7 +806,7 @@ gtk_file_chooser_class_init (gpointer g_iface) * * Since: 2.8 */ - g_object_interface_install_property (g_iface, + g_object_interface_install_property (iface, g_param_spec_boolean ("do-overwrite-confirmation", P_("Do overwrite confirmation"), P_("Whether a file chooser in save mode " @@ -847,9 +823,9 @@ gtk_file_chooser_class_init (gpointer g_iface) * * Since: 2.18 */ - g_object_interface_install_property (g_iface, + g_object_interface_install_property (iface, g_param_spec_boolean ("create-folders", - P_("Allow folders creation"), + P_("Allow folder creation"), P_("Whether a file chooser not in open mode " "will offer the user to create new folders."), TRUE, @@ -944,7 +920,7 @@ gtk_file_chooser_set_local_only (GtkFileChooser *chooser, /** * gtk_file_chooser_get_local_only: - * @chooser: a #GtkFileChoosre + * @chooser: a #GtkFileChooser * * Gets whether only local files can be selected in the * file selector. See gtk_file_chooser_set_local_only() @@ -1056,13 +1032,14 @@ gtk_file_chooser_get_create_folders (GtkFileChooser *chooser) * @chooser: a #GtkFileChooser * * Gets the filename for the currently selected file in - * the file selector. If multiple files are selected, - * one of the filenames will be returned at random. + * 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. * - * Return value: The currently selected filename, or %NULL + * Return value: (type filename): The currently selected filename, or %NULL * if no file is selected, or the selected file can't * be represented with a local filename. Free with g_free(). * @@ -1090,33 +1067,28 @@ gtk_file_chooser_get_filename (GtkFileChooser *chooser) /** * gtk_file_chooser_set_filename: * @chooser: a #GtkFileChooser - * @filename: the filename to set as current + * @filename: (type filename): the filename to set as current * - * 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. 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(). + * 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. * - * If you are implementing a File/Save As... 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 File/Save As... on it. 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: + * You should use this function only when implementing a File/Save + * As... 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 File/Save As... on it 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: * |[ * if (document_is_new) * { * /* the user just created a new document */ - * gtk_file_chooser_set_current_folder (chooser, default_folder_for_saving); * gtk_file_chooser_set_current_name (chooser, "Untitled document"); * } * else @@ -1125,9 +1097,12 @@ gtk_file_chooser_get_filename (GtkFileChooser *chooser) * 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. * - * Return value: %TRUE if both the folder could be changed and the file was - * selected successfully, %FALSE otherwise. + * Return value: Not useful. * * Since: 2.4 **/ @@ -1144,14 +1119,15 @@ gtk_file_chooser_set_filename (GtkFileChooser *chooser, /** * gtk_file_chooser_select_filename: * @chooser: a #GtkFileChooser - * @filename: the filename to select + * @filename: (type filename): the filename to select * * 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. * - * Return value: %TRUE if both the folder could be changed and the file was - * selected successfully, %FALSE otherwise. + * Return value: Not useful. + * + * See also: gtk_file_chooser_set_filename() * * Since: 2.4 **/ @@ -1175,7 +1151,7 @@ gtk_file_chooser_select_filename (GtkFileChooser *chooser, /** * gtk_file_chooser_unselect_filename: * @chooser: a #GtkFileChooser - * @filename: the filename to unselect + * @filename: (type filename): the filename to unselect * * Unselects a currently selected filename. If the filename * is not in the current directory, does not exist, or @@ -1230,9 +1206,10 @@ files_to_strings (GSList *files, * folder cannot be represented as local filenames they will be ignored. (See * gtk_file_chooser_get_uris()) * - * Return value: (element-type utf8) (transfer full): a #GSList containing the filenames of all selected - * files and subfolders in the current folder. Free the returned list - * with g_slist_free(), and the filenames with g_free(). + * Return value: (element-type filename) (transfer full): a #GSList + * containing the filenames of all selected files and subfolders in + * the current folder. Free the returned list with g_slist_free(), + * and the filenames with g_free(). * * Since: 2.4 **/ @@ -1255,14 +1232,17 @@ gtk_file_chooser_get_filenames (GtkFileChooser *chooser) /** * gtk_file_chooser_set_current_folder: * @chooser: a #GtkFileChooser - * @filename: the full path of the new current folder + * @filename: (type filename): the full path of the new current folder * * 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. * - * Return value: %TRUE if the folder could be changed successfully, %FALSE - * otherwise. + * In general, you should not use this function. See the section on setting up a file + * chooser dialog for the rationale behind this. + * + * Return value: Not useful. * * Since: 2.4 **/ @@ -1293,15 +1273,16 @@ gtk_file_chooser_set_current_folder (GtkFileChooser *chooser, * 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_SELECT_FOLDER mode + * %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. * - * Return value: the full path of the current folder, or %NULL if the current - * path cannot be represented as a local filename. Free with g_free(). This - * function will also return %NULL if the file chooser was unable to load the - * last folder that was requested from it; for example, as would be for calling + * Return value: (type filename): the full path of the current folder, + * or %NULL if the current path cannot be represented as a local + * filename. Free with g_free(). This function will also return + * %NULL if the file chooser was unable to load the last folder that + * was requested from it; for example, as would be for calling * gtk_file_chooser_set_current_folder() on a nonexistent folder. * * Since: 2.4 @@ -1327,12 +1308,13 @@ gtk_file_chooser_get_current_folder (GtkFileChooser *chooser) /** * gtk_file_chooser_set_current_name: * @chooser: a #GtkFileChooser - * @name: the filename to use, as a UTF-8 string + * @name: (type filename): the filename to use, as a UTF-8 string * * 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. + * 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. @@ -1395,25 +1377,20 @@ gtk_file_chooser_get_uri (GtkFileChooser *chooser) * 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. * - * If the URI isn't in the current folder of @chooser, then the current folder - * of @chooser will be changed to the folder containing @uri. This is equivalent - * to a sequence of gtk_file_chooser_unselect_all() followed by - * gtk_file_chooser_select_uri(). - * * Note that the URI must exist, or nothing will be done except for the * directory change. - * If you are implementing a File/Save As... 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 File/Save As... on it. 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: + * + * You should use this function only when implementing a File/Save + * As... dialog for which you already have a file name to which + * the user may save. For example, whenthe user opens an existing file and then + * does File/Save As... on it 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: * |[ * if (document_is_new) * { * /* the user just created a new document */ - * gtk_file_chooser_set_current_folder_uri (chooser, default_folder_for_saving); * gtk_file_chooser_set_current_name (chooser, "Untitled document"); * } * else @@ -1423,8 +1400,12 @@ gtk_file_chooser_get_uri (GtkFileChooser *chooser) * } * ]| * - * Return value: %TRUE if both the folder could be changed and the URI was - * selected successfully, %FALSE otherwise. + * + * 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. + * + * Return value: Not useful. * * Since: 2.4 **/ @@ -1447,8 +1428,7 @@ gtk_file_chooser_set_uri (GtkFileChooser *chooser, * file in the current folder of @chooser, then the current folder of * @chooser will be changed to the folder containing @filename. * - * Return value: %TRUE if both the folder could be changed and the URI was - * selected successfully, %FALSE otherwise. + * Return value: Not useful. * * Since: 2.4 **/ @@ -1565,6 +1545,10 @@ gtk_file_chooser_get_uris (GtkFileChooser *chooser) * 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. + * * Return value: %TRUE if the folder could be changed successfully, %FALSE * otherwise. * @@ -1590,14 +1574,14 @@ gtk_file_chooser_set_current_folder_uri (GtkFileChooser *chooser, /** * gtk_file_chooser_get_current_folder_uri: * @chooser: a #GtkFileChooser - * + * * 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_SELECT_FOLDER mode + * %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. @@ -1632,7 +1616,7 @@ gtk_file_chooser_get_current_folder_uri (GtkFileChooser *chooser) * @chooser: a #GtkFileChooser * @file: the #GFile for the new folder * @error: (allow-none): location to store error, or %NULL. - * + * * Sets the current folder for @chooser from a #GFile. * Internal function, see gtk_file_chooser_set_current_folder_uri(). * @@ -1656,11 +1640,11 @@ gtk_file_chooser_set_current_folder_file (GtkFileChooser *chooser, /** * gtk_file_chooser_get_current_folder_file: * @chooser: a #GtkFileChooser - * + * * Gets the current folder of @chooser as #GFile. * See gtk_file_chooser_get_current_folder_uri(). - * - * Return value: the #GFile for the current folder. + * + * Return value: (transfer full): the #GFile for the current folder. * * Since: 2.14 */ @@ -1669,7 +1653,7 @@ gtk_file_chooser_get_current_folder_file (GtkFileChooser *chooser) { g_return_val_if_fail (GTK_IS_FILE_CHOOSER (chooser), NULL); - return GTK_FILE_CHOOSER_GET_IFACE (chooser)->get_current_folder (chooser); + return GTK_FILE_CHOOSER_GET_IFACE (chooser)->get_current_folder (chooser); } /** @@ -1681,8 +1665,7 @@ gtk_file_chooser_get_current_folder_file (GtkFileChooser *chooser) * Selects the file referred to by @file. An internal function. See * _gtk_file_chooser_select_uri(). * - * Return value: %TRUE if both the folder could be changed and the path was - * selected successfully, %FALSE otherwise. + * Return value: Not useful. * * Since: 2.14 **/ @@ -1725,9 +1708,10 @@ gtk_file_chooser_unselect_file (GtkFileChooser *chooser, * Lists all the selected files and subfolders in the current folder of @chooser * as #GFile. An internal function, see gtk_file_chooser_get_uris(). * - * Return value: (element-type utf8) (transfer full): a #GSList containing a #GFile for each selected - * file and subfolder in the current folder. Free the returned list - * with g_slist_free(), and the files with g_object_unref(). + * Return value: (element-type GFile) (transfer full): a #GSList + * containing a #GFile for each selected file and subfolder in the + * current folder. Free the returned list with g_slist_free(), and + * the files with g_object_unref(). * * Since: 2.14 **/ @@ -1779,8 +1763,7 @@ gtk_file_chooser_get_files (GtkFileChooser *chooser) * } * ]| * - * Return value: %TRUE if both the folder could be changed and the file was - * selected successfully, %FALSE otherwise. + * Return value: Not useful. * * Since: 2.14 **/ @@ -1808,8 +1791,8 @@ gtk_file_chooser_set_file (GtkFileChooser *chooser, * If the file chooser is in folder mode, this function returns the selected * folder. * - * Returns: a selected #GFile. You own the returned file; use - * g_object_unref() to release it. + * Returns: (transfer full): a selected #GFile. You own the returned file; + * use g_object_unref() to release it. * * Since: 2.14 **/ @@ -1889,11 +1872,11 @@ gtk_file_chooser_set_preview_widget (GtkFileChooser *chooser, /** * gtk_file_chooser_get_preview_widget: * @chooser: a #GtkFileChooser - * + * * Gets the current preview widget; see * gtk_file_chooser_set_preview_widget(). - * - * Return value: the current preview widget, or %NULL + * + * Return value: (transfer none): the current preview widget, or %NULL * * Since: 2.4 **/ @@ -2011,12 +1994,12 @@ gtk_file_chooser_get_use_preview_label (GtkFileChooser *chooser) /** * gtk_file_chooser_get_preview_file: * @chooser: a #GtkFileChooser - * + * * Gets the #GFile that should be previewed in a custom preview * Internal function, see gtk_file_chooser_get_preview_uri(). - * - * Return value: the #GFile for the file to preview, or %NULL if no file - * is selected. Free with g_object_unref(). + * + * Return value: (transfer full): the #GFile for the file to preview, + * or %NULL if no file is selected. Free with g_object_unref(). * * Since: 2.14 **/ @@ -2085,8 +2068,8 @@ _gtk_file_chooser_remove_shortcut_folder (GtkFileChooser *chooser, * Gets the filename that should be previewed in a custom preview * widget. See gtk_file_chooser_set_preview_widget(). * - * Return value: the filename to preview, or %NULL if no file - * is selected, or if the selected file cannot be represented + * Return value: (type filename): the filename to preview, or %NULL if + * no file is selected, or if the selected file cannot be represented * as a local filename. Free with g_free() * * Since: 2.4 @@ -2160,11 +2143,11 @@ gtk_file_chooser_set_extra_widget (GtkFileChooser *chooser, /** * gtk_file_chooser_get_extra_widget: * @chooser: a #GtkFileChooser - * + * * Gets the current preview widget; see * gtk_file_chooser_set_extra_widget(). - * - * Return value: the current extra widget, or %NULL + * + * Return value: (transfer none): the current extra widget, or %NULL * * Since: 2.4 **/ @@ -2235,10 +2218,10 @@ gtk_file_chooser_remove_filter (GtkFileChooser *chooser, * Lists the current set of user-selectable filters; see * gtk_file_chooser_add_filter(), gtk_file_chooser_remove_filter(). * - * Return value: (element-type utf8) (transfer container): a #GSList containing the current set of - * user selectable filters. The contents of the list are - * owned by GTK+, but you must free the list itself with - * g_slist_free() when you are done with it. + * Return value: (element-type GtkFileFilter) (transfer container): a + * #GSList containing the current set of user selectable filters. The + * contents of the list are owned by GTK+, but you must free the list + * itself with g_slist_free() when you are done with it. * * Since: 2.4 **/ @@ -2277,10 +2260,10 @@ gtk_file_chooser_set_filter (GtkFileChooser *chooser, /** * gtk_file_chooser_get_filter: * @chooser: a #GtkFileChooser - * + * * Gets the current filter; see gtk_file_chooser_set_filter(). - * - * Return value: the current filter, or %NULL + * + * Return value: (transfer none): the current filter, or %NULL * * Since: 2.4 **/ @@ -2305,7 +2288,7 @@ gtk_file_chooser_get_filter (GtkFileChooser *chooser) /** * gtk_file_chooser_add_shortcut_folder: * @chooser: a #GtkFileChooser - * @folder: filename of the folder to add + * @folder: (type filename): filename of the folder to add * @error: (allow-none): location to store error, or %NULL * * Adds a folder to be displayed with the shortcut folders in a file chooser. @@ -2339,7 +2322,7 @@ gtk_file_chooser_add_shortcut_folder (GtkFileChooser *chooser, /** * gtk_file_chooser_remove_shortcut_folder: * @chooser: a #GtkFileChooser - * @folder: filename of the folder to remove + * @folder: (type filename): filename of the folder to remove * @error: (allow-none): location to store error, or %NULL * * Removes a folder from a file chooser's list of shortcut folders. @@ -2376,8 +2359,9 @@ gtk_file_chooser_remove_shortcut_folder (GtkFileChooser *chooser, * Queries the list of shortcut folders in the file chooser, as set by * gtk_file_chooser_add_shortcut_folder(). * - * Return value: (element-type utf8) (transfer full): A list of folder filenames, or %NULL if there are no shortcut - * folders. Free the returned list with g_slist_free(), and the filenames with + * Return value: (element-type filename) (transfer full): A list of + * folder filenames, or %NULL if there are no shortcut folders. Free + * the returned list with g_slist_free(), and the filenames with * g_free(). * * Since: 2.4 @@ -2473,9 +2457,9 @@ gtk_file_chooser_remove_shortcut_folder_uri (GtkFileChooser *chooser, * Queries the list of shortcut folders in the file chooser, as set by * gtk_file_chooser_add_shortcut_folder_uri(). * - * Return value: (element-type utf8) (transfer full): A list of folder URIs, or %NULL if there are no shortcut - * folders. Free the returned list with g_slist_free(), and the URIs with - * g_free(). + * Return value: (element-type utf8) (transfer full): A list of folder + * URIs, or %NULL if there are no shortcut folders. Free the returned + * list with g_slist_free(), and the URIs with g_free(). * * Since: 2.4 **/ @@ -2596,175 +2580,3 @@ gtk_file_chooser_get_do_overwrite_confirmation (GtkFileChooser *chooser) return do_overwrite_confirmation; } - -#if defined (G_OS_WIN32) && !defined (_WIN64) - -/* DLL ABI stability backward compatibility versions */ - -#undef gtk_file_chooser_get_filename - -gchar * -gtk_file_chooser_get_filename (GtkFileChooser *chooser) -{ - gchar *utf8_filename = gtk_file_chooser_get_filename_utf8 (chooser); - gchar *retval = g_locale_from_utf8 (utf8_filename, -1, NULL, NULL, NULL); - - g_free (utf8_filename); - - return retval; -} - -#undef gtk_file_chooser_set_filename - -gboolean -gtk_file_chooser_set_filename (GtkFileChooser *chooser, - const gchar *filename) -{ - gchar *utf8_filename = g_locale_to_utf8 (filename, -1, NULL, NULL, NULL); - gboolean retval = gtk_file_chooser_set_filename_utf8 (chooser, utf8_filename); - - g_free (utf8_filename); - - return retval; -} - -#undef gtk_file_chooser_select_filename - -gboolean -gtk_file_chooser_select_filename (GtkFileChooser *chooser, - const gchar *filename) -{ - gchar *utf8_filename = g_locale_to_utf8 (filename, -1, NULL, NULL, NULL); - gboolean retval = gtk_file_chooser_select_filename_utf8 (chooser, utf8_filename); - - g_free (utf8_filename); - - return retval; -} - -#undef gtk_file_chooser_unselect_filename - -void -gtk_file_chooser_unselect_filename (GtkFileChooser *chooser, - const char *filename) -{ - gchar *utf8_filename = g_locale_to_utf8 (filename, -1, NULL, NULL, NULL); - - gtk_file_chooser_unselect_filename_utf8 (chooser, utf8_filename); - g_free (utf8_filename); -} - -#undef gtk_file_chooser_get_filenames - -GSList * -gtk_file_chooser_get_filenames (GtkFileChooser *chooser) -{ - GSList *list = gtk_file_chooser_get_filenames_utf8 (chooser); - GSList *rover = list; - - while (rover) - { - gchar *tem = (gchar *) rover->data; - rover->data = g_locale_from_utf8 ((gchar *) rover->data, -1, NULL, NULL, NULL); - g_free (tem); - rover = rover->next; - } - - return list; -} - -#undef gtk_file_chooser_set_current_folder - -gboolean -gtk_file_chooser_set_current_folder (GtkFileChooser *chooser, - const gchar *filename) -{ - gchar *utf8_filename = g_locale_to_utf8 (filename, -1, NULL, NULL, NULL); - gboolean retval = gtk_file_chooser_set_current_folder_utf8 (chooser, utf8_filename); - - g_free (utf8_filename); - - return retval; -} - -#undef gtk_file_chooser_get_current_folder - -gchar * -gtk_file_chooser_get_current_folder (GtkFileChooser *chooser) -{ - gchar *utf8_folder = gtk_file_chooser_get_current_folder_utf8 (chooser); - gchar *retval = g_locale_from_utf8 (utf8_folder, -1, NULL, NULL, NULL); - - g_free (utf8_folder); - - return retval; -} - -#undef gtk_file_chooser_get_preview_filename - -char * -gtk_file_chooser_get_preview_filename (GtkFileChooser *chooser) -{ - char *utf8_filename = gtk_file_chooser_get_preview_filename_utf8 (chooser); - char *retval = g_locale_from_utf8 (utf8_filename, -1, NULL, NULL, NULL); - - g_free (utf8_filename); - - return retval; -} - -#undef gtk_file_chooser_add_shortcut_folder - -gboolean -gtk_file_chooser_add_shortcut_folder (GtkFileChooser *chooser, - const char *folder, - GError **error) -{ - char *utf8_folder = g_locale_to_utf8 (folder, -1, NULL, NULL, NULL); - gboolean retval = - gtk_file_chooser_add_shortcut_folder_utf8 (chooser, utf8_folder, error); - - g_free (utf8_folder); - - return retval; -} - -#undef gtk_file_chooser_remove_shortcut_folder - -gboolean -gtk_file_chooser_remove_shortcut_folder (GtkFileChooser *chooser, - const char *folder, - GError **error) -{ - char *utf8_folder = g_locale_to_utf8 (folder, -1, NULL, NULL, NULL); - gboolean retval = - gtk_file_chooser_remove_shortcut_folder_utf8 (chooser, utf8_folder, error); - - g_free (utf8_folder); - - return retval; -} - -#undef gtk_file_chooser_list_shortcut_folders - -GSList * -gtk_file_chooser_list_shortcut_folders (GtkFileChooser *chooser) -{ - GSList *list = gtk_file_chooser_list_shortcut_folders_utf8 (chooser); - GSList *rover = list; - - while (rover) - { - gchar *tem = (gchar *) rover->data; - rover->data = g_locale_from_utf8 ((gchar *) rover->data, -1, NULL, NULL, NULL); - g_free (tem); - rover = rover->next; - } - - return list; -} - -#endif - -#define __GTK_FILE_CHOOSER_C__ -#include "gtkaliasdef.c"