-BoardMenu*
-create_board_menu(Board* board)
-{
- BoardMenu* new_boardmenu;
-
- new_boardmenu = malloc(sizeof(BoardMenu));
-
- new_boardmenu->menu_list = make_menus(board, board->todolist_count);
- new_boardmenu->menu_count = board->todolist_count;
- new_boardmenu->selected = 0;
-
- return new_boardmenu;
-}
-
-Board*
-boardmenu_to_board(BoardMenu* boardmenu)
-{
- Board newboard = malloc(sizeof(Board));
- TodoList** todolist_list = malloc(sizeof(TodoList*));
-
- for (int i = 0; i < boardmenu->menu_count; i++) {
- Menu* curmenu = boardmenu->menu_list[i];
-
- TodoList* new_todolist = malloc(sizeof(TodoList));
- TodoItem** item_list = malloc(sizeof(TodoItem*));
- new_todolist->list_name = get_menu_name(curmenu);
- new_todolist->item_count = get_menu_length(curmenu);
-
- /* for (int j = 0; j < get_menu_length(curmenu); j++) { */
-
- /* } */
-
- new_todolist->item_list = item_list;
-
- }
-
- newboard->todolist_list = todolist_list;
- newboard->todolist_count = boardmenu->menu_count;
-
- return newboard;
-
-}
-
-int
-set_selected_menu(BoardMenu* boardmenu, int index)
-{
- Menu* old_menu;
- Menu* new_menu;
- int new_pos;
-
- old_menu = boardmenu->menu_list[boardmenu->selected];
- new_menu = boardmenu->menu_list[index];
-
- set_menu_focus(old_menu, false);
- set_menu_focus(new_menu, true);
-
- /* also try to jump to a similar position if possible */
- /* rn theres a bug if old menu is empty */
- new_pos = min(get_selected_item(old_menu), get_menu_length(new_menu)-1);
- set_selected_item(new_menu, new_pos);
-
- boardmenu->selected = index;
-
- return 0;
-}
-
-MenuItem**
-todolist_to_menuitem(TodoItem** item_list, int list_length)
-{
- MenuItem** items;
-
- items = malloc((list_length+1)*sizeof(MenuItem*));
- for (int i = 0; i < list_length; i++) {
- items[i] = create_menuitem(item_list[i]->item_name);
- }
-
- items[list_length] = 0; //null terminate
- return items;
-}
-
-Menu**
-make_menus(Board* board, int todolist_length)