+
+static void
+deluxe_reshape (Display *dpy, Window window, void *closure,
+ unsigned int w, unsigned int h)
+{
+ struct state *st = (struct state *) closure;
+ if (! st->dbuf) { /* #### more complicated if we have a back buffer... */
+ int i;
+ XGetWindowAttributes (st->dpy, st->window, &st->xgwa);
+ XClearWindow (dpy, window);
+ for (i = 0; i < st->count; i++)
+ if (st->throbbers[i])
+ st->throbbers[i]->fuse = 0;
+ }
+}
+
+static Bool
+deluxe_event (Display *dpy, Window window, void *closure, XEvent *event)
+{
+ return False;
+}
+
+static void
+deluxe_free (Display *dpy, Window window, void *closure)
+{
+}
+
+
+static const char *deluxe_defaults [] = {
+ ".background: black",
+ ".foreground: white",
+ "*delay: 10000",
+ "*count: 5",
+ "*thickness: 50",
+ "*speed: 15",
+ "*ncolors: 20",
+ "*transparent: True",
+ "*doubleBuffer: True",
+#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
+ "*useDBE: True",
+ "*useDBEClear: True",
+#endif /* HAVE_DOUBLE_BUFFER_EXTENSION */
+ 0
+};
+
+static XrmOptionDescRec deluxe_options [] = {
+ { "-delay", ".delay", XrmoptionSepArg, 0 },
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+ { "-count", ".count", XrmoptionSepArg, 0 },
+ { "-ncolors", ".ncolors", XrmoptionSepArg, 0 },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-transparent", ".transparent", XrmoptionNoArg, "True" },
+ { "-no-transparent", ".transparent", XrmoptionNoArg, "False" },
+ { "-opaque", ".transparent", XrmoptionNoArg, "False" },
+ { "-no-opaque", ".transparent", XrmoptionNoArg, "True" },
+ { "-db", ".doubleBuffer", XrmoptionNoArg, "True" },
+ { "-no-db", ".doubleBuffer", XrmoptionNoArg, "False" },
+ { 0, 0, 0, 0 }
+};
+
+
+XSCREENSAVER_MODULE ("Deluxe", deluxe)