jump to similar position between menus
[taskasaur.git] / menu.c
diff --git a/menu.c b/menu.c
index 5c79587..4d27ec4 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -19,6 +19,7 @@ typedef struct MenuItem {
 } MenuItem;
 
 typedef struct Menu {
+    char* menu_name;
     MenuItem** menu_items;
     int menu_length;
     int selected_item;
@@ -45,11 +46,12 @@ create_menuitem(char* contents)
 }
 
 Menu* 
-create_menu(MenuItem** item_list)
+create_menu(char* menu_name, MenuItem** item_list)
 {
     Menu* new_menu;
 
     new_menu = malloc(sizeof(Menu));
+    new_menu->menu_name = menu_name;
     new_menu->menu_items = item_list;
     new_menu->menu_length = array_length(MenuItem*, item_list);
     new_menu->selected_item = 0;
@@ -96,6 +98,26 @@ set_menu_focus(Menu* menu, bool focus)
     return 0;
 }
 
+int
+get_selected_item(Menu* menu)
+{
+    return menu->selected_item;
+}
+
+int
+set_selected_item(Menu* menu, int selected_item)
+{
+    menu->selected_item = selected_item;
+
+    return 0;
+}
+
+int
+get_menu_length(Menu* menu)
+{
+    return menu->menu_length;
+}
+
 int
 swap_item(Menu* menu, int src_index, int dest_index)
 {
@@ -189,7 +211,7 @@ render_menu(Menu* menu)
         (menu->focused == true) ?
         TS_MENU_SELECTED: TS_MENU_NONSELECTED       
     ));
-    mvwprintw(menu->menu_win, 0, MENU_PAD_LEFT, "TODO");
+    mvwprintw(menu->menu_win, 0, MENU_PAD_LEFT, menu->menu_name);
     wattroff(menu->menu_win, COLOR_PAIR(0));
 
     /* draw inner menu */