93 void |
93 void |
94 drawtext(const char *text, unsigned long col[ColLast]) { |
94 drawtext(const char *text, unsigned long col[ColLast]) { |
95 int x, y, w, h; |
95 int x, y, w, h; |
96 static char buf[256]; |
96 static char buf[256]; |
97 unsigned int len, olen; |
97 unsigned int len, olen; |
98 XGCValues gcv; |
|
99 XRectangle r = { dc.x, dc.y, dc.w, dc.h }; |
98 XRectangle r = { dc.x, dc.y, dc.w, dc.h }; |
100 |
99 |
101 XSetForeground(dpy, dc.gc, col[ColBG]); |
100 XSetForeground(dpy, dc.gc, col[ColBG]); |
102 XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); |
101 XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); |
103 if(!text) |
102 if(!text) |
122 if(len > 3) |
121 if(len > 3) |
123 buf[len - 3] = '.'; |
122 buf[len - 3] = '.'; |
124 } |
123 } |
125 if(w > dc.w) |
124 if(w > dc.w) |
126 return; /* too long */ |
125 return; /* too long */ |
127 gcv.foreground = col[ColFG]; |
126 XSetForeground(dpy, dc.gc, col[ColFG]); |
128 if(dc.font.set) { |
127 if(dc.font.set) |
129 XChangeGC(dpy, dc.gc, GCForeground, &gcv); |
|
130 XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len); |
128 XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len); |
131 } |
129 else |
132 else { |
|
133 gcv.font = dc.font.xfont->fid; |
|
134 XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv); |
|
135 XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len); |
130 XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len); |
136 } |
|
137 } |
131 } |
138 |
132 |
139 unsigned int |
133 unsigned int |
140 textw(const char *text) { |
134 textw(const char *text) { |
141 return textnw(text, strlen(text)) + dc.font.height; |
135 return textnw(text, strlen(text)) + dc.font.height; |