+ if (lines > 0) {
+ /* draw vertical list */
+ w = mw - x;
+ for (item = curr; item != next; item = item->right) {
+ y += h;
+ if (item == sel)
+ drw_setscheme(drw, &scheme[SchemeSel]);
+ else if (item->out)
+ drw_setscheme(drw, &scheme[SchemeOut]);
+ else
+ drw_setscheme(drw, &scheme[SchemeNorm]);
+
+ drw_text(drw, x, y, w, bh, item->text, 0);
+ }
+ } else if (matches) {
+ /* draw horizontal list */
+ x += inputw;
+ w = TEXTW("<");
+ if (curr->left) {
+ drw_setscheme(drw, &scheme[SchemeNorm]);
+ drw_text(drw, x, 0, w, bh, "<", 0);
+ }
+ for (item = curr; item != next; item = item->right) {
+ x += w;
+ w = MIN(TEXTW(item->text), mw - x - TEXTW(">"));
+
+ if (item == sel)
+ drw_setscheme(drw, &scheme[SchemeSel]);
+ else if (item->out)
+ drw_setscheme(drw, &scheme[SchemeOut]);
+ else
+ drw_setscheme(drw, &scheme[SchemeNorm]);
+ drw_text(drw, x, 0, w, bh, item->text, 0);
+ }
+ w = TEXTW(">");
+ x = mw - w;
+ if (next) {
+ drw_setscheme(drw, &scheme[SchemeNorm]);
+ drw_text(drw, x, 0, w, bh, ">", 0);
+ }
+ }
+ drw_map(drw, win, 0, 0, mw, mh);