dotfiles/drw.h

75 lines
1.6 KiB
C
Raw Normal View History

2013-04-17 19:21:47 +00:00
/* See LICENSE file for copyright and license details. */
#define DRW_FONT_CACHE_SIZE 32
2013-04-17 19:21:47 +00:00
typedef struct {
unsigned long pix;
XftColor rgb;
2013-04-17 19:21:47 +00:00
} Clr;
2013-06-16 13:20:29 +00:00
typedef struct {
Cursor cursor;
} Cur;
2013-04-17 19:21:47 +00:00
typedef struct {
Display *dpy;
2013-04-17 19:21:47 +00:00
int ascent;
int descent;
unsigned int h;
XftFont *xfont;
FcPattern *pattern;
2013-04-17 19:21:47 +00:00
} Fnt;
2013-06-16 13:20:29 +00:00
typedef struct {
Clr *fg;
Clr *bg;
Clr *border;
} ClrScheme;
2013-06-16 13:20:29 +00:00
2013-04-17 19:21:47 +00:00
typedef struct {
unsigned int w, h;
Display *dpy;
int screen;
2013-06-16 13:20:29 +00:00
Window root;
Drawable drawable;
2013-04-17 19:21:47 +00:00
GC gc;
ClrScheme *scheme;
size_t fontcount;
Fnt *fonts[DRW_FONT_CACHE_SIZE];
2013-04-17 19:21:47 +00:00
} Drw;
typedef struct {
unsigned int w;
unsigned int h;
} Extnts;
/* Drawable abstraction */
Drw *drw_create(Display *, int, Window, unsigned int, unsigned int);
void drw_resize(Drw *, unsigned int, unsigned int);
void drw_free(Drw *);
2013-04-17 19:21:47 +00:00
/* Fnt abstraction */
Fnt *drw_font_create(Drw *, const char *);
void drw_load_fonts(Drw *, const char *[], size_t);
void drw_font_free(Fnt *);
void drw_font_getexts(Fnt *, const char *, unsigned int, Extnts *);
unsigned int drw_font_getexts_width(Fnt *, const char *, unsigned int);
2013-04-17 19:21:47 +00:00
2013-06-16 13:20:29 +00:00
/* Colour abstraction */
Clr *drw_clr_create(Drw *, const char *);
void drw_clr_free(Clr *);
2013-06-16 13:20:29 +00:00
/* Cursor abstraction */
Cur *drw_cur_create(Drw *, int);
void drw_cur_free(Drw *, Cur *);
2013-04-17 19:21:47 +00:00
/* Drawing context manipulation */
void drw_setfont(Drw *, Fnt *);
void drw_setscheme(Drw *, ClrScheme *);
2013-04-17 19:21:47 +00:00
/* Drawing functions */
void drw_rect(Drw *, int, int, unsigned int, unsigned int, int, int, int);
int drw_text(Drw *, int, int, unsigned int, unsigned int, const char *, int);
2013-04-17 19:21:47 +00:00
/* Map functions */
void drw_map(Drw *, Window, int, int, unsigned int, unsigned int);