mirror of
https://github.com/0intro/wmii
synced 2025-02-28 20:24:08 +03:00
implemented new client drawing code which makes it easy to recognize the focused client in an unfocused column
This commit is contained in:
parent
94a8bd0c3c
commit
f210f90702
@ -252,11 +252,15 @@ draw_client(Client *c)
|
||||
{
|
||||
BlitzDraw d = { 0 };
|
||||
Frame *f;
|
||||
char buf[256];
|
||||
int fidx;
|
||||
unsigned int w;
|
||||
|
||||
if(!c->frame.size)
|
||||
return; /* might not have been attached atm */
|
||||
|
||||
f = c->frame.data[c->sel];
|
||||
fidx = idx_of_frame(f);
|
||||
d.drawable = c->framewin;
|
||||
d.font = blitzfont;
|
||||
d.gc = c->gc;
|
||||
@ -279,25 +283,32 @@ draw_client(Client *c)
|
||||
d.rect.height = height_of_bar();
|
||||
d.notch = nil;
|
||||
|
||||
/* max mode bar */
|
||||
if(f->area->mode == Colmax) {
|
||||
unsigned long tmp = d.color.fg;
|
||||
char buf[256];
|
||||
d.color.fg = d.color.bg;
|
||||
d.color.bg = tmp;
|
||||
snprintf(buf, sizeof(buf), "%d/%d", idx_of_frame(f) + 1, f->area->frame.size);
|
||||
d.align = CENTER;
|
||||
d.rect.width = d.rect.height + blitz_textwidth(dpy, &blitzfont, buf);
|
||||
d.data = buf;
|
||||
blitz_drawlabel(dpy, &d);
|
||||
blitz_drawborder(dpy, &d);
|
||||
d.color.bg = d.color.fg;
|
||||
d.color.fg = tmp;
|
||||
d.rect.x += d.rect.width;
|
||||
}
|
||||
/* mode bar */
|
||||
d.align = CENTER;
|
||||
snprintf(buf, sizeof(buf), "%s%d/%d",
|
||||
/* if */ !idx_of_area(f->area) ? "~" : "",
|
||||
fidx, f->area->frame.size);
|
||||
w = d.rect.width = d.rect.height + blitz_textwidth(dpy, &blitzfont, buf);
|
||||
d.rect.x = f->rect.width - d.rect.width;
|
||||
d.data = buf;
|
||||
|
||||
if(f->area->sel == fidx)
|
||||
d.color = def.sel;
|
||||
else
|
||||
d.color = def.norm;
|
||||
blitz_drawlabel(dpy, &d);
|
||||
blitz_drawborder(dpy, &d);
|
||||
d.rect.x = 0;
|
||||
|
||||
if(c == sel_client())
|
||||
d.color = def.sel;
|
||||
else
|
||||
d.color = def.norm;
|
||||
|
||||
/* tag bar */
|
||||
d.rect.width = d.rect.height + blitz_textwidth(dpy, &blitzfont, c->tags);
|
||||
if(d.rect.width > f->rect.width / 3)
|
||||
d.rect.width = f->rect.width / 3;
|
||||
d.data = c->tags;
|
||||
blitz_drawlabel(dpy, &d);
|
||||
blitz_drawborder(dpy, &d);
|
||||
@ -305,7 +316,7 @@ draw_client(Client *c)
|
||||
|
||||
/* title bar */
|
||||
d.align = WEST;
|
||||
d.rect.width = f->rect.width - d.rect.x;
|
||||
d.rect.width = f->rect.width - (d.rect.x + w);
|
||||
d.data = c->name;
|
||||
blitz_drawlabel(dpy, &d);
|
||||
blitz_drawborder(dpy, &d);
|
||||
|
Loading…
x
Reference in New Issue
Block a user