X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=draw.h;h=ac3943f7d0a27710a721a902922110daf48332c8;hb=da81f57f6d7ef2149b1d6db55178b4beaa70c5d7;hp=79db37e819abe91bf97361b6e6687ce4221dbc15;hpb=595e7976601fc77acf12015d3f5f6843e2cdd706;p=dmenu.git diff --git a/draw.h b/draw.h index 79db37e..ac3943f 100644 --- a/draw.h +++ b/draw.h @@ -1,45 +1,37 @@ /* See LICENSE file for copyright and license details. */ -/* enums */ -enum { ColFG, ColBG, ColLast }; +#define FG(dc, col) ((col)[(dc)->invert ? ColBG : ColFG]) +#define BG(dc, col) ((col)[(dc)->invert ? ColFG : ColBG]) + +enum { ColBG, ColFG, ColBorder, ColLast }; -/* typedefs */ typedef struct { int x, y, w, h; - unsigned long norm[ColLast]; - unsigned long sel[ColLast]; - Drawable drawable; + Bool invert; + Display *dpy; GC gc; + Pixmap canvas; struct { - XFontStruct *xfont; - XFontSet set; int ascent; int descent; int height; + XFontSet set; + XFontStruct *xfont; } font; -} DC; /* draw context */ - -/* forward declarations */ -void drawcleanup(void); -void drawsetup(void); -void drawtext(const char *text, unsigned long col[ColLast]); -void eprint(const char *errstr, ...); -unsigned long getcolor(const char *colstr); -void initfont(const char *fontstr); -int textnw(const char *text, unsigned int len); -int textw(const char *text); +} DC; /* draw context */ -/* variables */ -Display *dpy; -DC dc; -int screen; -unsigned int mw, mh; -unsigned int spaceitem; -Window parent; +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, ...); -/* style */ -const char *font; -const char *normbgcolor; -const char *normfgcolor; -const char *selbgcolor; -const char *selfgcolor; +const char *progname;