Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Apr 8th, 2012  |  syntax: None  |  size: 2.33 KB  |  views: 53  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.   Dwm - Google style-bar  
  2.     =========================
  3.      
  4.      
  5.       static void drawbar(Monitor *m);
  6.     + static void drawborder(unsigned long col[ColLast]);
  7.      
  8.     void
  9.     drawbar(Monitor *m) {
  10.     int x;
  11.         unsigned int i, occ = 0, urg = 0;
  12.       - unsigned long *col;  
  13.       + unsigned long *col, *ltcol;
  14.         Client *c;
  15.      
  16.     for(c = m->clients; c; c = c->next) {
  17.            occ |= c->tags;
  18.            if(c->isurgent) urg |= c->tags;
  19.         }
  20.         dc.x = 0;
  21.      +   dc.w = m->ww;
  22.      +   drawborder(dc.colors[0]);
  23.         // draw tag names
  24.         for(i = 0; i < LENGTH(tags); i++) {
  25.         dc.w = TEXTW(tags[i]);
  26.         col = m->tagset[m->seltags] & 1 << i ? dc.colors[1] : dc.colors[0];
  27.       +  ltcol = occ & 1 << i || m->tagset[m->seltags] & 1 << i ? dc.colors[0] : dc.colors[2];
  28.       + drawtext(tags[i], ltcol, urg & 1 << i);
  29.       + drawborder(col);
  30.         dc.x += dc.w;
  31.             XCopyArea(dpy, dc.drawable, m->barwin, dc.gc, 0, 0, m->ww, bh, 0, 0);
  32.             XSync(dpy, False);
  33.     }
  34.     +
  35.     + void
  36.     + drawborder(unsigned long col[ColLast]){
  37.     + XGCValues gcv;
  38.     +    XRectangle r = {dc.x, dc.y, dc.w, 2 };
  39.     +
  40.     +    gcv.foreground = col[ColBorder];
  41.     +    XChangeGC(dpy, dc.gc, GCForeground, &gcv);
  42.     +    XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
  43.     + }
  44.      
  45.     void
  46.     setup(void) {
  47.             XSetWindowAttributes wa;
  48.      
  49.             /* clean up any zombies immediately */
  50.             sigchld(0);
  51.      
  52.             /* init screen */
  53.             screen = DefaultScreen(dpy);
  54.             root = RootWindow(dpy, screen);
  55.             initfont(font);
  56.             sw = DisplayWidth(dpy, screen);
  57.             sh = DisplayHeight(dpy, screen);
  58.          -  bh = dc.h = dc.font.height + 2;
  59.          +  bh = dc.h = dc.font.height + 6;
  60.      
  61.     }
  62.      
  63.     void
  64.     drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
  65.             char buf[256];
  66.      
  67.     olen = strlen(text);
  68.             h = dc.font.ascent + dc.font.descent;
  69.           - y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent;
  70.           + y = dc.y + 2 (dc.h / 2) - (h / 2) + dc.font.ascent;
  71.             x = dc.x + (h / 2);
  72.             /* shorten text if necessary */
  73.             for(len = MIN(olen, sizeof buf); len && textnw(text, len) > dc.w - h; len--);
clone this paste RAW Paste Data