6 #include "headers/menu.h"
7 #include "headers/utils.h"
9 typedef struct MenuItem {
14 MenuItem** menu_items;
22 int render_menu(Menu* menu);
25 create_menuitem(char* contents)
27 MenuItem* new_menuitem;
29 new_menuitem = malloc(sizeof(MenuItem));
30 new_menuitem->contents = contents;
36 create_menu(MenuItem** item_list)
40 new_menu = malloc(sizeof(Menu));
41 set_menu_items(new_menu, item_list);
42 new_menu->selected_item = 0;
43 set_menu_win(new_menu, stdscr);
49 set_menu_items(Menu* menu, MenuItem** item_list)
51 menu->menu_items = item_list;
52 menu->menu_length = array_length(MenuItem*, item_list);
58 set_menu_win(Menu* menu, WINDOW* win)
61 getmaxyx(menu->menu_win, menu->max_height, menu->max_width);
67 get_menu_items(Menu* menu)
73 render_menu(Menu* menu)
79 for (int i = 0; i < menu->menu_length; i++) {
81 /* wrap text by inserting newlines */
82 mvwprintw(menu->menu_win, cur_line, 0, menu->menu_items[i]->contents);
84 /* color selected item */