X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fxlock.h;fp=hacks%2Fxlock.h;h=0000000000000000000000000000000000000000;hb=df053bcb240bd8d82e3bebf48a9766a8728bca4b;hp=d509f563c37103b0d19aa0cfb5d4cd69ee21da40;hpb=6bb727f03bff0389fbb1349d7df4c9d8d7532959;p=xscreensaver diff --git a/hacks/xlock.h b/hacks/xlock.h deleted file mode 100644 index d509f563..00000000 --- a/hacks/xlock.h +++ /dev/null @@ -1,192 +0,0 @@ -/* -** Helpful definitions for porting xlock modes to xscreensaver. -** by Charles Hannum, mycroft@ai.mit.edu -** -** for xlock 2.3 and xscreensaver 1.2, 28AUG92 -** -** Modified for xlockmore 3.0 by Anthony Thyssen -** on August 1995. -** -** Tweaked by jwz to work with both ANSI and K&R compilers, 10-May-97. -** -** Note: this file no longer works as of (at least) xlockmore 4.03a10: -** see jwz's new xlockmore.h file for a similar hack that works with -** code written for that version. -** -** To use, just copy the appropriate file from xlock, add a target -** for it in the Imakefile, and do the following: -** -** 1) If you include math.h, make sure it is before xlock.h. -** 2) Make sure the first thing you do in initfoo() is to call -** XGetWindowAttributes. This is what actually sets up the -** colormap and whatnot. -** 3) Add an appropriate PROGRAM() line at the end of the .c file. -** The information you need for this comes from xlock's file -** resource.c. -** -** That's about all there is to it. -** -** As an added bonus, if you put an empty definition of PROGRAM() in -** xlock's xlock.h, you can now use the code with either xlock or -** xscreensaver. -** -** -** If you make any improvements to this code, please send them to me! -** It could certainly use some more work. -*/ - -#include "screenhack.h" - -#define MAXSCREENS 1 - -static GC gc; -static unsigned long *pixels = 0, fg_pixel, bg_pixel; -static int npixels; -static Colormap cmap; - -static int batchcount; -static unsigned int delay; -static unsigned int cycles; -static double saturation; - -#ifndef min -#define min(a,b) ((a)<(b)?(a):(b)) -#endif - -typedef struct { - GC gc; - int npixels; - u_long *pixels; -} perscreen; - -static perscreen Scr[MAXSCREENS]; -static Display *dsp; - -static int screen = 0; - -static void -#ifdef __STDC__ -My_XGetWindowAttributes (Display *dpy, Window win, XWindowAttributes *xgwa) -#else /* !__STDC__ */ -My_XGetWindowAttributes (dpy, win, xgwa) - Display *dpy; - Window win; - XWindowAttributes *xgwa; -#endif /* !__STDC__ */ -{ - XGetWindowAttributes (dpy, win, xgwa); - - if (! pixels) { - XGCValues gcv; - XColor color; - int n; - int i, shift; - - cmap = xgwa->colormap; - - i = get_integer_resource ("ncolors", "Integer"); - if (i <= 2) i = 2, mono_p = True; - shift = 360 / i; - pixels = (unsigned long *) calloc (i, sizeof (unsigned long)); - fg_pixel = get_pixel_resource ("foreground", "Foreground", dpy, cmap); - bg_pixel = get_pixel_resource ("background", "Background", dpy, cmap); - if (! mono_p) { - for (npixels = 0; npixels < i; npixels++) { - hsv_to_rgb ((360*npixels)/i, saturation, 1.0, - &color.red, &color.green, &color.blue); - if (! XAllocColor (dpy, cmap, &color)) - break; - pixels[npixels] = color.pixel; - } - } - n = get_integer_resource ("delay", "Usecs"); - if (n >= 0) delay = n; - n = get_integer_resource ("count", "Integer"); - if (n > 0) batchcount = n; - - n = get_integer_resource ("cycles", "Integer"); - if (n >= 0) cycles = n; - - gcv.foreground = fg_pixel; - gcv.background = bg_pixel; - gc = XCreateGC (dpy, win, GCForeground|GCBackground, &gcv); - - XClearWindow (dpy, win); - - Scr[screen].gc = gc; - Scr[screen].npixels = npixels; - Scr[screen].pixels = pixels; - } -} - -#define XGetWindowAttributes(a,b,c) My_XGetWindowAttributes(a,b,c) - -#undef BlackPixel -#define BlackPixel(a,b) bg_pixel -#undef WhitePixel -#define WhitePixel(a,b) fg_pixel -#define mono mono_p - -#define seconds() time((time_t*)0) - -char *defaults[] = { - "*background: black", - "*foreground: white", - "*ncolors: 64", - "*delay: -1", - "*count: -1", - "*cycles: -1", - 0 -}; - -XrmOptionDescRec options[] = { - {"-count", ".count", XrmoptionSepArg, 0}, - {"-ncolors", ".ncolors", XrmoptionSepArg, 0}, - {"-delay", ".delay", XrmoptionSepArg, 0}, - {"-cycles", ".cycles", XrmoptionSepArg, 0}, - { 0, 0, 0, 0 } -}; - -#if defined(__STDC__) || defined(__ANSI_CPP__) -# define XLOCK_INIT(Z) init##Z -# define XLOCK_DRAW(Z) draw##Z -#else /* K&R CPP */ -# define XLOCK_INIT(Z) init/**/Z -# define XLOCK_DRAW(Z) draw/**/Z -#endif /* K&R CPP */ - -#ifdef __STDC__ -# define XLOCK_SCREENHACK_PROTOTYPE() \ - screenhack(Display *dpy, Window window) -# define XLOCK_PROTOS(Z) /* */ -#else /* K&R C */ -# define XLOCK_SCREENHACK_PROTOTYPE() \ - screenhack(dpy, window) \ - Display *dpy; \ - Window window; -# define XLOCK_PROTOS(Z) \ - void init##Z(Window); \ - void draw##Z(Window); \ - -#endif /* K&R C */ - -#define PROGRAM(Y,Z,D,B,C,S) \ - char *progclass = Y; \ - XLOCK_PROTOS(Z) \ - \ - void XLOCK_SCREENHACK_PROTOTYPE() \ - { \ - batchcount = B; \ - delay = D; \ - cycles = C; \ - saturation = S; \ - dsp = dpy; \ - \ - XLOCK_INIT(Z) (window); \ - while (1) \ - { \ - XLOCK_DRAW(Z) (window); \ - XSync (dpy, True); \ - if (delay) usleep (delay); \ - } \ - }