}
static void
-drawtext(const char *text, unsigned long col[ColLast], Bool dot, Bool border) {
+drawtext(const char *text, unsigned long col[ColLast], Bool filledsquare, Bool emptysquare) {
int x, y, w, h;
static char buf[256];
unsigned int len, olen;
XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv);
XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
}
- if(dot) {
- r.x = dc.x + 2;
- r.y = dc.y + 2;
- r.width = r.height = (h + 2) / 4;
+ x = (h + 2) / 4;
+ if(filledsquare) {
+ r.x = dc.x + 1;
+ r.y = dc.y + 1;
+ r.width = r.height = x + 1;
XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
}
- if(border) {
+ else if(emptysquare) {
pt[0].x = dc.x + 1;
pt[0].y = dc.y + 1;
- pt[1].x = dc.w - 2;
+ pt[1].x = x;
pt[1].y = 0;
pt[2].x = 0;
- pt[2].y = dc.h - 2;
- pt[3].x = -(dc.w - 2);
+ pt[2].y = x;
+ pt[3].x = -x;
pt[3].y = 0;
pt[4].x = 0;
- pt[4].y = -(dc.h - 2);
+ pt[4].y = -x;
XDrawLines(dpy, dc.drawable, dc.gc, pt, 5, CoordModePrevious);
}
}
void
setfont(const char *fontstr) {
- char **missing, *def;
+ char *def, *lc, **missing;
int i, n;
+ lc = setlocale(LC_CTYPE, NULL);
+ setlocale(LC_CTYPE, "UTF-8");
missing = NULL;
- setlocale(LC_ALL, "");
if(dc.font.set)
XFreeFontSet(dpy, dc.font.set);
dc.font.set = XCreateFontSet(dpy, fontstr, &missing, &n, &def);
+ setlocale(LC_CTYPE, lc);
if(missing) {
while(n--)
fprintf(stderr, "missing fontset: %s\n", missing[n]);
XFreeStringList(missing);
- if(dc.font.set) {
- XFreeFontSet(dpy, dc.font.set);
- dc.font.set = NULL;
- }
}
if(dc.font.set) {
XFontSetExtents *font_extents;