+#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();
}
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(); */
}