static char *cistrstr(const char *s, const char *sub);
static void cleanup(void);
static void dinput(void);
+static void drawitem(const char *s, unsigned long col[ColLast]);
static void drawmenuh(void);
static void drawmenuv(void);
static void match(void);
dc.y = 0;
dc.w = mw;
dc.h = mh;
- drawtext(&dc, NULL, normcol);
+ drawbox(&dc, normcol);
dc.h = dc.font.height + 2;
dc.y = topbar ? 0 : mh - dc.h;
/* print prompt? */
if(prompt) {
dc.w = promptw;
+ drawbox(&dc, selcol);
drawtext(&dc, prompt, selcol);
dc.x += dc.w;
}
commitdraw(&dc, win);
}
+void
+drawitem(const char *s, unsigned long col[ColLast]) {
+ const char *p;
+ unsigned int w = textnw(&dc, text, strlen(text));
+
+ drawbox(&dc, col);
+ drawtext(&dc, s, col);
+ for(p = fstrstr(s, text); *text && (p = fstrstr(p, text)); p++)
+ drawline(&dc, textnw(&dc, s, p-s) + dc.h/2 - 1, dc.h-2, w, 1, col);
+}
+
void
drawmenuh(void) {
Item *i;
dc.x += dc.w;
for(i = curr; i != next; i = i->right) {
dc.w = MIN(textw(&dc, i->text), mw / 3);
- drawtext(&dc, i->text, (sel == i) ? selcol : normcol);
+ drawitem(i->text, (sel == i) ? selcol : normcol);
dc.x += dc.w;
}
dc.w = textw(&dc, ">");
dc.y = topbar ? dc.h : 0;
dc.w = mw - dc.x;
for(i = curr; i != next; i = i->right) {
- drawtext(&dc, i->text, (sel == i) ? selcol : normcol);
+ drawitem(i->text, (sel == i) ? selcol : normcol);
dc.y += dc.h;
}
if(!XGetWindowAttributes(dpy, win, &wa))