moved to c
[taskasaur.git] / main.cpp
index 7757262..44f0278 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -1,20 +1,86 @@
+#include <iostream>
+#include <fstream>
+#include <unistd.h>
+#include <string>
 #include <ncurses.h>
+#include <signal.h>
 using namespace std;
 
-int main(int argc, char ** argv) {
-    
+bool file_exists(const char* file_name) {
+    ifstream test_file(file_name);
+    return (bool)test_file;
+}
+
+void winch_handler(int signum) { // handle terminal resize
+    refresh();
+}
+
+int main(int argc, char** argv) {
+   
+   signal(SIGWINCH, winch_handler); 
+
+    // read command line args
+    if (argc < 2) {
+        cout << "Taskasaur options\n-o [board_name]\n-n [new_board+name]";
+        return 1;
+    }
+   
+    int flag; 
+    while ((flag = getopt(argc, argv, "o:n:")) != -1) {
+        if (flag == 'o') {
+
+            char* file_name = optarg;
+            printf("Opening %s\n", file_name);
+
+            // check if file exists
+            if (!file_exists(file_name)) {
+                printf("%s does not exist.\n", file_name);
+                return 1;
+            }
+
+        } else if (flag == 'n') {
+
+            char* new_file_name = optarg;
+            printf("Creating %s\n", new_file_name);
+
+            if (file_exists(new_file_name)) {
+                printf("The board %s already exist.\n", new_file_name);
+                return 1;
+            }
+
+            ofstream new_file;
+            new_file.open(new_file_name);
+            new_file << "# Taskasaur\n";
+            new_file.close();
+
+        }
+    }   
+    /* return 0; */
+
+   
+    // start ncurses 
     initscr();
     cbreak();
     /* raw(); */
     noecho();
+    start_color();
     
-    WINDOW * win = newwin(10,20,10,10); 
-    
+    init_pair(1, COLOR_CYAN, COLOR_BLACK); 
+    init_pair(2, COLOR_BLACK, COLOR_CYAN); 
+
+    int height, width;
+    getmaxyx(stdscr, height, width);
+
+    WINDOW * win = newwin(10,20,5,10); 
+    WINDOW * todo_win = newwin(20,20,5,35);
+    WINDOW * bottombar = newwin(1,width,height-1,0); 
     refresh();
     
     int x, y;
     x = y = 0;
 
+    string todo_list[3] = {"Contemplate life", "Question life", "Ponder about life"};
+
     while (true) {
         int ch = getch();
         
@@ -35,12 +101,25 @@ int main(int argc, char ** argv) {
         } 
         if (ch == 113) break; // q for quit
 
-        move(y,x);
-
         box(win, 0, 0);
+        wattron(win,COLOR_PAIR(1));
+        wattron(win, A_BOLD);
         mvwprintw(win, 0, 1, "lmao");
+        wattroff(win, A_BOLD);
+        wattroff(win,COLOR_PAIR(1));
+        mvwprintw(win, 1, 2, "poopoopeepee");
         wrefresh(win);
 
+        for (int i = 0; i < sizeof(todo_list)/sizeof(string); i++) {
+            mvwprintw(todo_win, 2*i, 0, todo_list[i].c_str());
+        }
+        wrefresh(todo_win);
+
+        wbkgd(bottombar, COLOR_PAIR(2));        
+        mvwprintw(bottombar, 0, 2, "BOTTOM TEXT");
+        wrefresh(bottombar);
+
+        move(y,x);
         refresh();
         /* clear(); */
     }