summaryrefslogtreecommitdiff
path: root/gtk/gtkfilechooser.c
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2004-12-12 21:09:13 +0000
committerTor Lillqvist <tml@src.gnome.org>2004-12-12 21:09:13 +0000
commitf3da17053918abe78db5f75e7d008e4c84c09570 (patch)
tree8ec4255ddb86a9d13de0e6012246a64f4cc671e3 /gtk/gtkfilechooser.c
parentf821217218c60a96cda40844fbef300b4b3d143b (diff)
downloadgtk+-f3da17053918abe78db5f75e7d008e4c84c09570.tar.gz
gtk/gtkaccelmap.[ch] gtk/gtkfilechooser.[ch] gtk/gtkfilesel.c
2004-12-12 Tor Lillqvist <tml@iki.fi> * gtk/gtkaccelmap.[ch] * gtk/gtkfilechooser.[ch] * gtk/gtkfilesel.c * gtk/gtkfilesystemwin32.c * gtk/gtkiconfactory.[ch] * gtk/gtkicontheme.[ch] * gtk/gtkimage.[ch] * gtk/gtkimmodule.c * gtk/gtkmodules.c * gtk/gtkrc.[ch] * gtk/gtkuimanager.[ch] * gtk/gtkwindow.[ch] * gtk/updateiconcache.c * gtk/gtk.symbols: Use gstdio wrappers. On Windows, convert environment variables referring to pathnames from locale encoding to UTF-8. As in GLib, in order to preserve Windows DLL ABI stability, add binary compatibility versions of functions that take file names as arguments, or return file names. Add a _utf8 suffix to the "real" such functions on Windows. The ABI compatibility versions keep the old name. * gtk/Makefile.am: Strip PRIVATE symbols from the GNU import library. * gtk/gtkiconcache.c (_gtk_icon_cache_new_for_path): Implement file mapping on Win32. * gtk/updateiconcache.c: Don't crash if invoked without argument. Use binary mode when opening file. * modules/engines/ms-windows/Theme/gtk-2.0/Makefile.am: Install gtkrc in correct place, in <datadir>/themes/MS-Windows/gtk-2.0.
Diffstat (limited to 'gtk/gtkfilechooser.c')
-rw-r--r--gtk/gtkfilechooser.c169
1 files changed, 169 insertions, 0 deletions
diff --git a/gtk/gtkfilechooser.c b/gtk/gtkfilechooser.c
index 59fe7b1b9d..377838809a 100644
--- a/gtk/gtkfilechooser.c
+++ b/gtk/gtkfilechooser.c
@@ -1827,3 +1827,172 @@ gtk_file_chooser_get_show_hidden (GtkFileChooser *chooser)
return show_hidden;
}
+
+#ifdef G_OS_WIN32
+
+/* 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