#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; wxFont default_font; wxColour color_scrollbar_bg; wxColour color_scrollbar; wxColour color_margin; wxColour color_comments_bg; wxColour color_current_move_bg; wxColour color_menu_item_bg; 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() };