X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=draw.h;h=17d2c89eede527fcd5e05d4de89edae3576e9768;hp=d3f9872f4ff595edeb4505a80ad07fe09b0dfb72;hb=aafeaf731701e528f4ae9d7c7432b3e92fee4392;hpb=8a34fa50f75f4d6d8af234ac0c4f6d40b988d700;ds=sidebyside diff --git a/draw.h b/draw.h index d3f9872..17d2c89 100644 --- a/draw.h +++ b/draw.h @@ -1,6 +1,64 @@ -/* - * (C)opyright MMVI Anselm R. Garbe - * See LICENSE file for license details. - */ +/* See LICENSE file for copyright and license details. */ + +struct _XCol { + unsigned long rgb; +}; +typedef struct _XCol Col; + +struct _XFont { + int ascent; + int descent; + unsigned int h; + XFontSet set; + XFontStruct *xfont; +}; +typedef struct _XFont Fnt; + +typedef struct _XDraw Draw; +struct _XDraw { + unsigned int w, h; + Display *dpy; + int screen; + Window win; + Drawable drawable; + GC gc; + Col *fg; + Col *bg; + Fnt *font; +}; + +typedef struct { + unsigned int w; + unsigned int h; + int xOff; + int yOff; +} TextExtents; + +/* Drawable abstraction */ +Draw *draw_create(Display *dpy, int screen, Window win, unsigned int w, unsigned int h); +void draw_resize(Draw *draw, unsigned int w, unsigned int h); +void draw_free(Draw *draw); + +/* Fnt abstraction */ +Fnt *draw_font_create(Draw *draw, const char *fontname); +void draw_font_free(Draw *draw, Fnt *font); + +/* Colour abstraction */ +Col *draw_col_create(Draw *draw, const char *colname); +void draw_col_free(Draw *draw, Col *col); + +/* Drawing context manipulation */ +void draw_setfont(Draw *draw, Fnt *font); +void draw_setfg(Draw *draw, Col *col); +void draw_setbg(Draw *draw, Col *col); + +/* Drawing functions */ +void draw_rect(Draw *draw, int x, int y, unsigned int w, unsigned int h, Bool filled, Bool empty, Bool invert); +void draw_text(Draw *draw, int x, int y, unsigned int w, unsigned int h, const char *text, Bool invert); + +/* Map functions */ +void draw_map(Draw *draw, int x, int y, unsigned int w, unsigned int h); + +/* Text functions */ +void draw_getextents(Draw *draw, const char *text, unsigned int len, TextExtents *extents); -extern void error(char *errstr, ...);