#pragma once #include "../../HalfMove.hpp" #include "CGEditor.hpp" #include "ochess.hpp" #include "../../left_panel/board/Theme.hpp" // Foreign events wxDECLARE_EVENT(GOTO_MOVE_EVENT, wxCommandEvent); wxDECLARE_EVENT(PREVIOUS_MOVE_EVENT, wxCommandEvent); wxDECLARE_EVENT(NEXT_MOVE_EVENT, wxCommandEvent); wxDECLARE_EVENT(DELETE_MOVE_EVENT, wxCommandEvent); wxDECLARE_EVENT(PROMOTE_MOVE_EVENT, wxCommandEvent); wxDECLARE_EVENT(SET_AS_MAINLINE_EVENT, wxCommandEvent); class EditorCanvas : public wxPanel, public cgeditor::CGEditor { wxPaintDC *dc; bool NeedRedraw; wxPoint Middle(cgeditor::Element e); wxBitmap hide_icon; Theme t; public: EditorCanvas(wxFrame *parent); void OnPaint(wxPaintEvent &event); void MouseEvent(wxMouseEvent &event); void DrawElement(const cgeditor::Element &e); void HandleEvent(const cgeditor::Event &e); void SetMoves(HalfMove *moves, HalfMove *current); void OnKeyEvent(wxKeyEvent &event); DECLARE_EVENT_TABLE() };