X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=draw.h;h=43a57bf6fe4ce49599e861c9fcb9e2e97df76134;hp=4cd6fb10964435a1a231e5241896e0ff212aa364;hb=8a111c181ea7c14fa3903bebccd3e1cc00e1fe31;hpb=dfd84f9bf3b9d949412a73bc62a43109b340d395 diff --git a/draw.h b/draw.h index 4cd6fb1..43a57bf 100644 --- a/draw.h +++ b/draw.h @@ -1,36 +1,35 @@ -/* - * (C)opyright MMVI Anselm R. Garbe - * See LICENSE file for license details. - */ +/* See LICENSE file for copyright and license details. */ -#include -#include +#define FG(dc, col) ((col)[(dc)->invert ? ColBG : ColFG]) +#define BG(dc, col) ((col)[(dc)->invert ? ColFG : ColBG]) -typedef struct Brush Brush; -typedef struct Fnt Fnt; +enum { ColBG, ColFG, ColBorder, ColLast }; -struct Fnt { - XFontStruct *xfont; - XFontSet set; - int ascent; - int descent; - int height; -}; - -struct Brush { - GC gc; - Drawable drawable; +typedef struct { int x, y, w, h; - Fnt font; - unsigned long bg; - unsigned long fg; - unsigned long border; -}; + 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 */ -extern void draw(Display *dpy, Brush *b, Bool border, const char *text); -extern void loadcolors(Display *dpy, int screen, Brush *b, - const char *bg, const char *fg, const char *bo); -extern void loadfont(Display *dpy, Fnt *font, const char *fontstr); -extern unsigned int textnw(Fnt *font, char *text, unsigned int len); -extern unsigned int textw(Fnt *font, char *text); -extern unsigned int texth(Fnt *font); +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);