changeset 67761:5b8799d65159

* xfns.c (Fx_uses_old_gtk_dialog): New function. * gtkutil.c (xg_uses_old_file_dialog): New function. (xg_get_file_name): Use xg_uses_old_file_dialog. * gtkutil.h: Declare xg_uses_old_file_dialog.
author Jan Djärv <jan.h.d@swipnet.se>
date Fri, 23 Dec 2005 11:34:13 +0000
parents 9c3504ae6060
children 31f77129bc92
files src/ChangeLog src/gtkutil.c src/gtkutil.h src/xfns.c
diffstat 4 files changed, 54 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Fri Dec 23 08:40:31 2005 +0000
+++ b/src/ChangeLog	Fri Dec 23 11:34:13 2005 +0000
@@ -1,3 +1,12 @@
+2005-12-23  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* xfns.c (Fx_uses_old_gtk_dialog): New function.
+
+	* gtkutil.c (xg_uses_old_file_dialog): New function.
+	(xg_get_file_name): Use xg_uses_old_file_dialog.
+
+	* gtkutil.h: Declare xg_uses_old_file_dialog.
+
 2005-12-22  Richard M. Stallman  <rms@gnu.org>
 
 	* xmenu.c (xmenu_show): Call inhibit_garbage_collection.
--- a/src/gtkutil.c	Fri Dec 23 08:40:31 2005 +0000
+++ b/src/gtkutil.c	Fri Dec 23 11:34:13 2005 +0000
@@ -1155,6 +1155,27 @@
 /***********************************************************************
                       File dialog functions
  ***********************************************************************/
+/* Return non-zero if the old file selection dialog is being used.
+   Return zero if not.  */
+
+int
+xg_uses_old_file_dialog ()
+{
+#ifdef HAVE_GTK_FILE_BOTH
+  extern int x_use_old_gtk_file_dialog;
+  return x_use_old_gtk_file_dialog;
+#else /* ! HAVE_GTK_FILE_BOTH */
+
+#ifdef HAVE_GTK_FILE_SELECTION_NEW
+  return 1;
+#else
+  return 0;
+#endif
+
+#endif /* ! HAVE_GTK_FILE_BOTH */
+}
+
+
 /* Function that is called when the file dialog pops down.
    W is the dialog widget, RESPONSE is the response code.
    USER_DATA is what we passed in to g_signal_connect (pointer to int).  */
@@ -1343,7 +1364,6 @@
   char *fn = 0;
   int filesel_done = 0;
   xg_get_file_func func;
-  extern int x_use_old_gtk_file_dialog;
 
 #if defined (HAVE_GTK_AND_PTHREAD) && defined (__SIGRTMIN)
   /* I really don't know why this is needed, but without this the GLIBC add on
@@ -1354,7 +1374,7 @@
 
 #ifdef HAVE_GTK_FILE_BOTH
 
-  if (x_use_old_gtk_file_dialog)
+  if (xg_uses_old_file_dialog ())
     w = xg_get_file_with_selection (f, prompt, default_filename,
                                     mustmatch_p, only_dir_p, &func);
   else
--- a/src/gtkutil.h	Fri Dec 23 08:40:31 2005 +0000
+++ b/src/gtkutil.h	Fri Dec 23 11:34:13 2005 +0000
@@ -132,6 +132,8 @@
 extern widget_value *malloc_widget_value P_ ((void));
 extern void free_widget_value P_ ((widget_value *));
 
+extern int xg_uses_old_file_dialog P_ ((void));
+
 extern char *xg_get_file_name P_ ((FRAME_PTR f,
                                    char *prompt,
                                    char *default_filename,
--- a/src/xfns.c	Fri Dec 23 08:40:31 2005 +0000
+++ b/src/xfns.c	Fri Dec 23 11:34:13 2005 +0000
@@ -5236,8 +5236,27 @@
 			File selection dialog
  ***********************************************************************/
 
+DEFUN ("x-uses-old-gtk-dialog", Fx_uses_old_gtk_dialog,
+       Sx_uses_old_gtk_dialog,
+       0, 0, 0,
+       doc: /* Return t if the old Gtk+ file selection dialog is used.  */)
+     ()
+{
+#ifdef USE_GTK
+  extern int use_dialog_box;
+  extern int use_file_dialog;
+
+  if (use_dialog_box
+      && use_file_dialog
+      && have_menus_p ()
+      && xg_uses_old_file_dialog ())
+    return Qt;
+#endif
+  return Qnil;
+}
+
+
 #ifdef USE_MOTIF
-
 /* Callback for "OK" and "Cancel" on file selection dialog.  */
 
 static void
@@ -5857,6 +5876,7 @@
   last_show_tip_args = Qnil;
   staticpro (&last_show_tip_args);
 
+  defsubr (&Sx_uses_old_gtk_dialog);
 #if defined (USE_MOTIF) || defined (USE_GTK)
   defsubr (&Sx_file_dialog);
 #endif