X-Git-Url: https://git.danieliu.xyz/?p=taskasaur.git;a=blobdiff_plain;f=taskasaur.c;fp=taskasaur.c;h=783ed90c6c3ac2cfdab63456029579639c50df16;hp=cb929e908b5c3e9f46ac4fb7166502fc90326d31;hb=edba973b080b9c28bc29fe3e10fd63de5a2f7356;hpb=951f634549621ffa65e1855ea32d75965fec13ab diff --git a/taskasaur.c b/taskasaur.c index cb929e9..783ed90 100644 --- a/taskasaur.c +++ b/taskasaur.c @@ -6,6 +6,7 @@ #include "config.h" void render_step(BoardMenu* boardmenu); +void save_to_file(char* filepath, BoardMenu* boardmenu); int main(int argc, char** argv) @@ -27,7 +28,7 @@ main(int argc, char** argv) /* need to render before user presses anything */ render_step(boardmenu); - char ch; + int ch; while ((ch = getch()) != BINDING_QUIT) { Menu* active_menu; @@ -149,23 +150,28 @@ main(int argc, char** argv) menu_driver(active_menu, MENU_EDIT); break; case BINDING_SELECT: - break; case BINDING_WRITE: - { - Board* writeboard; - writeboard = boardmenu_to_board(boardmenu); - - begin_write(boardfile_name, writeboard); - free_board(writeboard); - } + save_to_file(boardfile_name, boardmenu); + break; + case KEY_RESIZE: + /* ; */ + /* int y, x; */ + /* char out[10]; */ + /* getmaxyx(stdscr, y, x); */ + /* sprintf(out, "%d,%d", y, x); */ + /* mvprintw(20, 20, out); */ + /* resize_term(y, x); */ break; } render_step(boardmenu); } + + /* save on exit - this causes weird stuff to happen, maybe it's not given enough time to write before program exits? */ + /* save_to_file(boardfile_name, boardmenu); */ exit_tscurses(); return 0; @@ -186,3 +192,13 @@ render_step(BoardMenu* boardmenu) render_menu(curmenu); } } + +void +save_to_file(char* filepath, BoardMenu* boardmenu) +{ + Board* writeboard; + writeboard = boardmenu_to_board(boardmenu); + + begin_write(filepath, writeboard); + free_board(writeboard); +}