int i;
dc.x = dc.y = 0;
dc.w = bw;
- drawtext(NULL, False);
+ drawtext(NULL, False, False);
dc.w = 0;
for(i = 0; i < TLast; i++) {
dc.x += dc.w;
dc.w = textw(tags[i]) + dc.font.height;
- if(i == tsel) {
- swap((void **)&dc.fg, (void **)&dc.bg);
- drawtext(tags[i], True);
- swap((void **)&dc.fg, (void **)&dc.bg);
- }
- else
- drawtext(tags[i], True);
+ drawtext(tags[i], i == tsel, True);
}
if(sel) {
- swap((void **)&dc.fg, (void **)&dc.bg);
dc.x += dc.w;
dc.w = textw(sel->name) + dc.font.height;
- drawtext(sel->name, True);
- swap((void **)&dc.fg, (void **)&dc.bg);
+ drawtext(sel->name, True, True);
}
dc.w = textw(stext) + dc.font.height;
dc.x = bx + bw - dc.w;
- drawtext(stext, False);
+ drawtext(stext, False, False);
XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0);
XFlush(dpy);
}
if(c->tags[i]) {
dc.x += dc.w;
dc.w = textw(c->tags[i]) + dc.font.height;
- drawtext(c->tags[i], True);
+ drawtext(c->tags[i], False, True);
}
}
dc.x += dc.w;
dc.w = textw(c->name) + dc.font.height;
- drawtext(c->name, True);
+ drawtext(c->name, False, True);
XCopyArea(dpy, dc.drawable, c->title, dc.gc,
0, 0, c->tw, c->th, 0, 0);
XFlush(dpy);
}
void
-drawtext(const char *text, Bool border)
+drawtext(const char *text, Bool invert, Bool border)
{
int x, y, w, h;
unsigned int len;
XGCValues gcv;
XRectangle r = { dc.x, dc.y, dc.w, dc.h };
- XSetForeground(dpy, dc.gc, dc.bg);
+ XSetForeground(dpy, dc.gc, invert ? dc.fg : dc.bg);
XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
w = 0;
if(w > dc.w)
return; /* too long */
- gcv.foreground = dc.fg;
- gcv.background = dc.bg;
+ gcv.foreground = invert ? dc.bg : dc.fg;
+ gcv.background = invert ? dc.fg : dc.bg;
if(dc.font.set) {
XChangeGC(dpy, dc.gc, GCForeground | GCBackground, &gcv);
XmbDrawImageString(dpy, dc.drawable, dc.font.set, dc.gc,
extern void gravitate(Client *c, Bool invert);
/* draw.c */
-extern void drawtext(const char *text, Bool border);
+extern void drawtext(const char *text, Bool invert, Bool border);
extern unsigned long initcolor(const char *colstr);
extern void initfont(const char *fontstr);
extern unsigned int textnw(char *text, unsigned int len);
extern void error(const char *errstr, ...);
extern void *emallocz(unsigned int size);
extern void spawn(Arg *arg);
-extern void swap(void **p1, void **p2);
return res;
}
-void
-swap(void **p1, void **p2)
-{
- void *tmp = *p1;
- *p1 = *p2;
- *p2 = tmp;
-}
-
void
spawn(Arg *arg)
{