aboutsummaryrefslogtreecommitdiff
path: root/src/game_tab
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2022-12-30 15:58:13 +0100
committerLoic Guegan <manzerbredes@mailbox.org>2022-12-30 15:58:13 +0100
commit2045a1250a3ae04d7b9ea8e97317e62f55b69247 (patch)
tree2e132c890439753de52feb80de298898788ef05c /src/game_tab
parent27ac369fb6b773f642eabed087194ff7e95f9156 (diff)
Improve UI
Diffstat (limited to 'src/game_tab')
-rw-r--r--src/game_tab/GameTab.cpp17
-rw-r--r--src/game_tab/GameTab.hpp3
-rw-r--r--src/game_tab/left_panel/GameTabLeftPanel.cpp19
-rw-r--r--src/game_tab/left_panel/GameTabLeftPanel.hpp3
4 files changed, 23 insertions, 19 deletions
diff --git a/src/game_tab/GameTab.cpp b/src/game_tab/GameTab.cpp
index 27f7638..a9a12da 100644
--- a/src/game_tab/GameTab.cpp
+++ b/src/game_tab/GameTab.cpp
@@ -26,6 +26,7 @@ GameTab::GameTab(wxFrame *parent, std::shared_ptr<Game> game)
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){
@@ -46,6 +47,22 @@ GameTab::GameTab(wxFrame *parent, std::shared_ptr<Game> game)
});
}
+void GameTab::OnToolClick(wxCommandEvent &event){
+ short id=event.GetId();
+ if(id==0){
+ if(!related_file.size()>0){
+ wxFileDialog
+ newFileDialog(this, _("Save Game"), "", "",
+ "PGN files (*.pgn)|*.pgn", wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
+ if (newFileDialog.ShowModal() == wxID_CANCEL)
+ return;
+ // Create and open new db
+ related_file = newFileDialog.GetPath().ToStdString();
+ }
+ SaveGame(related_file,game);
+ }
+}
+
void GameTab::OnGameChange(wxCommandEvent &event) {
board_panel->Notify(false,false);
editor_panel->Notify();
diff --git a/src/game_tab/GameTab.hpp b/src/game_tab/GameTab.hpp
index 9eb08c1..f951ae7 100644
--- a/src/game_tab/GameTab.hpp
+++ b/src/game_tab/GameTab.hpp
@@ -17,6 +17,7 @@ class GameTab : public wxPanel, public TabInfos {
GameTabRightPanel *editor_panel;
GameTabLeftPanel *board_panel;
std::shared_ptr<Game> game;
+ std::string related_file;
void RefreshLabel();
void OnRefreshTabTitle(wxCommandEvent &event);
@@ -27,4 +28,6 @@ public:
void ApplyPreferences();
std::shared_ptr<Game> GetGame() { return (std::shared_ptr<Game>(game)); }
std::shared_ptr<GameBase> GetBase() { return (std::shared_ptr<GameBase>(NULL)); };
+ void OnToolClick(wxCommandEvent &event);
+ void OnLink(){board_panel->DisableSaveTool();};
};
diff --git a/src/game_tab/left_panel/GameTabLeftPanel.cpp b/src/game_tab/left_panel/GameTabLeftPanel.cpp
index 4f09bdd..33383fd 100644
--- a/src/game_tab/left_panel/GameTabLeftPanel.cpp
+++ b/src/game_tab/left_panel/GameTabLeftPanel.cpp
@@ -5,7 +5,7 @@ GameTabLeftPanel::GameTabLeftPanel(wxFrame *parent, std::shared_ptr<Game> game)
: TabGameLeftPanel(parent), game(game), repeat(false) {
// Configure toolbal
- game_toolbar->AddTool(0, wxT("Exit application"),
+ game_toolbar->AddTool(0, wxT("Save As"),
wxArtProvider::GetBitmap(wxART_FILE_SAVE, wxART_TOOLBAR));
// Add board
@@ -26,24 +26,9 @@ GameTabLeftPanel::GameTabLeftPanel(wxFrame *parent, std::shared_ptr<Game> 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();});
- game_toolbar->Bind(wxEVT_TOOL,&GameTabLeftPanel::OnToolClick,this);
}
-void GameTabLeftPanel::OnToolClick(wxCommandEvent &event){
- short id=event.GetId();
- if(id==0){
- if(!related_file.size()>0){
- wxFileDialog
- newFileDialog(this, _("Save Game"), "", "",
- "PGN files (*.pgn)|*.pgn", wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
- if (newFileDialog.ShowModal() == wxID_CANCEL)
- return;
- // Create and open new db
- related_file = newFileDialog.GetPath().ToStdString();
- }
- SaveGame(related_file,game);
- }
-}
+
void GameTabLeftPanel::PreviousMove(bool isKeyDown) {
if(isKeyDown){
diff --git a/src/game_tab/left_panel/GameTabLeftPanel.hpp b/src/game_tab/left_panel/GameTabLeftPanel.hpp
index d9995e4..3adbaee 100644
--- a/src/game_tab/left_panel/GameTabLeftPanel.hpp
+++ b/src/game_tab/left_panel/GameTabLeftPanel.hpp
@@ -15,7 +15,6 @@ class GameTabLeftPanel : public TabGameLeftPanel {
void NotifyEditor();
std::string last_absolute_move;
bool repeat;
- std::string related_file;
public:
GameTabLeftPanel(wxFrame *parent, std::shared_ptr<Game> game);
@@ -29,5 +28,5 @@ public:
void OnSwap(wxCommandEvent &event);
void OnRefreshBoard(wxCommandEvent &event);
void ApplyPreferences();
- void OnToolClick(wxCommandEvent &event);
+ void DisableSaveTool(){game_toolbar->EnableTool(0,false);};
}; \ No newline at end of file