diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2023-01-01 12:15:08 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2023-01-01 12:15:08 +0100 |
| commit | 5607057ac33ce3b6933697134b20d7ef0b1a43be (patch) | |
| tree | 7a295be61805c2c7b8fe7c1c69aba08f20db919c /src/game_tab/GameTab.cpp | |
| parent | 1eb91c592627041749d5f66ff9edbb95253bc5f4 (diff) | |
Debug and clean the game tab code
Diffstat (limited to 'src/game_tab/GameTab.cpp')
| -rw-r--r-- | src/game_tab/GameTab.cpp | 48 |
1 files changed, 15 insertions, 33 deletions
diff --git a/src/game_tab/GameTab.cpp b/src/game_tab/GameTab.cpp index 743346b..20196f3 100644 --- a/src/game_tab/GameTab.cpp +++ b/src/game_tab/GameTab.cpp @@ -20,40 +20,12 @@ GameTab::GameTab(wxFrame *parent, std::shared_ptr<Game> game) SetSizerAndFit(topSizer); // Refresh panels - wxCommandEvent event(REFRESH_TAB_TITLE, GetId()); - event.SetEventObject(this); - OnRefreshTabTitle(event); + RefreshTabTitle(); board_panel->Notify(false, false); editor_panel->Notify(); board_panel->Bind(wxEVT_TOOL,&GameTab::OnToolClick,this); - Bind(REFRESH_TAB_TITLE, &GameTab::OnRefreshTabTitle, this, wxID_ANY); Bind(GAME_CHANGE, &GameTab::OnGameChange, this, wxID_ANY); - splitter->Bind(wxEVT_KEY_DOWN, [p=this,bp=board_panel,ed=editor_panel](wxKeyEvent &e){ - if(e.GetKeyCode() == WXK_RIGHT){ - bp->NextMove(true); - } else if(e.GetKeyCode() == WXK_LEFT){ - bp->PreviousMove(true); - } - ed->Notify(); - }); - splitter->Bind(wxEVT_KEY_UP, [p=this,bp=board_panel,ed=editor_panel](wxKeyEvent &e){ - if(e.GetKeyCode() == WXK_RIGHT){ - bp->NextMove(false); - } else if(e.GetKeyCode() == WXK_LEFT){ - bp->PreviousMove(false); - } - ed->Notify(); - }); - Bind(wxEVT_MOUSEWHEEL, [p=this,bp=board_panel,ed=editor_panel](wxMouseEvent& event){ - if(event.GetWheelRotation()<0){ - bp->NextMove(true); - }else { - bp->PreviousMove(true); - } - ed->Notify(); - }); - } void GameTab::OnToolClick(wxCommandEvent &event){ @@ -76,11 +48,19 @@ void GameTab::OnToolClick(wxCommandEvent &event){ } void GameTab::OnGameChange(wxCommandEvent &event) { - board_panel->Notify(false,false); - editor_panel->Notify(); + if(event.GetEventObject() == board_panel) + editor_panel->Notify(); + else if(event.GetEventObject() == editor_panel){ + board_panel->Notify(); + RefreshTabTitle(); + } + else { + editor_panel->Notify(); + board_panel->Notify(); + } } -void GameTab::OnRefreshTabTitle(wxCommandEvent &event) { +void GameTab::RefreshTabTitle() { std::string white = game->GetTag("White"); std::string black = game->GetTag("Black"); if (white.size() == 0 && black.size() == 0) { @@ -88,8 +68,10 @@ void GameTab::OnRefreshTabTitle(wxCommandEvent &event) { } else { SetLabel(white + "-" + black); } + // Use this way to notify the MainFrame for the tab title: + wxCommandEvent event(REFRESH_TAB_TITLE,GetId()); event.SetEventObject(this); - event.Skip(); + ProcessEvent(event); } void GameTab::ApplyPreferences() { |
