X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=bar.c;h=ea4b946bb69682b9748573fedd96a45fc1a73558;hb=6475be926bef4916ce632988a2fa408a637babc7;hp=f3a11b811bf964760d61ddad1f63be5678a65fcb;hpb=d6e0e6e9879c144f5d374fca0c015fd6208fc27e;p=dwm.git diff --git a/bar.c b/bar.c index f3a11b8..ea4b946 100644 --- a/bar.c +++ b/bar.c @@ -3,28 +3,52 @@ * See LICENSE file for license details. */ -#include "wm.h" +#include "dwm.h" void -draw_bar() +barclick(XButtonPressedEvent *e) { - brush.rect = barrect; - brush.rect.x = brush.rect.y = 0; - draw(dpy, &brush, False, NULL); - - if(stack) { - brush.rect.width = textwidth(&brush.font, stack->name) + labelheight(&brush.font); - swap((void **)&brush.fg, (void **)&brush.bg); - draw(dpy, &brush, False, stack->name); - swap((void **)&brush.fg, (void **)&brush.bg); - brush.rect.x += brush.rect.width; + int x = 0; + Arg a; + for(a.i = 0; a.i < TLast; a.i++) { + x += textw(tags[a.i]) + dc.font.height; + if(e->x < x) { + view(&a); + return; + } } +} - brush.rect.width = textwidth(&brush.font, statustext) + labelheight(&brush.font); - brush.rect.x = barrect.x + barrect.width - brush.rect.width; - draw(dpy, &brush, False, statustext); +void +draw_bar() +{ + int i; + dc.x = dc.y = 0; + dc.w = bw; + drawtext(NULL, False); - XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, barrect.width, - barrect.height, 0, 0); + 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); + } + 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); + } + dc.w = textw(stext) + dc.font.height; + dc.x = bx + bw - dc.w; + drawtext(stext, False); + XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0); XFlush(dpy); }