diff --git a/src/base_tab/BaseGameTab.cpp b/src/base_tab/BaseGameTab.cpp index a652478..c5b3958 100644 --- a/src/base_tab/BaseGameTab.cpp +++ b/src/base_tab/BaseGameTab.cpp @@ -9,13 +9,7 @@ BaseGameTab::BaseGameTab(wxFrame *parent, std::string base_file, TabInfos *main_ : TabBase_TabGames(parent), base_file(base_file), base(NULL),main_tab(main_tab) { - game_list->InsertColumn(0, L"id", wxLIST_FORMAT_LEFT, 50); - game_list->InsertColumn(1, L"White", wxLIST_FORMAT_LEFT, 200); - game_list->InsertColumn(2, L"Black", wxLIST_FORMAT_LEFT, 200); - game_list->InsertColumn(3, L"Event", wxLIST_FORMAT_LEFT, 150); - game_list->InsertColumn(4, L"Round", wxLIST_FORMAT_LEFT, 100); - game_list->InsertColumn(5, L"Result", wxLIST_FORMAT_LEFT, 200); - game_list->InsertColumn(6, L"ECO", wxLIST_FORMAT_LEFT, 200); + glm=new GameListManager(game_list); this->Bind(wxEVT_BUTTON, &BaseGameTab::OnDelete, this, ID_DELETE_BUTTON); this->Bind(wxEVT_BUTTON, &BaseGameTab::OnSave, this, ID_SAVE_BUTTON); @@ -130,17 +124,14 @@ void BaseGameTab::LoadFile() { } if (base != NULL) { - long id = 0; while (base->NextGame()) { - long index = - game_list->InsertItem(0, std::to_string(id)); // want this for col. 1 - game_list->SetItem(index, 1, base->GetTag("White")); - game_list->SetItem(index, 2, base->GetTag("Black")); - game_list->SetItem(index, 3, base->GetTag("Event")); - game_list->SetItem(index, 4, base->GetTag("Round")); - game_list->SetItem(index, 5, base->GetTag("Result")); - game_list->SetItem(index, 6, base->GetTag("ECO")); - id++; + glm->AddGame( + base->GetTag("White"), + base->GetTag("Black"), + base->GetTag("Event"), + base->GetTag("Round"), + base->GetTag("Result"), + base->GetTag("ECO")); } } diff --git a/src/base_tab/BaseGameTab.hpp b/src/base_tab/BaseGameTab.hpp index 4c338cf..45cc552 100644 --- a/src/base_tab/BaseGameTab.hpp +++ b/src/base_tab/BaseGameTab.hpp @@ -1,7 +1,7 @@ #include "gamebase/GameBase.hpp" #include "gamebase/PGNGameBase.hpp" -#include "ochess.hpp" +#include "GameListManager.hpp" // Foreign events wxDECLARE_EVENT(OPEN_GAME_EVENT, wxCommandEvent); @@ -14,9 +14,11 @@ class BaseGameTab : public TabBase_TabGames { std::unordered_map> edited; std::string base_file; TabInfos *main_tab; + GameListManager *glm; public: BaseGameTab(wxFrame *parent, std::string base_file, TabInfos *main_tab); + ~BaseGameTab() {delete(glm);}; void ApplyPreferences(); void LoadFile(); diff --git a/src/base_tab/GameListManager.cpp b/src/base_tab/GameListManager.cpp new file mode 100644 index 0000000..7595088 --- /dev/null +++ b/src/base_tab/GameListManager.cpp @@ -0,0 +1,24 @@ +#include "GameListManager.hpp" + + +GameListManager::GameListManager(wxListCtrl *game_list): game_list(game_list), game_counter(0) { + game_list->InsertColumn(0, L"Id", wxLIST_FORMAT_LEFT, 50); + game_list->InsertColumn(1, L"White", wxLIST_FORMAT_LEFT, 200); + game_list->InsertColumn(2, L"Black", wxLIST_FORMAT_LEFT, 200); + game_list->InsertColumn(3, L"Event", wxLIST_FORMAT_LEFT, 150); + game_list->InsertColumn(4, L"Round", wxLIST_FORMAT_LEFT, 100); + game_list->InsertColumn(5, L"Result", wxLIST_FORMAT_LEFT, 200); + game_list->InsertColumn(6, L"ECO", wxLIST_FORMAT_LEFT, 200); +} + +void GameListManager::AddGame(CType W,CType B,CType Evt,CType Rnd, CType Res, CType Eco){ + long index = + game_list->InsertItem(0, std::to_string(game_counter)); // want this for col. 1 + game_list->SetItem(index, 1, W); + game_list->SetItem(index, 2, B); + game_list->SetItem(index, 3, Evt); + game_list->SetItem(index, 4, Rnd); + game_list->SetItem(index, 5, Res); + game_list->SetItem(index, 6, Eco); + game_counter++; +} diff --git a/src/base_tab/GameListManager.hpp b/src/base_tab/GameListManager.hpp new file mode 100644 index 0000000..6f8aa06 --- /dev/null +++ b/src/base_tab/GameListManager.hpp @@ -0,0 +1,11 @@ +#include "ochess.hpp" + +typedef std::string CType; + +class GameListManager { + wxListCtrl *game_list; + long game_counter; +public: + GameListManager(wxListCtrl *game_list); + void AddGame(CType W,CType B,CType Evt,CType Rnd, CType Res, CType Eco); +}; \ No newline at end of file