/* GraphicDisplay class module the graphic display of the game Note: Xwindow may leak memory */ #ifndef _GRAPHICDISPLAY_H_ #define _GRAPHICDISPLAY_H_ #include <sstream> #include <iostream> #include <vector> #include <utility> #include <memory> #include <map> #include "window.h" #include "display.h" #include "shapes.h" #include <string> class GraphicDisplay : public BiquadrisDisplay { std::unique_ptr<Xwindow> w; static std::map<char,int> colors; void updateLevel(int boardId, int level); void updateScore(int boardId, int score); void updateHighScore(int highScore); void coverHint(); public: GraphicDisplay(int width, int height); void update(int _highScore) override; void update(int boardId, int score) override; void update(int boardId, int level, char nextBlock) override; void update(int boardId, int row, int col, char type) override; void setHint(std::string hint); void playerLoses() override; bool printable() override; }; #endif