#pragma once

#include "../Game.hpp"
#include "board/BoardCanvas.hpp"
#include "ochess.hpp"
#include "base_tab/gamebase/GameBase.hpp"

// Foreign events
wxDECLARE_EVENT(GAME_CHANGE, wxCommandEvent);

class GameTabLeftPanel : public TabGameLeftPanel {
  std::shared_ptr<Game> game;
  BoardCanvas *board_canvas;
  std::string last_absolute_move;
  bool repeat;
  HalfMove *last_move;
  
public:
  GameTabLeftPanel(wxFrame *parent, std::shared_ptr<Game> game);
  void Notify(bool animate=false,bool backward=false);
  void OnPlay(wxCommandEvent &event);
  void OnGotoMove(wxCommandEvent &event);
  void OnRefreshBoard(wxCommandEvent &event);
  void ApplyPreferences();
  void DisableSaveTool(){game_toolbar->EnableTool(0,false);};
};