Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void
- drawbar(Monitor *m)
- {
- int x, w, tw = 0, n = 0, scm;
- int boxs = drw->fonts->h / 9;
- int boxw = drw->fonts->h / 6 + 2;
- unsigned int i, occ = 0, urg = 0;
- Client *c;
- if (!m->showbar)
- return;
- /* draw status first so it can be overdrawn by tags later */
- if (m == selmon || 1) { /* status is only drawn on selected monitor */
- tw = statusw = m->ww - drawstatusbar(m, bh, stext);
- }
- for (c = m->clients; c; c = c->next) {
- if (ISVISIBLE(c))
- n++;
- occ |= c->tags;
- if (c->isurgent)
- urg |= c->tags;
- }
- x = 0;
- for (i = 0; i < LENGTH(tags); i++) {
- /* Do not draw vacant tags */
- if(!(occ & 1 << i || m->tagset[m->seltags] & 1 << i))
- continue;
- w = TEXTW(tags[i]);
- drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]);
- drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i);
- x += w;
- }
- w = TEXTW(m->ltsymbol);
- drw_setscheme(drw, scheme[SchemeNorm]);
- x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0);
- if ((w = m->ww - tw - x) > bh) {
- if (n > 0) {
- int remainder = w % n;
- int tabw = (1.0 / (double)n) * w + 1;
- for (c = m->clients; c; c = c->next) {
- if (!ISVISIBLE(c))
- continue;
- if (m->sel == c)
- scm = SchemeHid;
- else if (HIDDEN(c))
- scm = SchemeHid;
- else
- scm = SchemeNorm;
- drw_setscheme(drw, scheme[scm]);
- if (remainder >= 0) {
- if (remainder == 0) {
- tabw--;
- }
- remainder--;
- }
- drw_text(drw, x, 0, tabw, bh, lrpad / 2, c->name, 0);
- x += tabw;
- }
- } else {
- drw_setscheme(drw, scheme[SchemeNorm]);
- drw_rect(drw, x, 0, w, bh, 1, 1);
- }
- }
- m->bt = n;
- m->btw = w;
- drw_map(drw, m->barwin, 0, 0, m->ww, bh);
- }
Advertisement
Add Comment
Please, Sign In to add comment