| drw.h - libsl - shared code master of various suckless projects | |
| git clone git://git.suckless.org/libsl | |
| Log | |
| Files | |
| Refs | |
| LICENSE | |
| --- | |
| drw.h (1848B) | |
| --- | |
| 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, un… | |
| 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, unsi… | |
| 39 void drw_font_getexts(Fnt *font, const char *text, unsigned int len, uns… | |
| 40 | |
| 41 /* Colorscheme abstraction */ | |
| 42 void drw_clr_create(Drw *drw, Clr *dest, const char *clrname); | |
| 43 void drw_clr_free(Drw *drw, Clr *c); | |
| 44 Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount); | |
| 45 void drw_scm_free(Drw *drw, Clr *scm, size_t clrcount); | |
| 46 | |
| 47 /* Cursor abstraction */ | |
| 48 Cur *drw_cur_create(Drw *drw, int shape); | |
| 49 void drw_cur_free(Drw *drw, Cur *cursor); | |
| 50 | |
| 51 /* Drawing context manipulation */ | |
| 52 void drw_setfontset(Drw *drw, Fnt *set); | |
| 53 void drw_setscheme(Drw *drw, Clr *scm); | |
| 54 | |
| 55 /* Drawing functions */ | |
| 56 void drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, in… | |
| 57 int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, uns… | |
| 58 | |
| 59 /* Map functions */ | |
| 60 void drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigne… |