36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* See LICENSE file for copyright and license details. */
 | |
| 
 | |
| #define FG(dc, col)  ((col)[(dc)->invert ? ColBG : ColFG])
 | |
| #define BG(dc, col)  ((col)[(dc)->invert ? ColFG : ColBG])
 | |
| 
 | |
| enum { ColBG, ColFG, ColBorder, ColLast };
 | |
| 
 | |
| typedef struct {
 | |
| 	int x, y, w, h;
 | |
| 	Bool invert;
 | |
| 	Display *dpy;
 | |
| 	GC gc;
 | |
| 	Pixmap canvas;
 | |
| 	struct {
 | |
| 		int ascent;
 | |
| 		int descent;
 | |
| 		int height;
 | |
| 		int width;
 | |
| 		XFontSet set;
 | |
| 		XFontStruct *xfont;
 | |
| 	} font;
 | |
| } DC;  /* draw context */
 | |
| 
 | |
| void drawrect(DC *dc, int x, int y, unsigned int w, unsigned int h, Bool fill, unsigned long color);
 | |
| void drawtext(DC *dc, const char *text, unsigned long col[ColLast]);
 | |
| void drawtextn(DC *dc, const char *text, size_t n, unsigned long col[ColLast]);
 | |
| void eprintf(const char *fmt, ...);
 | |
| void freedc(DC *dc);
 | |
| unsigned long getcolor(DC *dc, const char *colstr);
 | |
| DC *initdc(void);
 | |
| void initfont(DC *dc, const char *fontstr);
 | |
| void mapdc(DC *dc, Window win, unsigned int w, unsigned int h);
 | |
| void resizedc(DC *dc, unsigned int w, unsigned int h);
 | |
| int textnw(DC *dc, const char *text, size_t len);
 | |
| int textw(DC *dc, const char *text);
 |