From http://www.jwz.org/xscreensaver/xscreensaver-5.30.tar.gz
[xscreensaver] / hacks / mountain.c
index 6b2378891cac7b2951f60623bba66019b45c86f3..29d842a114f19bd7126e5466b3bd61ebea91962c 100644 (file)
@@ -1,9 +1,8 @@
 /* -*- Mode: C; tab-width: 4 -*- */
 /* mountain -- square grid mountains */
 
-#if !defined( lint ) && !defined( SABER )
+#if 0
 static const char sccsid[] = "@(#)mountain.c   5.00 2000/11/01 xlockmore";
-
 #endif
 
 /*-
@@ -28,24 +27,22 @@ static const char sccsid[] = "@(#)mountain.c        5.00 2000/11/01 xlockmore";
  */
 
 #ifdef STANDALONE
-#define MODE_mountain
-#define PROGCLASS "Mountain"
-#define HACK_INIT init_mountain
-#define HACK_DRAW draw_mountain
-#define mountain_opts xlockmore_opts
-#define DEFAULTS "*delay: 1000 \n" \
- "*count: 30 \n" \
- "*cycles: 4000 \n" \
- "*ncolors: 64 \n"
-#define SMOOTH_COLORS
-#include "xlockmore.h"         /* in xscreensaver distribution */
+# define MODE_mountain
+#define DEFAULTS       "*delay: 20000 \n" \
+                                       "*count: 30 \n" \
+                                       "*cycles: 4000 \n" \
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
+# define SMOOTH_COLORS
+# include "xlockmore.h"                /* in xscreensaver distribution */
 #else /* STANDALONE */
-#include "xlock.h"             /* in xlockmore distribution */
+# include "xlock.h"            /* in xlockmore distribution */
 #endif /* STANDALONE */
 
 #ifdef MODE_mountain
 
-ModeSpecOpt mountain_opts =
+ENTRYPOINT ModeSpecOpt mountain_opts =
 {0, (XrmOptionDescRec *) NULL, 0, (argtype *) NULL, (OptionStruct *) NULL};
 
 #ifdef USE_MODULES
@@ -164,8 +161,8 @@ drawamountain(ModeInfo * mi)
                mp->stage++;
 }
 
-void
-init_mountain(ModeInfo * mi)
+ENTRYPOINT void
+init_mountain (ModeInfo * mi)
 {
        int         i, j, x, y;
        XGCValues   gcv;
@@ -229,8 +226,8 @@ init_mountain(ModeInfo * mi)
                mp->offset = 0;
 }
 
-void
-draw_mountain(ModeInfo * mi)
+ENTRYPOINT void
+draw_mountain (ModeInfo * mi)
 {
        mountainstruct *mp;
 
@@ -256,8 +253,16 @@ draw_mountain(ModeInfo * mi)
        }
 }
 
-void
-release_mountain(ModeInfo * mi)
+ENTRYPOINT void
+reshape_mountain(ModeInfo * mi, int width, int height)
+{
+  XClearWindow (MI_DISPLAY (mi), MI_WINDOW(mi));
+  init_mountain (mi);
+}
+
+
+ENTRYPOINT void
+release_mountain (ModeInfo * mi)
 {
        if (mountains != NULL) {
                int         screen;
@@ -273,7 +278,7 @@ release_mountain(ModeInfo * mi)
        }
 }
 
-void
+ENTRYPOINT void
 refresh_mountain(ModeInfo * mi)
 {
        mountainstruct *mp;
@@ -287,4 +292,17 @@ refresh_mountain(ModeInfo * mi)
        mp->y = 0;
 }
 
+ENTRYPOINT Bool
+mountain_handle_event (ModeInfo *mi, XEvent *event)
+{
+  if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+    {
+      init_mountain (mi);
+      return True;
+    }
+  return False;
+}
+
+XSCREENSAVER_MODULE ("Mountain", mountain)
+
 #endif /* MODE_mountain */