#ifndef COMMANDMENUVISUALIZER_HPP
#define COMMANDMENUVISUALIZER_HPP

#include "BaseVisualizer.hpp"
#include "../Chessboard/Chessboard.hpp"

class CommandMenuVisualizer : public BaseVisualizer {
  private:
    inline static const std::vector<std::string> menuContent = {
      "To execute command: $<command_no>",
      "",
      "1 - Instructions",
      "2 - Save",
      "3 - Exit",
      "",
      "8 - Resign",
      "9 - Draw"
    };

    Chessboard* CHESSBOARD;

    void GenerateElement() override;

  public:
    CommandMenuVisualizer(Chessboard* chessboard, size_t padding) : BaseVisualizer(CommandMenuVisualizer::FindMaxLength(menuContent), padding), CHESSBOARD(chessboard) {
      CommandMenuVisualizer::GenerateElement();
    }
};

#endif //COMMANDMENUVISUALIZER_HPP