#ifndef VIEW_H #define VIEW_H #include <iostream> #include <cmath> #include <vector> #include <functional> #include <ncurses.h> // sudo apt-get install libncurses5-dev #include <sys/ioctl.h> #include <unistd.h> class View { public: View(void); static void setWinContext(WINDOW* win); static WINDOW* getWinContext(void); virtual void addCall(std::function<void(int)> call); void setSize(int width, int height); void setTitle(std::string title); virtual void repaint(void); virtual void draw(void) = 0; virtual std::function<void(int)> keypress(int& key) = 0; protected: int width, height; int start_x = 0, start_y = 0; std::string title; std::vector<std::function<void(int)>> calls; constexpr static int KEY_ENT = 10; static WINDOW* win; }; #endif // VIEW_H