biquadris / graphicdisplay.h
graphicdisplay.h
Raw
/*
    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