bar.c
changeset 16 359b6e563b95
parent 14 5c078b66347b
child 22 bd3a44353916
equal deleted inserted replaced
15:00d4d52b231f 16:359b6e563b95
     3  * See LICENSE file for license details.
     3  * See LICENSE file for license details.
     4  */
     4  */
     5 
     5 
     6 #include "wm.h"
     6 #include "wm.h"
     7 
     7 
     8 static const char *status[] = {
       
     9 	"sh", "-c", "echo -n `date` `uptime | sed 's/.*://; s/,//g'`"
       
    10 		" `acpi | awk '{print $4}' | sed 's/,//'`", 0 \
       
    11 };
       
    12 
       
    13 void
     8 void
    14 draw_bar()
     9 draw_bar()
    15 {
    10 {
    16 	static char buf[1024];
       
    17 
       
    18 	buf[0] = 0;
       
    19 	pipe_spawn(buf, sizeof(buf), dpy, (char **)status);
       
    20 
       
    21 	brush.rect = barrect;
    11 	brush.rect = barrect;
    22 	brush.rect.x = brush.rect.y = 0;
    12 	brush.rect.x = brush.rect.y = 0;
    23 	draw(dpy, &brush, False, buf);
    13 	draw(dpy, &brush, False, NULL);
       
    14 
       
    15 	if(stack) {
       
    16 		brush.rect.width = textwidth(&brush.font, stack->name) + labelheight(&brush.font);
       
    17 		swap((void **)&brush.fg, (void **)&brush.bg);
       
    18 		draw(dpy, &brush, False, stack->name);
       
    19 		swap((void **)&brush.fg, (void **)&brush.bg);
       
    20 		brush.rect.x += brush.rect.width;
       
    21 	}
       
    22 
       
    23 	brush.rect.width = textwidth(&brush.font, statustext) + labelheight(&brush.font);
       
    24 	brush.rect.x = barrect.x + barrect.width - brush.rect.width;
       
    25 	draw(dpy, &brush, False, statustext);
    24 
    26 
    25 	XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, barrect.width,
    27 	XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, barrect.width,
    26 			barrect.height, 0, 0);
    28 			barrect.height, 0, 0);
    27 	XFlush(dpy);
    29 	XFlush(dpy);
    28 }
    30 }