From http://www.jwz.org/xscreensaver/xscreensaver-5.39.tar.gz
[xscreensaver] / hacks / bubbles.h
index 89935f4552ba0bde58458cc109cd2e37b978bef0..24872e37ebf0372e813a90755ac16f939419f778 100644 (file)
@@ -1,12 +1,14 @@
 /* bubbles.h - definitions for bubbles screensaver */
 
-/* $Id: bubbles.h,v 1.2 1997/05/19 03:26:05 jwz Exp $ */
+/* $Id: bubbles.h,v 1.6 2006/02/25 20:11:57 jwz Exp $ */
 
 #ifndef _BUBBLES_H_
 #define _BUBBLES_H_
 
-#ifdef HAVE_XPM
-#include <X11/xpm.h>
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+#else
+# include <X11/Xlib.h>
 #endif
 
 /***************************************************************************
 /* Size increments for read_line() buffers */
 #define READ_LINE_BUF_SIZE 24
 
+/* Maximum amount to drop a bubble */
+#define MAX_DROPPAGE 20
+
 /****************************************************************************
  *                        End of options                                    *
  ****************************************************************************/
@@ -184,31 +189,20 @@ typedef struct bub Bubble;
  * better name...)
  */
 
-#ifdef HAVE_XPM
 struct bub_step {
   int radius;
   long area;
+  int droppage;
   Pixmap ball, shape_mask;
   GC draw_gc, erase_gc;
-  XpmAttributes xpmattrs;
   struct bub_step *next;
 };
 
 typedef struct bub_step Bubble_Step;
-#endif /* HAVE_XPM */
-
-/* Make sure default bubble isn't compiled when we don't have XPM
-Disable file I/O code too. */
-#ifndef HAVE_XPM
-# define NO_DEFAULT_BUBBLE
-# undef BUBBLES_IO
-#endif /* HAVE_XPM */
-
-/* Make sure default bubble is compiled in when we have XPM and no file I/O */
-#ifdef HAVE_XPM
-# ifndef BUBBLES_IO
-#  undef NO_DEFAULT_BUBBLE
-# endif /* BUBBLES_IO */
-#endif /* HAVE_XPM */
+
+extern void init_default_bubbles(void);
+extern int num_default_bubbles;
+typedef struct { const unsigned char *png; unsigned long size; } bubble_png;
+extern bubble_png default_bubbles[];
 
 #endif /* _BUBBLES_H_ */