| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -9,6 +9,26 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* static */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					drawborder(void) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XPoint points[5]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSetForeground(dpy, dc.gc, dc.border); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						points[0].x = dc.x; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						points[0].y = dc.y; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						points[1].x = dc.w - 1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						points[1].y = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						points[2].x = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						points[2].y = dc.h - 1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						points[3].x = -(dc.w - 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						points[3].y = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						points[4].x = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						points[4].y = -(dc.h - 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XDrawLines(dpy, dc.drawable, dc.gc, points, 5, CoordModePrevious); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static unsigned int | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					textnw(const char *text, unsigned int len) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -24,18 +44,21 @@ textnw(const char *text, unsigned int len) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* extern */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					drawtext(const char *text, Bool sel) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					drawtext(const char *text, Bool invert, Bool border) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int x, y, w, h; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						static char buf[256]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned int len; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XGCValues gcv; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XPoint points[5]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XRectangle r = { dc.x, dc.y, dc.w, dc.h }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSetForeground(dpy, dc.gc, sel ? dc.fg : dc.bg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSetForeground(dpy, dc.gc, invert ? dc.fg : dc.bg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						w = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(border) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							drawborder(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(!text) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -56,8 +79,8 @@ drawtext(const char *text, Bool sel) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(w > dc.w) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return; /* too long */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						gcv.foreground = sel ? dc.bg : dc.fg; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						gcv.background = sel ? dc.fg : dc.bg; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						gcv.foreground = invert ? dc.bg : dc.fg; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						gcv.background = invert ? dc.fg : dc.bg; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(dc.font.set) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XChangeGC(dpy, dc.gc, GCForeground | GCBackground, &gcv); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XmbDrawImageString(dpy, dc.drawable, dc.font.set, dc.gc, | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -68,21 +91,6 @@ drawtext(const char *text, Bool sel) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XChangeGC(dpy, dc.gc, GCForeground | GCBackground | GCFont, &gcv); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XDrawImageString(dpy, dc.drawable, dc.gc, x, y, buf, len); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(sel) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							points[0].x = dc.x; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							points[0].y = dc.y; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							points[1].x = dc.w - 1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							points[1].y = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							points[2].x = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							points[2].y = dc.h - 1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							points[3].x = -(dc.w - 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							points[3].y = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							points[4].x = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							points[4].y = -(dc.h - 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XDrawLines(dpy, dc.drawable, dc.gc, points, 5, CoordModePrevious); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					unsigned long | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |