-unsigned int
-textnw(Fnt *font, char *text, unsigned int len)
-{
- XRectangle r;
- if(font->set) {
- XmbTextExtents(font->set, text, len, NULL, &r);
- return r.width;
+void
+drawstatus(void) {
+ int i, x;
+
+ dc.x = dc.y = 0;
+
+ for(i = 0; i < ntags; i++) {
+ dc.w = textw(tags[i]);
+ if(seltag[i])
+ drawtext(tags[i], dc.sel, sel && sel->tags[i]);
+ else
+ drawtext(tags[i], dc.norm, sel && sel->tags[i]);
+ dc.x += dc.w;
+ }
+
+ dc.w = bmw;
+ drawtext(arrange == dofloat ?
+ FLOATSYMBOL : stackpos == StackBottom ?
+ BSTACKSYMBOL : VSTACKSYMBOL, dc.status, False);
+
+ x = dc.x + dc.w;
+ dc.w = textw(stext);
+ dc.x = bx + bw - dc.w;
+ if(dc.x < x) {
+ dc.x = x;
+ dc.w = bw - x;
+ }
+ drawtext(stext, dc.status, False);
+
+ if((dc.w = dc.x - x) > bh) {
+ dc.x = x;
+ if(sel)
+ drawtext(sel->name, dc.sel, False);
+ else
+ drawtext(NULL, dc.norm, False);