X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=dmenu.h;h=4cc13f4635cddbe2b7d4c4d0ae781f4b8b4a074c;hb=855a56631916bdff1438e11c232b88450f973648;hp=0b8015c97b64d1b8aba6898dcd827b1f31548f34;hpb=d27e3c1092bb53e82c2781798082c354313dde21;p=dmenu.git diff --git a/dmenu.h b/dmenu.h index 0b8015c..4cc13f4 100644 --- a/dmenu.h +++ b/dmenu.h @@ -1,41 +1,30 @@ -/* See LICENSE file for copyright and license details. */ #include +#include +#include "config.h" -#define FONT "-*-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*" -#define NORMBGCOLOR "#eeeeee" -#define NORMFGCOLOR "#222222" -#define SELBGCOLOR "#006699" -#define SELFGCOLOR "#ffffff" -#define SPACE 30 /* px */ +/* macros */ +#define INRECT(X,Y,RX,RY,RW,RH) ((X) >= (RX) && (X) < (RX) + (RW) && (Y) >= (RY) && (Y) < (RY) + (RH)) +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#define IS_UTF8_1ST_CHAR(c) ((((c) & 0xc0) == 0xc0) || !((c) & 0x80)) -/* color */ -enum { ColFG, ColBG, ColLast }; +/* forward declarations */ +void drawbar(void); +void grabkeyboard(void); +void kpress(XKeyEvent *e); +void run(void); +void setup(unsigned int lines); -typedef struct { - int x, y, w, h; - unsigned long norm[ColLast]; - unsigned long sel[ColLast]; - Drawable drawable; - GC gc; - struct { - XFontStruct *xfont; - XFontSet set; - int ascent; - int descent; - int height; - } font; -} DC; /* draw context */ - -int screen; -Display *dpy; -DC dc; /* global drawing context */ - -/* draw.c */ -void drawtext(const char *text, unsigned long col[ColLast]); -unsigned int textw(const char *text); -unsigned int textnw(const char *text, unsigned int len); - -/* util.c */ -void *emalloc(unsigned int size); /* allocates memory, exits on error */ -void eprint(const char *errstr, ...); /* prints errstr and exits with 1 */ -char *estrdup(const char *str); /* duplicates str, exits on allocation error */ +/* variables */ +extern char *prompt; +extern char text[4096]; +extern int promptw; +extern int screen; +extern unsigned int numlockmask; +extern unsigned int mw, mh; +extern unsigned long normcol[ColLast]; +extern unsigned long selcol[ColLast]; +extern Bool topbar; +extern DC dc; +extern Display *dpy; +extern Window win, root;