From 87dc80c9f8075ba2c537af8e16b51ac5e3189c0e Mon Sep 17 00:00:00 2001 From: Venelin Date: Sat, 10 Dec 2022 22:43:21 +0200 Subject: [PATCH] ncurses initial --- main.cpp | 11 ++++++--- person.cpp | 71 ++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 63 insertions(+), 19 deletions(-) diff --git a/main.cpp b/main.cpp index c3acb02..b7fac34 100644 --- a/main.cpp +++ b/main.cpp @@ -8,6 +8,7 @@ using std::cout; int main() { + setlocale(LC_ALL, ""); initscr(); /* Start curses mode */ /*Tree test1("Dechkovi"); //addTree Dechkovi addTree Karamanovi load 0 load 1 (to work with these example trees) @@ -40,7 +41,7 @@ int main() Tree firstTree("firstTree"); - firstTree.addPerson("Адам,", true, Nobody, Nobody, {0, 1, 6}); + firstTree.addPerson("Адам", true, Nobody, Nobody, {0, 1, 6}); firstTree.addPerson("Ева", false, Nobody, Nobody, {0, 1, 6}); firstTree.addRelation(0, Husband, 1); @@ -59,8 +60,6 @@ int main() /* ====================================================== */ - refresh(); /* Print it on to the real screen */ - Array trees; bool quit = false; @@ -106,7 +105,11 @@ int main() do { - std::cout << "Enter a command\n"; + clear(); + printw("Enter a command\n"); + refresh(); + // getmaxyx(stdscr,row,col); /* get the number of rows and columns */ + std::cin >> input; for (i = 0; i < numCom; ++i) { diff --git a/person.cpp b/person.cpp index 6dc9f13..5898897 100644 --- a/person.cpp +++ b/person.cpp @@ -1,11 +1,14 @@ #include #include +#include #include"person.h" #include "help.h" using std::cout; +WINDOW* info_tab; + EventTime::EventTime(I16 Year, U8 Month, U16 Day, I8 Hour, I8 Minute) : year(Year) , month(Month) @@ -18,23 +21,41 @@ EventTime::EventTime(I16 Year, U8 Month, U16 Day, I8 Hour, I8 Minute) void EventTime::print() const { + /* if (day != UNKNOWN_DATE) */ + /* cout << (I32)day; */ + /* else */ + /* cout << "??"; */ + /* cout << '.'; */ + + /* if (month != UNKNOWN_DATE) */ + /* cout << (I32)month; */ + /* else */ + /* cout << "??"; */ + /* cout << '.'; */ + + /* if (year != UNKNOWN_DATE) */ + /* cout << year; */ + /* else */ + /* cout << "????"; */ + /* cout << '\n'; */ + if (day != UNKNOWN_DATE) - cout << (I32)day; + wprintw(info_tab, "%d", day); else - cout << "??"; - cout << '.'; + waddstr(info_tab, "??"); + waddch(info_tab, '.'); if (month != UNKNOWN_DATE) - cout << (I32)month; + wprintw(info_tab, "%d", month); else - cout << "??"; - cout << '.'; + waddstr(info_tab, "??"); + waddch(info_tab, '.'); if (year != UNKNOWN_DATE) - cout << year; + wprintw(info_tab, "%d", year); else - cout << "????"; - cout << '\n'; + waddstr(info_tab, "????"); + waddch(info_tab, '\n'); } @@ -106,14 +127,34 @@ void Person::rename(const char* newName) void Person::print()const { - cout << name_ << '\n'; - cout << (isMale_ ? "Male\n" : "Female\n"); + info_tab = newwin(LINES, COLS, 0, 0); - cout << "Birth: "; + waddstr(info_tab, name_.data()); + waddch(info_tab,'\n'); + + waddstr(info_tab, "Birth: "); birth_.print(); - cout << "Death: "; //TODO: only print if known + waddstr(info_tab, "Death: "); death_.print(); - - cout << '\n'; + + mvaddstr(LINES-1, 0, "Press any key to return."); + + wrefresh(info_tab); + getch(); /* waint press */ + + werase(info_tab); + wrefresh(info_tab); + delwin(info_tab); + + /* cout << name_ << '\n'; */ + /* cout << (isMale_ ? "Male\n" : "Female\n"); */ + + /* cout << "Birth: "; */ + /* birth_.print(); */ + + /* cout << "Death: "; //TODO: only print if known */ + /* death_.print(); */ + + /* cout << '\n'; */ }