#ifndef __OUTPUT_H__ #define __OUTPUT_H__ #include #include #include "position.h" #include "cursor.h" class output { protected: // use an array of ints to keep track of what's on the screen // This will have a bit of buffer for the last line // just in case it overflows std::vector contents; public: output(); virtual ~output() = default; // Only call this to refresh the entire output virtual void render() = 0; // Clears the contents buffer virtual void clear(); virtual void print_char(const position &pos, const char ch, const int attrs = A_NORMAL | COLOR_PAIR(COLOR_WHITE)) = 0; virtual void print_str(const position &pos, const std::string &str, const int attrs = A_NORMAL | COLOR_PAIR(COLOR_WHITE)) = 0; // default arguments are to be set in the base class's declaration }; #endif