#include "AppendGameDialog.hpp" #include "MainWindow.hpp" #include "ochess.hpp" AppendGameDialog::AppendGameDialog(wxWindow *parent, GameBase *base) : DialogAppendGame(parent), base(base) { for (TabInfos *i : MAINWIN->ListTabInfos()) { if (i->type == TabInfos::GAME || i->type == TabInfos::BASE) { wxWindow *win = dynamic_cast(i); game_list->Append(win->GetLabel()); tinfos.push_back(i); } } Bind(wxEVT_BUTTON, &AppendGameDialog::OnCancel, this, ID_DIALOG_CANCEL_BUTTON); Bind(wxEVT_BUTTON, &AppendGameDialog::OnImport, this, ID_DIALOG_IMPORT_BUTTON); } void AppendGameDialog::OnCancel(wxCommandEvent &event) { this->Close(); } void AppendGameDialog::OnImport(wxCommandEvent &event) { std::vector to_ignore; std::vector new_games_bases; std::vector new_games; wxArrayInt selections; game_list->GetSelections(selections); for (int &i : selections) { TabInfos *tinfo = tinfos[i]; if (tinfo->type == TabInfos::BASE) { new_games_bases.push_back(static_cast(tinfo->GetBase())); } else if (tinfo->type == TabInfos::GAME) { new_games.push_back(static_cast(tinfo->GetGame())); } } base->Save(to_ignore, new_games_bases, new_games); this->Close(); }