1 /* $Header: /home/yav/xpx/RCS/palset.c,v 1.19 1995/11/23 16:28:39 yav Exp $
2  * xpx palette group select
3  * written by yav (UHD98984@pcvan.or.jp)
4  */
5 
6 #include <X11/Xlib.h>
7 #include <X11/Xutil.h>
8 
9 #include "headers.h"
10 #include "xpx.h"
11 #include "work.h"
12 #define PUBLIC_PALSET_C
13 #include "extern.h"
14 
15 
16 #define PALSETW 24
17 #define PALSETH 18
18 
19 char rcsid_palset[] = "$Id: palset.c,v 1.19 1995/11/23 16:28:39 yav Exp $";
20 
21 MENU palmenu[MAXPALSET+1];
22 
palset_strfunc(p)23 char *palset_strfunc(p)
24      MENU *p;
25 {
26   static char buf[8];
27 
28   sprintf(buf, "%d", p->n);
29   return buf;
30 }
31 
palset_event(p,ev)32 int palset_event(p, ev)
33      MENU *p;
34      XEvent *ev;
35 {
36   switch(ev->type) {
37   case ButtonPress:
38     if (p->n != current_pal) {
39       int oldpal;
40 
41       oldpal = current_pal;
42       current_pal = p->n;
43       palmenu[oldpal].mode &= ~MenuModeMaskOn;
44       redraw_window(palmenu[oldpal].win);
45       p->mode |= MenuModeMaskOn;
46       redraw_window(p->win);
47       color_update_all();
48       update_coled_window();
49     }
50     return 1;
51   }
52   return 0;
53 }
54 
create_palset_window(win,x,y)55 int create_palset_window(win, x, y)
56      Window win;
57      int x;
58      int y;
59 {
60   int i;
61   MENU *p;
62 
63   p = palmenu;
64   for (i = 0; i < MAXPALSET; i++) {
65     bzero(p, sizeof(*p));
66     p->n = i;
67     p->y = (PALSETH+BDW)*i;
68     p->w = PALSETW;
69     p->h = PALSETH;
70     p->im = ExposureMask|EnterWindowMask|LeaveWindowMask|ButtonPressMask;
71     p->mode = MenuModeMaskBorder;
72     p->event = palset_event;
73     p->strfunc = palset_strfunc;
74     p++;
75   }
76   p->n = -1;
77   palmenu[current_pal].mode |= MenuModeMaskOn;
78   topmenuwin_create(palmenu, x, y);
79   return 0;
80 }
81 
82 /* End of file */
83