all repos — dwm @ 2255bf46a0af475e70fb4cc90d912b435f21eb5e

fork of suckless dynamic window manager

draw.h (view raw)

 1/* See LICENSE file for copyright and license details. */
 2
 3#define FG(dc, col)  ((col)[(dc)->invert ? ColBG : ColFG])
 4#define BG(dc, col)  ((col)[(dc)->invert ? ColFG : ColBG])
 5
 6enum { ColBG, ColFG, ColBorder, ColLast };
 7
 8typedef struct {
 9	int x, y, w, h;
10	Bool invert;
11	Display *dpy;
12	GC gc;
13	Pixmap canvas;
14	struct {
15		int ascent;
16		int descent;
17		int height;
18		int width;
19		XFontSet set;
20		XFontStruct *xfont;
21	} font;
22} DC;  /* draw context */
23
24void drawrect(DC *dc, int x, int y, unsigned int w, unsigned int h, Bool fill, unsigned long color);
25void drawtext(DC *dc, const char *text, unsigned long col[ColLast]);
26void drawtextn(DC *dc, const char *text, size_t n, unsigned long col[ColLast]);
27void eprintf(const char *fmt, ...);
28void freedc(DC *dc);
29unsigned long getcolor(DC *dc, const char *colstr);
30DC *initdc(void);
31void initfont(DC *dc, const char *fontstr);
32void mapdc(DC *dc, Window win, unsigned int w, unsigned int h);
33void resizedc(DC *dc, unsigned int w, unsigned int h);
34int textnw(DC *dc, const char *text, size_t len);
35int textw(DC *dc, const char *text);