X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=draw.h;fp=draw.h;h=ac3943f7d0a27710a721a902922110daf48332c8;hb=a0a99d10e1a019f74a8b2af4d5f8b47348e08a75;hp=0000000000000000000000000000000000000000;hpb=7cf66b443ad1cc9a698db477401b843f3c14184b;p=dmenu.git diff --git a/draw.h b/draw.h new file mode 100644 index 0000000..ac3943f --- /dev/null +++ b/draw.h @@ -0,0 +1,37 @@ +/* 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; + XFontSet set; + XFontStruct *xfont; + } font; +} DC; /* draw context */ + +unsigned long getcolor(DC *dc, const char *colstr); +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 initfont(DC *dc, const char *fontstr); +void freedc(DC *dc); +DC *initdc(void); +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); +void eprintf(const char *fmt, ...); +void weprintf(const char *fmt, ...); + +const char *progname;