diff options
Diffstat (limited to 'src/drw/drw.h')
| -rw-r--r-- | src/drw/drw.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/drw/drw.h b/src/drw/drw.h new file mode 100644 index 0000000..e645d43 --- /dev/null +++ b/src/drw/drw.h | |||
| @@ -0,0 +1,64 @@ | |||
| 1 | /* See LICENSE file for copyright and license details. */ | ||
| 2 | |||
| 3 | typedef struct { | ||
| 4 | Cursor cursor; | ||
| 5 | } Cur; | ||
| 6 | |||
| 7 | typedef struct Fnt { | ||
| 8 | Display *dpy; | ||
| 9 | unsigned int h; | ||
| 10 | XftFont *xfont; | ||
| 11 | FcPattern *pattern; | ||
| 12 | struct Fnt *next; | ||
| 13 | } Fnt; | ||
| 14 | |||
| 15 | enum { ColFg, ColBg, ColBorder }; /* Clr scheme index */ | ||
| 16 | typedef XftColor Clr; | ||
| 17 | |||
| 18 | typedef struct { | ||
| 19 | unsigned int w, h; | ||
| 20 | Display *dpy; | ||
| 21 | int screen; | ||
| 22 | Window root; | ||
| 23 | Drawable drawable; | ||
| 24 | GC gc; | ||
| 25 | Clr *scheme; | ||
| 26 | Fnt *fonts; | ||
| 27 | } Drw; | ||
| 28 | |||
| 29 | /* Drawable abstraction */ | ||
| 30 | Drw *drw_create(Display *dpy, int screen, Window win, unsigned int w, | ||
| 31 | unsigned int h); | ||
| 32 | void drw_resize(Drw *drw, unsigned int w, unsigned int h); | ||
| 33 | void drw_free(Drw *drw); | ||
| 34 | |||
| 35 | /* Fnt abstraction */ | ||
| 36 | Fnt *drw_fontset_create(Drw *drw, const char *fonts[], size_t fontcount); | ||
| 37 | void drw_fontset_free(Fnt *set); | ||
| 38 | unsigned int drw_fontset_getwidth(Drw *drw, const char *text); | ||
| 39 | unsigned int drw_fontset_getwidth_clamp(Drw *drw, const char *text, | ||
| 40 | unsigned int n); | ||
| 41 | void drw_font_getexts(Fnt *font, const char *text, unsigned int len, | ||
| 42 | unsigned int *w, unsigned int *h); | ||
| 43 | |||
| 44 | /* Colorscheme abstraction */ | ||
| 45 | void drw_clr_create(Drw *drw, Clr *dest, const char *clrname); | ||
| 46 | Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount); | ||
| 47 | |||
| 48 | /* Cursor abstraction */ | ||
| 49 | Cur *drw_cur_create(Drw *drw, int shape); | ||
| 50 | void drw_cur_free(Drw *drw, Cur *cursor); | ||
| 51 | |||
| 52 | /* Drawing context manipulation */ | ||
| 53 | void drw_setfontset(Drw *drw, Fnt *set); | ||
| 54 | void drw_setscheme(Drw *drw, Clr *scm); | ||
| 55 | |||
| 56 | /* Drawing functions */ | ||
| 57 | void drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, | ||
| 58 | int filled, int invert); | ||
| 59 | int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, | ||
| 60 | unsigned int lpad, const char *text, int invert); | ||
| 61 | |||
| 62 | /* Map functions */ | ||
| 63 | void drw_map(Drw *drw, Window win, int x, int y, unsigned int w, | ||
| 64 | unsigned int h); | ||
