drw.h - dmenu - Dmenu fork with xft fonts.
 (HTM) git clone git://r-36.net/dmenu
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) 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);