comparison draw.c @ 606:44b5617c78b3

and the winner is
author arg@mig29
date Fri, 01 Dec 2006 17:45:27 +0100
parents 755d8dcb8a05
children 16762f7414de
comparison
equal deleted inserted replaced
605:755d8dcb8a05 606:44b5617c78b3
28 } 28 }
29 return XTextWidth(dc.font.xfont, text, len); 29 return XTextWidth(dc.font.xfont, text, len);
30 } 30 }
31 31
32 static void 32 static void
33 drawtext(const char *text, unsigned long col[ColLast], Bool dot, Bool corner) { 33 drawtext(const char *text, unsigned long col[ColLast], Bool filleddot, Bool emptydot) {
34 int x, y, w, h; 34 int x, y, w, h;
35 static char buf[256]; 35 static char buf[256];
36 unsigned int len, olen; 36 unsigned int len, olen;
37 XGCValues gcv; 37 XGCValues gcv;
38 XRectangle r = { dc.x, dc.y, dc.w, dc.h }; 38 XRectangle r = { dc.x, dc.y, dc.w, dc.h };
39 XPoint pt[3]; 39 XPoint pt[5];
40 40
41 XSetForeground(dpy, dc.gc, col[ColBG]); 41 XSetForeground(dpy, dc.gc, col[ColBG]);
42 XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); 42 XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
43 if(!text) 43 if(!text)
44 return; 44 return;
72 else { 72 else {
73 gcv.font = dc.font.xfont->fid; 73 gcv.font = dc.font.xfont->fid;
74 XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv); 74 XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv);
75 XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len); 75 XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
76 } 76 }
77 if(dot) { 77 x = (h + 2) / 4;
78 if(filleddot) {
78 r.x = dc.x + 2; 79 r.x = dc.x + 2;
79 r.y = dc.y + 2; 80 r.y = dc.y + 2;
80 r.width = r.height = (h + 2) / 4; 81 r.width = r.height = x;
81 XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); 82 XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
82 } 83 }
83 if(corner) { 84 if(emptydot) {
84 pt[0].x = dc.x + 1; 85 pt[0].x = dc.x + 2;
85 pt[0].y = dc.y + dc.h / 2 + 1; 86 pt[0].y = dc.y + 2;
86 pt[1].x = 0; 87 pt[1].x = x;
87 pt[1].y = - dc.h / 2; 88 pt[1].y = 0;
88 pt[2].x = dc.h / 2; 89 pt[2].x = 0;
89 pt[2].y = 0; 90 pt[2].y = x;
90 XDrawLines(dpy, dc.drawable, dc.gc, pt, 3, CoordModePrevious); 91 pt[3].x = -x;
92 pt[3].y = 0;
93 pt[4].x = 0;
94 pt[4].y = -x;
95 XDrawLines(dpy, dc.drawable, dc.gc, pt, 5, CoordModePrevious);
91 } 96 }
92 } 97 }
93 98
94 /* extern */ 99 /* extern */
95 100