comparison draw.c @ 605:755d8dcb8a05

sander1 proposal
author arg@mig29
date Fri, 01 Dec 2006 17:36:37 +0100
parents 2c366b252717
children 44b5617c78b3
comparison
equal deleted inserted replaced
604:2c366b252717 605:755d8dcb8a05
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 hborder, Bool vborder) { 33 drawtext(const char *text, unsigned long col[ColLast], Bool dot, Bool corner) {
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 40
40 XSetForeground(dpy, dc.gc, col[ColBG]); 41 XSetForeground(dpy, dc.gc, col[ColBG]);
41 XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); 42 XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
42 if(!text) 43 if(!text)
43 return; 44 return;
71 else { 72 else {
72 gcv.font = dc.font.xfont->fid; 73 gcv.font = dc.font.xfont->fid;
73 XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv); 74 XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv);
74 XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len); 75 XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
75 } 76 }
76 if(vborder) { 77 if(dot) {
77 XDrawLine(dpy, dc.drawable, dc.gc, dc.x + 1, dc.y + 1, dc.x + 1, dc.y + dc.h - 1); 78 r.x = dc.x + 2;
78 XDrawLine(dpy, dc.drawable, dc.gc, dc.x + dc.w - 2, dc.y + 1, dc.x + dc.w - 2, dc.y + dc.h - 1); 79 r.y = dc.y + 2;
79 } 80 r.width = r.height = (h + 2) / 4;
80 if(hborder) { 81 XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
81 XDrawLine(dpy, dc.drawable, dc.gc, dc.x + 1, dc.y + 1, dc.x + dc.w - 2, dc.y + 1); 82 }
82 XDrawLine(dpy, dc.drawable, dc.gc, dc.x + 1, dc.y + dc.h - 2, dc.x + dc.w - 2, dc.y + dc.h - 2); 83 if(corner) {
84 pt[0].x = dc.x + 1;
85 pt[0].y = dc.y + dc.h / 2 + 1;
86 pt[1].x = 0;
87 pt[1].y = - dc.h / 2;
88 pt[2].x = dc.h / 2;
89 pt[2].y = 0;
90 XDrawLines(dpy, dc.drawable, dc.gc, pt, 3, CoordModePrevious);
83 } 91 }
84 } 92 }
85 93
86 /* extern */ 94 /* extern */
87 95