X-Git-Url: https://git.xinqibao.xyz/dmenu.git/blobdiff_plain/723361fa124aa666d637e3fc9f5df1210a9e02b4..43540746077d4fd8ef963b5939934d32d59c9417:/draw.h diff --git a/draw.h b/draw.h index 1705909..247c0b3 100644 --- a/draw.h +++ b/draw.h @@ -1,32 +1,34 @@ /* 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; - 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 */ +} DC; /* draw context */ -/* forward declarations */ -void cleanupdraw(DC *dc); -void setupdraw(DC *dc, Window w); +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 eprint(const char *fmt, ...); +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); -int textnw(DC *dc, const char *text, unsigned int len); +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); - -/* variables */ -extern const char *progname;