diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index e5f11f9..344b249 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -57,13 +57,9 @@ MainWindow::MainWindow() NewGame(std::shared_ptr(new Game())); - // Temporary TO REMOVE JUST FOR TESTS: - /*BaseTab *bt = new BaseTab((wxFrame *)notebook, "/home/loic/pgn/Milov.pgn"); + BaseTab *bt = new BaseTab((wxFrame *)notebook, "/home/loic/pgn/twic1467.pgn"); this->AddPage(bt,bt); - - bt = new BaseTab((wxFrame *)notebook, "/home/loic/jean.pgn"); - this->AddPage(bt,bt);*/ } void MainWindow::AddPage(wxWindow* window, TabInfos* infos){ diff --git a/src/game_tab/GameTab.cpp b/src/game_tab/GameTab.cpp index 40a1c71..27f7638 100644 --- a/src/game_tab/GameTab.cpp +++ b/src/game_tab/GameTab.cpp @@ -23,7 +23,7 @@ GameTab::GameTab(wxFrame *parent, std::shared_ptr game) wxCommandEvent event(REFRESH_TAB_TITLE, GetId()); event.SetEventObject(this); OnRefreshTabTitle(event); - board_panel->Notify(); + board_panel->Notify(false, false); editor_panel->Notify(); Bind(REFRESH_TAB_TITLE, &GameTab::OnRefreshTabTitle, this, wxID_ANY); @@ -47,7 +47,7 @@ GameTab::GameTab(wxFrame *parent, std::shared_ptr game) } void GameTab::OnGameChange(wxCommandEvent &event) { - board_panel->Notify(); + board_panel->Notify(false,false); editor_panel->Notify(); } diff --git a/src/game_tab/HalfMove.cpp b/src/game_tab/HalfMove.cpp index 3ff627f..26f2f24 100644 --- a/src/game_tab/HalfMove.cpp +++ b/src/game_tab/HalfMove.cpp @@ -180,7 +180,8 @@ bool HalfMove::IsABlackMove() { return (IsBlack); } void HalfMove::BuildAndVerify(HalfMove *m, std::string fen) { arbiter.Setup(fen); - bool work = arbiter.Play(arbiter.ParseSAN(m->move),arbiter.ParseSANPromotion(m->move)); + m->move_absolute=arbiter.ParseSAN(m->move); + bool work = arbiter.Play(m->move_absolute,arbiter.ParseSANPromotion(m->move)); if (!work) { wxLogDebug("Bug! %s", m->move); } diff --git a/src/game_tab/left_panel/GameTabLeftPanel.cpp b/src/game_tab/left_panel/GameTabLeftPanel.cpp index cd3bfe4..d1604e4 100644 --- a/src/game_tab/left_panel/GameTabLeftPanel.cpp +++ b/src/game_tab/left_panel/GameTabLeftPanel.cpp @@ -2,7 +2,7 @@ #include GameTabLeftPanel::GameTabLeftPanel(wxFrame *parent, std::shared_ptr game) - : TabGameLeftPanel(parent), game(game) { + : TabGameLeftPanel(parent), game(game), repeat(false) { // Add board board_canvas = new BoardCanvas((wxFrame *)this); @@ -22,7 +22,6 @@ GameTabLeftPanel::GameTabLeftPanel(wxFrame *parent, std::shared_ptr game) Bind(wxEVT_BUTTON, &GameTabLeftPanel::OnZoomOut, this, ZOOM_OUT_BTN); Bind(wxEVT_KEY_DOWN, [p=this](wxKeyEvent &e){e.ResumePropagation(1);e.Skip();}); Bind(wxEVT_KEY_UP, [p=this](wxKeyEvent &e){e.ResumePropagation(1);e.Skip();}); - repeat=false; } void GameTabLeftPanel::PreviousMove(bool isKeyDown) { @@ -79,7 +78,6 @@ void GameTabLeftPanel::OnPlay(wxCommandEvent &event) { } void GameTabLeftPanel::Notify(bool animate, bool backward) { - wxLogDebug("Notify"); std::string fen = game->GetFen(); std::map captures; HalfMove *m = game->GetCurrentMove(); @@ -114,7 +112,6 @@ void GameTabLeftPanel::Notify(bool animate, bool backward) { game->IsBlackToPlay(), captures,src,dst,repeat); } } - // If m undefined if(!m){ last_absolute_move=""; diff --git a/src/game_tab/left_panel/board/BoardCanvas.cpp b/src/game_tab/left_panel/board/BoardCanvas.cpp index 58c3fd6..7445c57 100644 --- a/src/game_tab/left_panel/board/BoardCanvas.cpp +++ b/src/game_tab/left_panel/board/BoardCanvas.cpp @@ -16,11 +16,11 @@ BoardCanvas::BoardCanvas(wxFrame *parent) // The following should be called when using an EVT_PAINT handler SetBackgroundStyle(wxBG_STYLE_PAINT); duration=200; - duration_fast=100; + duration_fast=80; fps=30; - Bind(wxEVT_KEY_DOWN, &BoardCanvas::OnKeyEvent, this); - Bind(wxEVT_KEY_UP, &BoardCanvas::OnKeyEvent, this); + Bind(wxEVT_KEY_DOWN, [p=this](wxKeyEvent &e){e.ResumePropagation(1);e.Skip();}); + Bind(wxEVT_KEY_UP, [p=this](wxKeyEvent &e){e.ResumePropagation(1);e.Skip();}); } BoardCanvas::~BoardCanvas() { @@ -123,7 +123,7 @@ void BoardCanvas::Animate(std::string board, bool is_black_turn, std::mapboard[pfile + 8 * (7-prank)]=' '; wxMemoryDC memDC(*buffer); DrawBoard(memDC); - + // Now compute piece start position and translation vector (Copy paste from DrawBoard()) std::uint32_t piece_width = t->GetPiecesSizes(); std::uint32_t centrer_offset = (square_width - piece_width) / 2; @@ -369,23 +369,6 @@ void BoardCanvas::Swap() { Refresh(); } -void BoardCanvas::OnKeyEvent(wxKeyEvent &event) { - event.ResumePropagation(1); -event.Skip(); -return; - wxLogDebug("OnKeyEvent %d",event.GetUnicodeKey()); - if (event.GetKeyCode() == WXK_LEFT) { - wxCommandEvent previousEvent(PREVIOUS_MOVE_EVENT, GetId()); - //previousEvent.SetEventObject(this); - ProcessEvent(previousEvent); - } else if (event.GetKeyCode() == WXK_RIGHT) { - wxCommandEvent nextEvent(NEXT_MOVE_EVENT, GetId()); - //nextEvent.SetEventObject(this); - ProcessEvent(nextEvent); - } -} - - void BoardCanvas::SetClockTime(short hours, short min, short sec, bool IsBlack) { if (IsBlack) { diff --git a/src/game_tab/left_panel/board/BoardCanvas.hpp b/src/game_tab/left_panel/board/BoardCanvas.hpp index 1da45b2..eeff44d 100644 --- a/src/game_tab/left_panel/board/BoardCanvas.hpp +++ b/src/game_tab/left_panel/board/BoardCanvas.hpp @@ -75,7 +75,6 @@ public: void ApplyPreferences(); void DrawBoard(wxDC &dc); void OnPaint(wxPaintEvent &event); - void OnKeyEvent(wxKeyEvent &event); void MouseEvent(wxMouseEvent &event); void Zoom(std::int32_t zoom); void Swap();