dwm-meillo

diff draw.c @ 344:93192711a36a

changing tag indicator through underline
author Anselm R. Garbe <arg@10kloc.org>
date Thu, 24 Aug 2006 09:25:10 +0200
parents a1901753deef
children 977585eb2d35
line diff
     1.1 --- a/draw.c	Wed Aug 23 19:05:03 2006 +0200
     1.2 +++ b/draw.c	Thu Aug 24 09:25:10 2006 +0200
     1.3 @@ -22,9 +22,17 @@
     1.4  }
     1.5  
     1.6  static void
     1.7 -drawborder()
     1.8 +drawtext(const char *text, Bool invert, Bool underline)
     1.9  {
    1.10 +	int x, y, w, h;
    1.11 +	static char buf[256];
    1.12 +	unsigned int len, olen;
    1.13 +	XGCValues gcv;
    1.14  	XPoint points[5];
    1.15 +	XRectangle r = { dc.x, dc.y, dc.w, dc.h };
    1.16 +
    1.17 +	XSetForeground(dpy, dc.gc, invert ? dc.fg : dc.bg);
    1.18 +	XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
    1.19  	points[0].x = dc.x;
    1.20  	points[0].y = dc.y;
    1.21  	points[1].x = dc.w - 1;
    1.22 @@ -35,24 +43,8 @@
    1.23  	points[3].y = 0;
    1.24  	points[4].x = 0;
    1.25  	points[4].y = -(dc.h - 1);
    1.26 +	XSetForeground(dpy, dc.gc, dc.border);
    1.27  	XDrawLines(dpy, dc.drawable, dc.gc, points, 5, CoordModePrevious);
    1.28 -}
    1.29 -
    1.30 -static void
    1.31 -drawtext(const char *text, Bool invert, Bool highlight)
    1.32 -{
    1.33 -	int x, y, w, h;
    1.34 -	static char buf[256];
    1.35 -	unsigned int len, olen;
    1.36 -	DC tmp;
    1.37 -	XGCValues gcv;
    1.38 -	XRectangle r = { dc.x, dc.y, dc.w, dc.h };
    1.39 -
    1.40 -	XSetForeground(dpy, dc.gc, invert ? dc.fg : dc.bg);
    1.41 -	XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
    1.42 -	XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
    1.43 -	XSetForeground(dpy, dc.gc, dc.border);
    1.44 -	drawborder();
    1.45  
    1.46  	if(!text)
    1.47  		return;
    1.48 @@ -93,14 +85,12 @@
    1.49  		XChangeGC(dpy, dc.gc, GCForeground | GCBackground | GCFont, &gcv);
    1.50  		XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
    1.51  	}
    1.52 -	if(highlight) {
    1.53 -		tmp = dc;
    1.54 -		dc.x += 2;
    1.55 -		dc.y += 2;
    1.56 -		dc.w -= 4;
    1.57 -		dc.h -= 4;
    1.58 -		drawborder();
    1.59 -		dc = tmp;
    1.60 +	if(underline) {
    1.61 +		points[0].x = dc.x + (h / 2) - 1;
    1.62 +		points[0].y = dc.y + dc.h - 3;
    1.63 +		points[1].x = dc.w - h + 2;
    1.64 +		points[1].y = 0;
    1.65 +		XDrawLines(dpy, dc.drawable, dc.gc, points, 2, CoordModePrevious);
    1.66  	}
    1.67  }
    1.68