summaryrefslogtreecommitdiff
path: root/lib/renderers/curses
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2014-10-25 20:02:34 +0300
committerJari Vetoniemi <mailroxas@gmail.com>2014-10-25 20:02:34 +0300
commitd3db039136ad66d2c83c1c0fbf0964bfbb5afb16 (patch)
tree93af6d73ad168e0169183a9c4f625acd5492e08c /lib/renderers/curses
parent2820734ec01ad6d2e1a0611fa480c3dd533588c7 (diff)
downloadbemenu-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.c14
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));