From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / driver / demo-Xm.c
index b5eebb4ee0b3369519efcbc1699545162e525ec1..149e7c5154169ea73669f36d15c5354fc7bd1a33 100644 (file)
@@ -1,5 +1,5 @@
 /* demo-Xm.c --- implements the interactive demo-mode and options dialogs.
- * xscreensaver, Copyright (c) 1993-2003 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-2003, 2005 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -360,7 +360,7 @@ about_menu_cb (Widget button, XtPointer client_data, XtPointer ignored)
            "version is no longer maintained.  Please use the GTK version\n"
            "instead, which has many more features.\n"
            "\n"
-           "For xscreensaver updates, check http://www.jwz.org/xscreensaver/",
+           "For xscreensaver updates, check https://www.jwz.org/xscreensaver/",
            s, s2);
   free (s);
 
@@ -509,7 +509,7 @@ selected_hack_number (Widget toplevel)
 static int
 demo_write_init_file (Widget widget, saver_preferences *p)
 {
-  if (!write_init_file (p, short_version, False))
+  if (!write_init_file (XtDisplay (widget), p, short_version, False))
     return 0;
   else
     {
@@ -672,7 +672,7 @@ manual_cb (Widget button, XtPointer client_data, XtPointer ignored)
   s = strrchr (name2, '/');
   if (s) name = s+1;
 
-  cmd = get_string_resource ("manualCommand", "ManualCommand");
+  cmd = get_string_resource (XtDisplay (button), "manualCommand", "ManualCommand");
   if (cmd)
     {
       char *cmd2 = (char *) malloc (strlen (cmd) + (strlen (name2) * 4) + 100);
@@ -923,7 +923,7 @@ scroll_to_current_hack (Widget toplevel, prefs_pair *pair)
   Atom type;
   int format;
   unsigned long nitems, bytesafter;
-  CARD32 *data = 0;
+  unsigned char *data = 0;
   Display *dpy = XtDisplay (toplevel);
   int which = 0;
   Widget list;
@@ -932,7 +932,7 @@ scroll_to_current_hack (Widget toplevel, prefs_pair *pair)
                           XA_SCREENSAVER_STATUS,
                           0, 3, False, XA_INTEGER,
                           &type, &format, &nitems, &bytesafter,
-                          (unsigned char **) &data)
+                          &data)
       == Success
       && type == XA_INTEGER
       && nitems >= 3
@@ -968,7 +968,7 @@ populate_hack_list (Widget toplevel, prefs_pair *pair)
     {
       char *pretty_name = (h[0]->name
                            ? strdup (h[0]->name)
-                           : make_hack_name (h[0]->command));
+                           : make_hack_name (XtDisplay (toplevel), h[0]->command));
 
       XmString xmstr = XmStringCreate (pretty_name, XmSTRING_DEFAULT_CHARSET);
       XmListAddItem (list, xmstr, 0);
@@ -1209,13 +1209,13 @@ pixmapify_buttons (Widget toplevel)
 
 
 char *
-get_hack_blurb (screenhack *hack)
+get_hack_blurb (Display *dpy, screenhack *hack)
 {
   char *doc_string;
   char *prog_name = strdup (hack->command);
   char *pretty_name = (hack->name
                        ? strdup (hack->name)
-                       : make_hack_name (hack->command));
+                       : make_hack_name (dpy, hack->command));
   char doc_name[255], doc_class[255];
   char *s, *s2;
 
@@ -1230,7 +1230,7 @@ get_hack_blurb (screenhack *hack)
   free (prog_name);
   free (pretty_name);
 
-  doc_string = get_string_resource (doc_name, doc_class);
+  doc_string = get_string_resource (dpy, doc_name, doc_class);
   if (doc_string)
     {
       for (s = doc_string; *s; s++)
@@ -1329,9 +1329,9 @@ populate_demo_window (Widget toplevel, int which, prefs_pair *pair)
   char *pretty_name = (hack
                        ? (hack->name
                           ? strdup (hack->name)
-                          : make_hack_name (hack->command))
+                          : make_hack_name (XtDisplay (toplevel), hack->command))
                        : 0);
-  char *doc_string = hack ? get_hack_blurb (hack) : 0;
+  char *doc_string = hack ? get_hack_blurb (XtDisplay (toplevel), hack) : 0;
 
   XmString xmstr;
 
@@ -1408,7 +1408,7 @@ maybe_reload_init_file (Widget widget, prefs_pair *pair)
       warning_dialog (widget, b, 100);
       free (b);
 
-      load_init_file (p);
+      load_init_file (XtDisplay (widget), p);
 
       which = selected_hack_number (widget);
       list = name_to_widget (widget, "list");
@@ -1691,6 +1691,7 @@ demo_ehandler (Display *dpy, XErrorEvent *error)
 
 static char *defaults[] = {
 #include "XScreenSaver_ad.h"
+#include "XScreenSaver_Xm_ad.h"
  0
 };
 
@@ -1767,7 +1768,7 @@ main (int argc, char **argv)
      was in argv[0].
    */
   p->db = db;
-  load_init_file (p);
+  load_init_file (dpy, p);
   *p2 = *p;
 
   /* Now that Xt has been initialized, and the resources have been read,