X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=dmenu.h;h=4cc13f4635cddbe2b7d4c4d0ae781f4b8b4a074c;hb=855a56631916bdff1438e11c232b88450f973648;hp=f1181966ca692bcac83d56980fd53480beeec54a;hpb=4318bf2905a8da290ec83cb67f26bd06ba2e4dc9;p=dmenu.git diff --git a/dmenu.h b/dmenu.h index f118196..4cc13f4 100644 --- a/dmenu.h +++ b/dmenu.h @@ -1,45 +1,30 @@ -/* - * (C)opyright MMVI Anselm R. Garbe - * See LICENSE file for license details. - */ - -#include "config.h" #include -#include - -#define SPACE 30 /* px */ - -typedef struct DC DC; -typedef struct Fnt Fnt; - -struct Fnt { - XFontStruct *xfont; - XFontSet set; - int ascent; - int descent; - int height; -}; - -struct DC { /* draw context */ - int x, y, w, h; - unsigned long bg; - unsigned long fg; - Drawable drawable; - Fnt font; - GC gc; -}; +#include +#include "config.h" +/* 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)) + +/* forward declarations */ +void drawbar(void); +void grabkeyboard(void); +void kpress(XKeyEvent *e); +void run(void); +void setup(unsigned int lines); + +/* variables */ +extern char *prompt; +extern char text[4096]; +extern int promptw; extern int screen; -extern Display *dpy; +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; - -/* draw.c */ -extern void drawtext(const char *text, Bool invert); -extern unsigned long getcolor(const char *colstr); -extern void setfont(const char *fontstr); -extern unsigned int textw(const char *text); - -/* util.c */ -extern void *emalloc(unsigned int size); -extern void eprint(const char *errstr, ...); -extern char *estrdup(const char *str); +extern Display *dpy; +extern Window win, root;