dmenu

Dmenu fork with xft fonts.
git clone git://r-36.net/dmenu
Log | Files | Refs | README | LICENSE

drw.h (1643B)


      1 /* See LICENSE file for copyright and license details. */
      2 #define DRW_FONT_CACHE_SIZE 32
      3 
      4 typedef struct {
      5 	unsigned long pix;
      6 	XftColor rgb;
      7 } Clr;
      8 
      9 typedef struct {
     10 	Cursor cursor;
     11 } Cur;
     12 
     13 typedef struct {
     14 	Display *dpy;
     15 	int ascent;
     16 	int descent;
     17 	unsigned int h;
     18 	XftFont *xfont;
     19 	FcPattern *pattern;
     20 } Fnt;
     21 
     22 typedef struct {
     23 	Clr *fg;
     24 	Clr *bg;
     25 	Clr *border;
     26 } ClrScheme;
     27 
     28 typedef struct {
     29 	unsigned int w, h;
     30 	Display *dpy;
     31 	int screen;
     32 	Window root;
     33 	Drawable drawable;
     34 	GC gc;
     35 	ClrScheme *scheme;
     36 	size_t fontcount;
     37 	Fnt *fonts[DRW_FONT_CACHE_SIZE];
     38 } Drw;
     39 
     40 typedef struct {
     41 	unsigned int w;
     42 	unsigned int h;
     43 } Extnts;
     44 
     45 /* Drawable abstraction */
     46 Drw *drw_create(Display *, int, Window, unsigned int, unsigned int);
     47 void drw_resize(Drw *, unsigned int, unsigned int);
     48 void drw_free(Drw *);
     49 
     50 /* Fnt abstraction */
     51 Fnt *drw_font_create(Drw *, const char *);
     52 void drw_load_fonts(Drw *, const char *[], size_t);
     53 void drw_font_free(Fnt *);
     54 void drw_font_getexts(Fnt *, const char *, unsigned int, Extnts *);
     55 unsigned int drw_font_getexts_width(Fnt *, const char *, unsigned int);
     56 
     57 /* Colour abstraction */
     58 Clr *drw_clr_create(Drw *, const char *);
     59 void drw_clr_free(Clr *);
     60 
     61 /* Cursor abstraction */
     62 Cur *drw_cur_create(Drw *, int);
     63 void drw_cur_free(Drw *, Cur *);
     64 
     65 /* Drawing context manipulation */
     66 void drw_setfont(Drw *, Fnt *);
     67 void drw_setscheme(Drw *, ClrScheme *);
     68 
     69 /* Drawing functions */
     70 void drw_rect(Drw *, int, int, unsigned int, unsigned int, int, int, int);
     71 int drw_text(Drw *, int, int, unsigned int, unsigned int, const char *, int);
     72 
     73 /* Map functions */
     74 void drw_map(Drw *, Window, int, int, unsigned int, unsigned int);