diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2014-10-25 20:02:34 +0300 |
---|---|---|
committer | Jari Vetoniemi <mailroxas@gmail.com> | 2014-10-25 20:02:34 +0300 |
commit | d3db039136ad66d2c83c1c0fbf0964bfbb5afb16 (patch) | |
tree | 93af6d73ad168e0169183a9c4f625acd5492e08c /lib/renderers/curses | |
parent | 2820734ec01ad6d2e1a0611fa480c3dd533588c7 (diff) | |
download | bemenu-d3db039136ad66d2c83c1c0fbf0964bfbb5afb16.tar.gz bemenu-d3db039136ad66d2c83c1c0fbf0964bfbb5afb16.tar.bz2 bemenu-d3db039136ad66d2c83c1c0fbf0964bfbb5afb16.zip |
Single line mode, color customization, etc..
Diffstat (limited to 'lib/renderers/curses')
-rw-r--r-- | lib/renderers/curses/curses.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/renderers/curses/curses.c b/lib/renderers/curses/curses.c index c40e833..5771afa 100644 --- a/lib/renderers/curses/curses.c +++ b/lib/renderers/curses/curses.c @@ -156,7 +156,6 @@ render(const struct bm_menu *menu) init_pair(2, COLOR_RED, -1); } - const uint32_t lines = getmaxy(curses.stdscr); erase(); uint32_t ncols = getmaxx(curses.stdscr); @@ -183,11 +182,14 @@ render(const struct bm_menu *menu) } uint32_t count, cl = 1; - struct bm_item **items = bm_menu_get_filtered_items(menu, &count); - for (uint32_t i = (menu->index / (lines - 1)) * (lines - 1); i < count && cl < lines; ++i) { - bool highlighted = (items[i] == bm_menu_get_highlighted_item(menu)); - int32_t color = (highlighted ? 2 : (bm_menu_item_is_selected(menu, items[i]) ? 1 : 0)); - draw_line(color, cl++, "%s%s", (highlighted ? ">> " : " "), (items[i]->text ? items[i]->text : "")); + const uint32_t lines = getmaxy(curses.stdscr); + if (lines > 1) { + struct bm_item **items = bm_menu_get_filtered_items(menu, &count); + for (uint32_t i = (menu->index / (lines - 1)) * (lines - 1); i < count && cl < lines; ++i) { + bool highlighted = (items[i] == bm_menu_get_highlighted_item(menu)); + int32_t color = (highlighted ? 2 : (bm_menu_item_is_selected(menu, items[i]) ? 1 : 0)); + draw_line(color, cl++, "%s%s", (highlighted ? ">> " : " "), (items[i]->text ? items[i]->text : "")); + } } move(0, title_len + (menu->curses_cursor < ccols ? menu->curses_cursor : ccols)); |