#ifndef WINDOW_H #define WINDOW_H #define COLOR_UNSET 0 #define COLOR_BLACK_BRIGHT 8 #define COLOR_RED_BRIGHT 9 #define COLOR_GREEN_BRIGHT 10 #define COLOR_YELLOW_BRIGHT 11 #define COLOR_BLUE_BRIGHT 12 #define COLOR_MAGENTA_BRIGHT 13 #define COLOR_CYAN_BRIGHT 14 #define COLOR_WHITE_BRIGHT 15 #define COLOR_GRAY 16 #define PAIR_WHITE_BLACK 1 #define PAIR_WHITE_BRIGHT_BLACK 2 #define PAIR_RED_BLACK 3 #define PAIR_BLUE_BLACK 4 #define PAIR_GRAY_BLACK_BRIGHT 5 #include #include class Window { public: Window(int rows, int cols, int y, int x); ~Window(); static void initialize(); void update(); void render(); static void destroy(); void clear(); void resize(); void print(std::string str, char newLine = 1); void print(std::string str, int y, int x); void print(std::string str, int y, int x, int attribute); void printCenter(std::string str); void printCenter(std::string str, int attribute); void printSide(std::string left, std::string right); void getYX(int &y, int &x); void setYX(int y, int x); void getMaXYZ(int &rows, int &cols); static void getMaXYZ(WINDOW *window, int &rows, int &cols); std::string getStr(); int getMaxRows(); int getMaxCols(); int getRows(); void setRows(int rows); int getCols(); void setCols(int cols); int getY(); void setY(int y); int getX(); void setX(int x); void setWindow(int rows, int cols, int y, int x); protected: Window(); private: int maxRows; int maxCols; int rows; int cols; int y; int x; WINDOW *window; }; #endif // WINDOW_H