Improve game tab

This commit is contained in:
Loic Guegan 2023-01-01 14:12:57 +01:00
parent 8bf9e7e7b5
commit 679c735596
8 changed files with 31 additions and 114 deletions
src/game_tab/right_panel

View file

@ -10,7 +10,7 @@ wxDEFINE_EVENT(NEXT_MOVE_EVENT, wxCommandEvent);
GameTabRightPanel::GameTabRightPanel(wxFrame *parent, std::shared_ptr<Game> game)
: TabGameRightPanel(parent), game(game), selected_item(-1),
live_engine(nullptr) {
editor_canvas = new EditorCanvas((wxFrame *)editor_page);
editor_canvas = new EditorCanvas((wxFrame *)editor_page,game);
editor_canvas_sizer->Add(editor_canvas, 1, wxEXPAND);
tags_list->InsertColumn(0, L"Name", wxLIST_FORMAT_LEFT, 200);
tags_list->InsertColumn(1, L"Value", wxLIST_FORMAT_LEFT, 500);
@ -22,16 +22,6 @@ GameTabRightPanel::GameTabRightPanel(wxFrame *parent, std::shared_ptr<Game> game
// Bind events
this->Bind(wxEVT_TEXT, &GameTabRightPanel::OnCommentChange, this,
COMMENT_INPUT_BOX);
this->Bind(GOTO_MOVE_EVENT, &GameTabRightPanel::OnGotoMove, this, wxID_ANY);
this->Bind(DELETE_MOVE_EVENT, &GameTabRightPanel::OnMoveDelete, this,
wxID_ANY);
this->Bind(PROMOTE_MOVE_EVENT, &GameTabRightPanel::OnMovePromote, this,
wxID_ANY);
this->Bind(SET_AS_MAINLINE_EVENT, &GameTabRightPanel::OnMoveSetAsMainline,
this, wxID_ANY);
/*this->Bind(NEXT_MOVE_EVENT, &GameTabRightPanel::OnNextMove, this, wxID_ANY);
this->Bind(PREVIOUS_MOVE_EVENT, &GameTabRightPanel::OnPreviousMove, this,
wxID_ANY);*/
this->Bind(wxEVT_LIST_ITEM_SELECTED, &GameTabRightPanel::OnTagSelected, this,
wxID_ANY);
this->Bind(wxEVT_LIST_ITEM_DESELECTED, &GameTabRightPanel::OnTagDeselected,
@ -90,12 +80,6 @@ void GameTabRightPanel::OnTagDeselected(wxListEvent &event) {
delete_button->Enable(false);
}
void GameTabRightPanel::NotifyBoard() {
wxCommandEvent previousEvent(GAME_CHANGE, GetId());
previousEvent.SetEventObject(this);
ProcessEvent(previousEvent);
}
void GameTabRightPanel::OnLiveEngineClose(wxCloseEvent &e) {
live_engine = nullptr;
e.Skip();
@ -143,29 +127,6 @@ void GameTabRightPanel::OnDelete(wxCommandEvent &event) {
}
}
void GameTabRightPanel::OnGotoMove(wxCommandEvent &event) {
wxLogDebug("GameTabRightPanel: received GOTO_MOVE_EVENT");
game->SetCurrent((HalfMove *)event.GetClientData());
Notify();
}
void GameTabRightPanel::OnMoveDelete(wxCommandEvent &event) {
game->DeleteMove((HalfMove *)event.GetClientData());
Notify();
}
void GameTabRightPanel::OnMovePromote(wxCommandEvent &event) {
wxLogDebug("GameTabRightPanel: promote move called");
game->PromoteMove((HalfMove *)event.GetClientData());
Notify();
}
void GameTabRightPanel::OnMoveSetAsMainline(wxCommandEvent &event) {
wxLogDebug("GameTabRightPanel: set move as mainline called");
game->SetMoveAsMainline((HalfMove *)event.GetClientData());
Notify();
}
void GameTabRightPanel::Notify() {
HalfMove *m = game->GetCurrentMove();
if (m != nullptr) {
@ -177,7 +138,6 @@ void GameTabRightPanel::Notify() {
if (live_engine != nullptr) {
live_engine->SetFEN(game->GetFen());
}
NotifyBoard();
}
void GameTabRightPanel::ApplyPreferences() {
@ -206,18 +166,6 @@ void GameTabRightPanel::RefreshTagsList() {
}
}
void GameTabRightPanel::OnPreviousMove(wxCommandEvent &event) {
game->Previous();
Notify();
NotifyBoard();
}
void GameTabRightPanel::OnNextMove(wxCommandEvent &event) {
game->Next();
Notify();
NotifyBoard();
}
std::string GameTabRightPanel::GetNagFromStr(std::string str){
// TODO: Bind more NAG!
if(str=="!")