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