|
@ -59,6 +59,8 @@ static int screen; |
|
|
static unsigned int lines = 0; |
|
|
static unsigned int lines = 0; |
|
|
static unsigned int numlockmask = 0; |
|
|
static unsigned int numlockmask = 0; |
|
|
static unsigned int mw, mh; |
|
|
static unsigned int mw, mh; |
|
|
|
|
|
static unsigned long normcol[ColLast]; |
|
|
|
|
|
static unsigned long selcol[ColLast]; |
|
|
static Bool running = True; |
|
|
static Bool running = True; |
|
|
static DC dc; |
|
|
static DC dc; |
|
|
static Display *dpy; |
|
|
static Display *dpy; |
|
@ -159,18 +161,18 @@ drawmenu(void) { |
|
|
dc.y = 0; |
|
|
dc.y = 0; |
|
|
dc.w = mw; |
|
|
dc.w = mw; |
|
|
dc.h = mh; |
|
|
dc.h = mh; |
|
|
drawtext(&dc, NULL, dc.norm); |
|
|
|
|
|
|
|
|
drawtext(&dc, NULL, normcol); |
|
|
/* print prompt? */ |
|
|
/* print prompt? */ |
|
|
if(prompt) { |
|
|
if(prompt) { |
|
|
dc.w = promptw; |
|
|
dc.w = promptw; |
|
|
drawtext(&dc, prompt, dc.sel); |
|
|
|
|
|
|
|
|
drawtext(&dc, prompt, selcol); |
|
|
dc.x += dc.w; |
|
|
dc.x += dc.w; |
|
|
} |
|
|
} |
|
|
dc.w = mw - dc.x; |
|
|
dc.w = mw - dc.x; |
|
|
/* print command */ |
|
|
/* print command */ |
|
|
if(cmdw && item && lines == 0) |
|
|
if(cmdw && item && lines == 0) |
|
|
dc.w = cmdw; |
|
|
dc.w = cmdw; |
|
|
drawtext(&dc, *text ? text : NULL, dc.norm); |
|
|
|
|
|
|
|
|
drawtext(&dc, *text ? text : NULL, normcol); |
|
|
if(curr) { |
|
|
if(curr) { |
|
|
if(lines > 0) |
|
|
if(lines > 0) |
|
|
drawmenuv(); |
|
|
drawmenuv(); |
|
@ -187,16 +189,16 @@ drawmenuh(void) { |
|
|
|
|
|
|
|
|
dc.x += cmdw; |
|
|
dc.x += cmdw; |
|
|
dc.w = spaceitem; |
|
|
dc.w = spaceitem; |
|
|
drawtext(&dc, curr->left ? "<" : NULL, dc.norm); |
|
|
|
|
|
|
|
|
drawtext(&dc, curr->left ? "<" : NULL, normcol); |
|
|
dc.x += dc.w; |
|
|
dc.x += dc.w; |
|
|
for(i = curr; i != next; i=i->right) { |
|
|
for(i = curr; i != next; i=i->right) { |
|
|
dc.w = MIN(textw(&dc, i->text), mw / 3); |
|
|
dc.w = MIN(textw(&dc, i->text), mw / 3); |
|
|
drawtext(&dc, i->text, (sel == i) ? dc.sel : dc.norm); |
|
|
|
|
|
|
|
|
drawtext(&dc, i->text, (sel == i) ? selcol : normcol); |
|
|
dc.x += dc.w; |
|
|
dc.x += dc.w; |
|
|
} |
|
|
} |
|
|
dc.w = spaceitem; |
|
|
dc.w = spaceitem; |
|
|
dc.x = mw - dc.w; |
|
|
dc.x = mw - dc.w; |
|
|
drawtext(&dc, next ? ">" : NULL, dc.norm); |
|
|
|
|
|
|
|
|
drawtext(&dc, next ? ">" : NULL, normcol); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void |
|
|
void |
|
@ -207,11 +209,11 @@ drawmenuv(void) { |
|
|
dc.h = dc.font.height + 2; |
|
|
dc.h = dc.font.height + 2; |
|
|
dc.y = dc.h; |
|
|
dc.y = dc.h; |
|
|
for(i = curr; i != next; i=i->right) { |
|
|
for(i = curr; i != next; i=i->right) { |
|
|
drawtext(&dc, i->text, (sel == i) ? dc.sel : dc.norm); |
|
|
|
|
|
|
|
|
drawtext(&dc, i->text, (sel == i) ? selcol : normcol); |
|
|
dc.y += dc.h; |
|
|
dc.y += dc.h; |
|
|
} |
|
|
} |
|
|
dc.h = mh - dc.y; |
|
|
dc.h = mh - dc.y; |
|
|
drawtext(&dc, NULL, dc.norm); |
|
|
|
|
|
|
|
|
drawtext(&dc, NULL, normcol); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Bool |
|
|
Bool |
|
@ -490,10 +492,10 @@ setup(Bool topbar) { |
|
|
XFreeModifiermap(modmap); |
|
|
XFreeModifiermap(modmap); |
|
|
|
|
|
|
|
|
dc.dpy = dpy; |
|
|
dc.dpy = dpy; |
|
|
dc.norm[ColBG] = getcolor(&dc, normbgcolor); |
|
|
|
|
|
dc.norm[ColFG] = getcolor(&dc, normfgcolor); |
|
|
|
|
|
dc.sel[ColBG] = getcolor(&dc, selbgcolor); |
|
|
|
|
|
dc.sel[ColFG] = getcolor(&dc, selfgcolor); |
|
|
|
|
|
|
|
|
normcol[ColBG] = getcolor(&dc, normbgcolor); |
|
|
|
|
|
normcol[ColFG] = getcolor(&dc, normfgcolor); |
|
|
|
|
|
selcol[ColBG] = getcolor(&dc, selbgcolor); |
|
|
|
|
|
selcol[ColFG] = getcolor(&dc, selfgcolor); |
|
|
initfont(&dc, font); |
|
|
initfont(&dc, font); |
|
|
|
|
|
|
|
|
/* menu window */ |
|
|
/* menu window */ |
|
|