X-Git-Url: https://git.danieliu.xyz/?p=taskasaur.git;a=blobdiff_plain;f=menu.c;h=f077fd2395209a52071cdc0aafc96cc9dcc1a8a3;hp=5d5a0eb26d5d1ba5483f98b291e603b6ca8642e6;hb=7cd288f609ab7d99e5fb5b8da07d2c1b6f32907d;hpb=63ddce932065c2d05cf6412f52fd5c4637e195a3 diff --git a/menu.c b/menu.c index 5d5a0eb..f077fd2 100644 --- a/menu.c +++ b/menu.c @@ -4,6 +4,7 @@ #include #include "headers/menu.h" +#include "headers/render.h" #include "headers/utils.h" typedef struct MenuItem { @@ -72,12 +73,29 @@ get_menu_items(Menu* menu) int render_menu(Menu* menu) { + int cur_line; + + cur_line = 0; for (int i = 0; i < menu->menu_length; i++) { + + int wrapped_lines; + char* wrapped_text; + int text_color; /* wrap text by inserting newlines */ + wrapped_text = wrap_text(menu->menu_items[i]->contents, menu->max_width, &wrapped_lines); /* color selected item */ + text_color = (i == menu->selected_item) ? TS_SELECTED : TS_NONSELECTED; + + wattron(menu->menu_win, COLOR_PAIR(text_color)); + mvwprintw(menu->menu_win, cur_line, 0, wrapped_text); + wattroff(menu->menu_win, COLOR_PAIR(text_color)); + + cur_line += wrapped_lines; + + free(wrapped_text); }