dmenu

Kris's build of dmenu
git clone git clone https://git.krisyotam.com/krisyotam/dmenu.git
Log | Files | Refs | README | LICENSE

drw.h (3301B)


      1 /* See LICENSE file for copyright and license details. */
      2 
      3 #if PANGO_PATCH
      4 #include <pango/pango.h>
      5 #include <pango/pangoxft.h>
      6 #endif // PANGO_PATCH
      7 
      8 typedef struct {
      9 	Cursor cursor;
     10 } Cur;
     11 
     12 typedef struct Fnt {
     13 	Display *dpy;
     14 	unsigned int h;
     15 	#if PANGO_PATCH
     16 	PangoLayout *layout;
     17 	#else
     18 	XftFont *xfont;
     19 	FcPattern *pattern;
     20 	struct Fnt *next;
     21 	#endif // PANGO_PATCH
     22 } Fnt;
     23 
     24 enum { ColFg, ColBg }; /* Clr scheme index */
     25 typedef XftColor Clr;
     26 
     27 typedef struct {
     28 	unsigned int w, h;
     29 	Display *dpy;
     30 	int screen;
     31 	Window root;
     32 	#if ALPHA_PATCH
     33 	Visual *visual;
     34 	unsigned int depth;
     35 	Colormap cmap;
     36 	#endif // ALPHA_PATCH
     37 	Drawable drawable;
     38 	GC gc;
     39 	Clr *scheme;
     40 	#if PANGO_PATCH
     41 	Fnt *font;
     42 	#else
     43 	Fnt *fonts;
     44 	#endif // PANGO_PATCH
     45 } Drw;
     46 
     47 /* Drawable abstraction */
     48 #if ALPHA_PATCH
     49 Drw *drw_create(Display *dpy, int screen, Window win, unsigned int w, unsigned int h, Visual *visual, unsigned int depth, Colormap cmap);
     50 #else
     51 Drw *drw_create(Display *dpy, int screen, Window win, unsigned int w, unsigned int h);
     52 #endif // ALPHA_PATCH
     53 void drw_resize(Drw *drw, unsigned int w, unsigned int h);
     54 void drw_free(Drw *drw);
     55 
     56 /* Fnt abstraction */
     57 #if PANGO_PATCH
     58 Fnt *drw_font_create(Drw* drw, const char *font);
     59 void drw_font_free(Fnt* set);
     60 unsigned int drw_font_getwidth(Drw *drw, const char *text, Bool markup);
     61 unsigned int drw_fontset_getwidth_clamp(Drw *drw, const char *text, unsigned int n);
     62 void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w, unsigned int *h, Bool markup);
     63 #else
     64 Fnt *drw_fontset_create(Drw* drw, const char *fonts[], size_t fontcount);
     65 void drw_fontset_free(Fnt* set);
     66 unsigned int drw_fontset_getwidth(Drw *drw, const char *text);
     67 unsigned int drw_fontset_getwidth_clamp(Drw *drw, const char *text, unsigned int n);
     68 void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w, unsigned int *h);
     69 #endif // PANGO_PATCH
     70 
     71 #if HIGHLIGHT_PATCH
     72 int utf8len(const char *c);
     73 #endif // HIGHLIGHT_PATCH
     74 
     75 /* Colorscheme abstraction */
     76 #if ALPHA_PATCH
     77 void drw_clr_create(Drw *drw, Clr *dest, const char *clrname, unsigned int alpha);
     78 Clr *drw_scm_create(Drw *drw, const char *clrnames[], const unsigned int alphas[], size_t clrcount);
     79 #else
     80 void drw_clr_create(Drw *drw, Clr *dest, const char *clrname);
     81 Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount);
     82 #endif // ALPHA_PATCH
     83 void drw_clr_free(Drw *drw, Clr *c);
     84 void drw_scm_free(Drw *drw, Clr *scm, size_t clrcount);
     85 
     86 /* Cursor abstraction */
     87 Cur *drw_cur_create(Drw *drw, int shape);
     88 void drw_cur_free(Drw *drw, Cur *cursor);
     89 
     90 /* Drawing context manipulation */
     91 #if !PANGO_PATCH
     92 void drw_setfontset(Drw *drw, Fnt *set);
     93 #endif // PANGO_PATCH
     94 void drw_setscheme(Drw *drw, Clr *scm);
     95 
     96 /* Drawing functions */
     97 void drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int invert);
     98 #if PANGO_PATCH
     99 int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert, Bool markup);
    100 #else
    101 int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert);
    102 #endif // PANGO_PATCH
    103 
    104 /* Map functions */
    105 void drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h);
    106 
    107 #if SCROLL_PATCH
    108 #include "patch/scroll.h"
    109 #endif