X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fnoseguy.c;h=4b25990848fb8caf1eab33e20c8dc359e158be33;hb=bbd0773f2adde4927a6196361d4061e70bf48cd9;hp=f0fa57f4a0247115e555ec6d300cd31ca24e7614;hpb=59ac4e9a0de290e4275a7bbb890ad16abd09d68f;p=xscreensaver diff --git a/hacks/noseguy.c b/hacks/noseguy.c index f0fa57f4..4b259908 100644 --- a/hacks/noseguy.c +++ b/hacks/noseguy.c @@ -11,10 +11,12 @@ */ /* Make a little guy with a big nose and a hat wanter around the screen, - spewing out messages. Derived from xnlock by Dan Heller . + spewing out messages. Derived from xnlock by + Dan Heller . */ #include "screenhack.h" +#include "xpm-pixmap.h" #include extern FILE *popen (const char *, const char *); @@ -55,9 +57,7 @@ static int state; /* indicates states: walking or getting passwd */ static void (*next_fn) (void); -#ifdef HAVE_XPM -# include - +#if defined(HAVE_GDK_PIXBUF) || defined(HAVE_XPM) # include "images/noseguy/nose-f1.xpm" # include "images/noseguy/nose-f2.xpm" # include "images/noseguy/nose-f3.xpm" @@ -85,41 +85,19 @@ init_images (void) &left_front, &right_front, &front, &down }; int i; -#ifdef HAVE_XPM +#if defined(HAVE_GDK_PIXBUF) || defined(HAVE_XPM) + static char **bits[] = { nose_l1_xpm, nose_l2_xpm, nose_r1_xpm, nose_r2_xpm, nose_f2_xpm, nose_f3_xpm, nose_f1_xpm, nose_f4_xpm }; + + for (i = 0; i < sizeof (images) / sizeof(*images); i++) { - XWindowAttributes xgwa; - XpmAttributes xpmattrs; - Pixmap pixmap = 0; - int result; - xpmattrs.valuemask = 0; - - XGetWindowAttributes (dpy, window, &xgwa); - -# ifdef XpmCloseness - xpmattrs.valuemask |= XpmCloseness; - xpmattrs.closeness = 40000; -# endif -# ifdef XpmVisual - xpmattrs.valuemask |= XpmVisual; - xpmattrs.visual = xgwa.visual; -# endif -# ifdef XpmDepth - xpmattrs.valuemask |= XpmDepth; - xpmattrs.depth = xgwa.depth; -# endif -# ifdef XpmColormap - xpmattrs.valuemask |= XpmColormap; - xpmattrs.colormap = xgwa.colormap; -# endif - - result = XpmCreatePixmapFromData(dpy, window, bits[i], - &pixmap, 0 /* mask */, &xpmattrs); - if (!pixmap || (result != XpmSuccess && result != XpmColorError)) + Pixmap pixmap = xpm_data_to_pixmap (dpy, window, bits[i], + 0, 0, 0); + if (!pixmap) { fprintf (stderr, "%s: Can't load nose images\n", progname); exit (1); @@ -317,7 +295,11 @@ think (void) return 0; } -#define MAXLINES 40 +#define MAXLINES 25 + +#undef BUFSIZ +#define BUFSIZ ((MAXLINES + 1) * 100) + static void talk(int force_erase) @@ -385,7 +367,7 @@ talk(int force_erase) (void) strcpy(args[height], p); if (height == MAXLINES - 1) { - puts("Message too long!"); + /* puts("Message too long!"); */ break; } p = p2 + 1; @@ -619,7 +601,7 @@ char *defaults [] = { #else "*mode: string", #endif - "*program: " ZIPPY_PROGRAM, + "*program: " FORTUNE_PROGRAM, "noseguy.font: -*-new century schoolbook-*-r-*-*-*-180-*-*-*-*-*-*", 0 };