diff options
Diffstat (limited to 'drw.h')
| -rw-r--r-- | drw.h | 58 |
1 files changed, 58 insertions, 0 deletions
| @@ -0,0 +1,58 @@ | |||
| 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, unsigned int h); | ||
| 31 | void drw_resize(Drw *drw, unsigned int w, unsigned int h); | ||
| 32 | void drw_free(Drw *drw); | ||
| 33 | |||
| 34 | /* Fnt abstraction */ | ||
| 35 | Fnt *drw_fontset_create(Drw* drw, const char *fonts[], size_t fontcount); | ||
| 36 | void drw_fontset_free(Fnt* set); | ||
| 37 | unsigned int drw_fontset_getwidth(Drw *drw, const char *text); | ||
| 38 | unsigned int drw_fontset_getwidth_clamp(Drw *drw, const char *text, unsigned int n); | ||
| 39 | void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w, unsigned int *h); | ||
| 40 | |||
| 41 | /* Colorscheme abstraction */ | ||
| 42 | void drw_clr_create(Drw *drw, Clr *dest, const char *clrname); | ||
| 43 | Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount); | ||
| 44 | |||
| 45 | /* Cursor abstraction */ | ||
| 46 | Cur *drw_cur_create(Drw *drw, int shape); | ||
| 47 | void drw_cur_free(Drw *drw, Cur *cursor); | ||
| 48 | |||
| 49 | /* Drawing context manipulation */ | ||
| 50 | void drw_setfontset(Drw *drw, Fnt *set); | ||
| 51 | void drw_setscheme(Drw *drw, Clr *scm); | ||
| 52 | |||
| 53 | /* Drawing functions */ | ||
| 54 | void drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int invert); | ||
| 55 | int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert); | ||
| 56 | |||
| 57 | /* Map functions */ | ||
| 58 | void drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h); | ||
