aboutsummaryrefslogtreecommitdiff
path: root/src/game_tab/GameTab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game_tab/GameTab.cpp')
-rw-r--r--src/game_tab/GameTab.cpp48
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() {