]> Pileus Git - lackey/blobdiff - src/main.c
Move main loop and curses init to view
[lackey] / src / main.c
index 7d8d517d5f9772a9d0179563bda550b50e7d5ba2..c10ea67135d785c86882d3d72cefa13d7e024018 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#define _XOPEN_SOURCE
-
 #include <stdlib.h>
 #include <signal.h>
-#include <locale.h>
-#include <ncurses.h>
 
 #include "util.h"
 #include "conf.h"
@@ -38,7 +34,7 @@ static void on_config(const char *group, const char *name, const char *key, cons
 /* Control-C handler, so we don't hose the therminal */
 static void on_sigint(int signum)
 {
-       endwin();
+       view_exit();
        exit(0);
 }
 
@@ -48,34 +44,6 @@ int main(int argc, char **argv)
        /* Misc setup */
        signal(SIGINT, on_sigint);
 
-       /* Set default escape timeout */
-       if (!getenv("ESCDELAY"))
-               putenv("ESCDELAY=25");
-
-       /* Setup Curses */
-       setlocale(LC_ALL, "");
-       initscr();
-       cbreak();
-       noecho();
-       keypad(stdscr, TRUE);
-       start_color();
-       curs_set(false);
-       timeout(100);
-       use_default_colors();
-       mousemask(ALL_MOUSE_EVENTS, NULL);
-
-       init_pair(COLOR_TITLE, COLOR_GREEN,   -1);
-       init_pair(COLOR_ERROR, COLOR_RED,     -1);
-
-       init_pair(COLOR_NEW,   COLOR_RED,     -1);
-       init_pair(COLOR_WIP,   COLOR_YELLOW,  -1);
-       init_pair(COLOR_DONE,  COLOR_GREEN,   -1);
-
-       init_pair(COLOR_CLASS, COLOR_BLUE,    -1);
-       init_pair(COLOR_EC,    COLOR_GREEN,   -1);
-       init_pair(COLOR_WORK,  COLOR_MAGENTA, -1);
-       init_pair(COLOR_OTHER, COLOR_RED,     -1);
-
        /* Configuration */
        conf_setup(argc, argv, ".lackeyrc", on_config);
 
@@ -84,46 +52,11 @@ int main(int argc, char **argv)
        conf_init();
        date_init();
        cal_init();
-       view_init();
 
-       /* Draw initial view */
-       date_sync();
-       view_draw();
-
-       /* Run */
-       while (1) {
-               MEVENT btn;
-               conf_sync();
-               int chr = getch();
-               date_sync();
-               if (chr == 'q')
-                       break;
-               if (chr == KEY_MOUSE)
-                       if (getmouse(&btn) != OK)
-                               continue;
-               switch (chr) {
-                       case KEY_RESIZE:
-                               endwin();
-                               refresh();
-                               view_resize();
-                               view_draw();
-                               continue;
-                       case '\14': // Ctrl-L
-                               clear();
-                       case '\7':  // Ctrl-G
-                               view_resize();
-                               view_draw();
-                               continue;
-               }
-               if (view_run(chr, btn.bstate, btn.y, btn.x))
-                       continue;
-               if (chr == ERR) // timeout
-                       continue;
-               debug("main: Unhandled key - Dec %3d,  Hex %02x,  Oct %03o,  Chr <%c>",
-                               chr, chr, chr, chr);
-       }
+       /* Run view main */
+       view_init();
+       view_main();
+       view_exit();
 
-       /* Cleanup, see also on_sigint, error */
-       endwin();
        return 0;
 }