menu focus
[taskasaur.git] / headers / menu.h
1
2 #ifndef __MENU_H__
3 #define __MENU_H__
4
5 #include <stdbool.h>
6
7 /* ncurses doesn't support multiline menu items,
8  * so i wrote my own menu lib */
9
10 typedef enum {
11     MENU_UP = 0,
12     MENU_DOWN,
13     MENU_TOP,
14     MENU_BOTTOM,
15     MENU_MOVE_UP,
16     MENU_MOVE_DOWN,
17     MENU_DELETE
18 } MenuAction;
19
20 typedef struct Menu Menu;
21 typedef struct MenuItem MenuItem;
22
23 extern MenuItem* create_menuitem(char* contents);
24
25 extern Menu* create_menu(MenuItem** item_list);
26 extern int set_menu_win(Menu* menu, WINDOW* win);
27 extern MenuItem* get_menu_items(Menu* menu);
28 extern int set_menu_focus(Menu* menu, bool focus);
29
30 extern int menu_driver(Menu* menu, MenuAction action);
31
32 extern int render_menu(Menu* menu);
33
34 extern int free_menu(Menu* menu);
35
36 #endif