| @ -0,0 +1,76 @@ | |||
| /* See LICENSE file for copyright and license details. */ | |||
| /* X11 types - begin */ | |||
| struct _XDraw { | |||
| unsigned int w, h; | |||
| Display *dpy; | |||
| Drawable drawable; | |||
| GC gc; | |||
| }; | |||
| typedef struct _XDraw Draw; | |||
| struct _XCol { | |||
| unsigned long rgb; | |||
| }; | |||
| typedef struct _XCol Col; | |||
| struct _XFont { | |||
| int ascent; | |||
| int descent; | |||
| unsigned int h, w; | |||
| XFontSet set; | |||
| XFontStruct *xfont; | |||
| }; | |||
| typedef struct _XFont Fnt; | |||
| /* X11 types - end */ | |||
| typedef struct { | |||
| Draw *draw; | |||
| Col *fg; | |||
| Col *bg; | |||
| Fnt *font; | |||
| Bool fill; | |||
| } DDC; | |||
| typedef struct { | |||
| unsigned int w; | |||
| unsigned int h; | |||
| int x; | |||
| int y; | |||
| int xOff; | |||
| int yOff; | |||
| } TextExtents; | |||
| /* Drawable abstraction */ | |||
| Draw *draw_create(Display *dpy, Window win, unsigned int w, unsigned int h); | |||
| void draw_resize(Draw *draw, unsigned int w, unsigned int h); | |||
| void draw_free(Draw *draw); | |||
| /* Drawing context abstraction */ | |||
| DDC *dc_create(Draw *draw); | |||
| void dc_free(DDC *dc); | |||
| /* Fnt abstraction */ | |||
| Fnt *font_create(const char *fontname); | |||
| void font_free(Fnt *font); | |||
| /* Colour abstraction */ | |||
| Col *col_create(const char *colname); | |||
| void col_free(Col *col); | |||
| /* Drawing context manipulation */ | |||
| void dc_setfont(DDC *dc, Fnt *font); | |||
| void dc_setfg(DDC *dc, Col col); | |||
| void dc_setbg(DDC *dc, Col col); | |||
| void dc_setfill(DDC *dc, Bool fill); | |||
| /* Drawing functions */ | |||
| void dc_drawrect(DDC *dc, int x, int y, unsigned int w, unsigned int h); | |||
| void dc_drawtext(DDC *dc, int x, int y, const char *text); | |||
| /* Map functions */ | |||
| void dc_map(DDC *dc, int x, int y, unsigned int w, unsigned int h); | |||
| /* Text functions */ | |||
| void dc_getextents(DDC *dc, const char *text, TextExtents *extents); | |||