X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=headers%2Frender.h;h=58aa6dbda795b84bb9ea5cf8baf4fea4fafe5f20;hb=8dc9b3f9852c4f6d38d82100a5a3bf95a2e26fa2;hp=ac094aa233902480ccf1ec262f69b489fe634f69;hpb=30e6d7ecd064b2425f438293787a26d89781548b;p=taskasaur.git diff --git a/headers/render.h b/headers/render.h index ac094aa..58aa6db 100644 --- a/headers/render.h +++ b/headers/render.h @@ -3,16 +3,64 @@ #define __RENDER_H__ #include +#include "parser.h" +#include "menu.h" +#include "utils.h" + +// this is temp +#define MENU_WIDTH 40 +#define POPUP_BORDER 2 enum TaskasaurColors { TS_SELECTED = 1, TS_NONSELECTED, TS_MENU_SELECTED, TS_MENU_NONSELECTED, + TS_ITEMCOUNT }; +typedef struct PopupMenu { + WINDOW* win; + Menu* menu; +} PopupMenu; + +typedef struct BoardMenu { + Menu** menu_list; + int menu_count; + int selected; + PopupMenu* popupmenu; + int popup_open; +} BoardMenu; + /* the ts is used to not conflict with builtin names */ extern int init_tscurses(void); extern int exit_tscurses(void); +extern int curs_on(void); +extern int curs_off(void); + +/* board menu */ +extern BoardMenu* create_board_menu(Board* board); +extern Menu** make_menus(Board* board, int todolist_length); +extern MenuItem** todolist_to_menuitem(TodoItem** item_list, int list_length); +extern Board* boardmenu_to_board(BoardMenu* boardmenu); +extern int render_board(Board* board); + +extern int set_selected_menu(BoardMenu* boardmenu, int index); +extern int swap_menu(BoardMenu* boardmenu, int src_index, int dest_index); + +/* menuitem stuff */ +extern int update_menuitem_descrip(MenuItem* menuitem); + +/* popup menu for menu item */ +extern PopupMenu* make_popupmenu(TodoItem* itemdata); +extern WINDOW* create_popup_win(TodoItem* item_info); +extern void close_popupmenu(Menu* popupmenu_menu); +extern MenuItem** subtasklist_to_menuitem(SubTask** subtask_list, int list_length); +extern SubTask** menuitem_to_subtasklist(MenuItem** menuitem_list, int list_length); + +/* some helpers */ +extern int ungetstr(char* str); + + #endif