|
|
@ -22,12 +22,10 @@ |
|
|
|
enum { ColFG, ColBG, ColLast }; |
|
|
|
enum { ColFG, ColBG, ColLast }; |
|
|
|
|
|
|
|
|
|
|
|
/* typedefs */ |
|
|
|
/* typedefs */ |
|
|
|
typedef unsigned int uint; |
|
|
|
|
|
|
|
typedef unsigned long ulong; |
|
|
|
|
|
|
|
typedef struct { |
|
|
|
typedef struct { |
|
|
|
int x, y, w, h; |
|
|
|
int x, y, w, h; |
|
|
|
ulong norm[ColLast]; |
|
|
|
unsigned long norm[ColLast]; |
|
|
|
ulong sel[ColLast]; |
|
|
|
unsigned long sel[ColLast]; |
|
|
|
Drawable drawable; |
|
|
|
Drawable drawable; |
|
|
|
GC gc; |
|
|
|
GC gc; |
|
|
|
struct { |
|
|
|
struct { |
|
|
@ -52,9 +50,9 @@ static void calcoffsets(void); |
|
|
|
static char *cistrstr(const char *s, const char *sub); |
|
|
|
static char *cistrstr(const char *s, const char *sub); |
|
|
|
static void cleanup(void); |
|
|
|
static void cleanup(void); |
|
|
|
static void drawmenu(void); |
|
|
|
static void drawmenu(void); |
|
|
|
static void drawtext(const char *text, ulong col[ColLast]); |
|
|
|
static void drawtext(const char *text, unsigned long col[ColLast]); |
|
|
|
static void eprint(const char *errstr, ...); |
|
|
|
static void eprint(const char *errstr, ...); |
|
|
|
static ulong getcolor(const char *colstr); |
|
|
|
static unsigned long getcolor(const char *colstr); |
|
|
|
static Bool grabkeyboard(void); |
|
|
|
static Bool grabkeyboard(void); |
|
|
|
static void initfont(const char *fontstr); |
|
|
|
static void initfont(const char *fontstr); |
|
|
|
static void kpress(XKeyEvent * e); |
|
|
|
static void kpress(XKeyEvent * e); |
|
|
@ -62,7 +60,7 @@ static void match(char *pattern); |
|
|
|
static void readstdin(void); |
|
|
|
static void readstdin(void); |
|
|
|
static void run(void); |
|
|
|
static void run(void); |
|
|
|
static void setup(Bool topbar); |
|
|
|
static void setup(Bool topbar); |
|
|
|
static int textnw(const char *text, uint len); |
|
|
|
static int textnw(const char *text, unsigned int len); |
|
|
|
static int textw(const char *text); |
|
|
|
static int textw(const char *text); |
|
|
|
|
|
|
|
|
|
|
|
#include "config.h" |
|
|
|
#include "config.h" |
|
|
@ -75,8 +73,8 @@ static int cmdw = 0; |
|
|
|
static int promptw = 0; |
|
|
|
static int promptw = 0; |
|
|
|
static int ret = 0; |
|
|
|
static int ret = 0; |
|
|
|
static int screen; |
|
|
|
static int screen; |
|
|
|
static uint mw, mh; |
|
|
|
static unsigned int mw, mh; |
|
|
|
static uint numlockmask = 0; |
|
|
|
static unsigned int numlockmask = 0; |
|
|
|
static Bool running = True; |
|
|
|
static Bool running = True; |
|
|
|
static Display *dpy; |
|
|
|
static Display *dpy; |
|
|
|
static DC dc = {0}; |
|
|
|
static DC dc = {0}; |
|
|
@ -104,7 +102,7 @@ appenditem(Item *i, Item **list, Item **last) { |
|
|
|
void |
|
|
|
void |
|
|
|
calcoffsets(void) { |
|
|
|
calcoffsets(void) { |
|
|
|
int tw; |
|
|
|
int tw; |
|
|
|
uint w; |
|
|
|
unsigned int w; |
|
|
|
|
|
|
|
|
|
|
|
if(!curr) |
|
|
|
if(!curr) |
|
|
|
return; |
|
|
|
return; |
|
|
@ -131,7 +129,7 @@ calcoffsets(void) { |
|
|
|
char * |
|
|
|
char * |
|
|
|
cistrstr(const char *s, const char *sub) { |
|
|
|
cistrstr(const char *s, const char *sub) { |
|
|
|
int c, csub; |
|
|
|
int c, csub; |
|
|
|
uint len; |
|
|
|
unsigned int len; |
|
|
|
|
|
|
|
|
|
|
|
if(!sub) |
|
|
|
if(!sub) |
|
|
|
return (char *)s; |
|
|
|
return (char *)s; |
|
|
@ -213,10 +211,10 @@ drawmenu(void) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
void |
|
|
|
drawtext(const char *text, ulong col[ColLast]) { |
|
|
|
drawtext(const char *text, unsigned long col[ColLast]) { |
|
|
|
int x, y, w, h; |
|
|
|
int x, y, w, h; |
|
|
|
static char buf[256]; |
|
|
|
static char buf[256]; |
|
|
|
uint len, olen; |
|
|
|
unsigned int len, olen; |
|
|
|
XRectangle r = { dc.x, dc.y, dc.w, dc.h }; |
|
|
|
XRectangle r = { dc.x, dc.y, dc.w, dc.h }; |
|
|
|
|
|
|
|
|
|
|
|
XSetForeground(dpy, dc.gc, col[ColBG]); |
|
|
|
XSetForeground(dpy, dc.gc, col[ColBG]); |
|
|
@ -262,7 +260,7 @@ eprint(const char *errstr, ...) { |
|
|
|
exit(EXIT_FAILURE); |
|
|
|
exit(EXIT_FAILURE); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ulong |
|
|
|
unsigned long |
|
|
|
getcolor(const char *colstr) { |
|
|
|
getcolor(const char *colstr) { |
|
|
|
Colormap cmap = DefaultColormap(dpy, screen); |
|
|
|
Colormap cmap = DefaultColormap(dpy, screen); |
|
|
|
XColor color; |
|
|
|
XColor color; |
|
|
@ -274,7 +272,7 @@ getcolor(const char *colstr) { |
|
|
|
|
|
|
|
|
|
|
|
Bool |
|
|
|
Bool |
|
|
|
grabkeyboard(void) { |
|
|
|
grabkeyboard(void) { |
|
|
|
uint len; |
|
|
|
unsigned int len; |
|
|
|
|
|
|
|
|
|
|
|
for(len = 1000; len; len--) { |
|
|
|
for(len = 1000; len; len--) { |
|
|
|
if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) |
|
|
|
if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) |
|
|
@ -330,7 +328,7 @@ void |
|
|
|
kpress(XKeyEvent * e) { |
|
|
|
kpress(XKeyEvent * e) { |
|
|
|
char buf[32]; |
|
|
|
char buf[32]; |
|
|
|
int i, num; |
|
|
|
int i, num; |
|
|
|
uint len; |
|
|
|
unsigned int len; |
|
|
|
KeySym ksym; |
|
|
|
KeySym ksym; |
|
|
|
|
|
|
|
|
|
|
|
len = strlen(text); |
|
|
|
len = strlen(text); |
|
|
@ -498,7 +496,7 @@ kpress(XKeyEvent * e) { |
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
void |
|
|
|
match(char *pattern) { |
|
|
|
match(char *pattern) { |
|
|
|
uint plen; |
|
|
|
unsigned int plen; |
|
|
|
Item *i, *itemend, *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend; |
|
|
|
Item *i, *itemend, *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend; |
|
|
|
|
|
|
|
|
|
|
|
if(!pattern) |
|
|
|
if(!pattern) |
|
|
@ -540,7 +538,7 @@ match(char *pattern) { |
|
|
|
void |
|
|
|
void |
|
|
|
readstdin(void) { |
|
|
|
readstdin(void) { |
|
|
|
char *p, buf[1024]; |
|
|
|
char *p, buf[1024]; |
|
|
|
uint len = 0, max = 0; |
|
|
|
unsigned int len = 0, max = 0; |
|
|
|
Item *i, *new; |
|
|
|
Item *i, *new; |
|
|
|
|
|
|
|
|
|
|
|
i = 0; |
|
|
|
i = 0; |
|
|
@ -659,7 +657,7 @@ setup(Bool topbar) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int |
|
|
|
int |
|
|
|
textnw(const char *text, uint len) { |
|
|
|
textnw(const char *text, unsigned int len) { |
|
|
|
XRectangle r; |
|
|
|
XRectangle r; |
|
|
|
|
|
|
|
|
|
|
|
if(dc.font.set) { |
|
|
|
if(dc.font.set) { |
|
|
@ -676,7 +674,7 @@ textw(const char *text) { |
|
|
|
|
|
|
|
|
|
|
|
int |
|
|
|
int |
|
|
|
main(int argc, char *argv[]) { |
|
|
|
main(int argc, char *argv[]) { |
|
|
|
uint i; |
|
|
|
unsigned int i; |
|
|
|
Bool topbar = True; |
|
|
|
Bool topbar = True; |
|
|
|
|
|
|
|
|
|
|
|
/* command line args */ |
|
|
|
/* command line args */ |
|
|
|