diff options
Diffstat (limited to 'src/MainWindow.cpp')
| -rw-r--r-- | src/MainWindow.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index b3ed9c4..efe3f06 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -1,5 +1,6 @@ #include "MainWindow.hpp" #include "ChessArbiter.hpp" +#include "UCI.hpp" #include "engine_tab/EngineTab.hpp" #include "pgnp.hpp" #include "preferences/preferences.hpp" @@ -44,6 +45,7 @@ MainWindow::MainWindow() // Engine menu wxMenu *engineMenu = new wxMenu; engineMenu->Append(6, "New", "Create a new engine configuration"); + Bind(wxEVT_MENU, &MainWindow::OnNewEngine, this, 6); /// Menu bar menuBar = new wxMenuBar; @@ -72,6 +74,23 @@ MainWindow::MainWindow() notebook->SetSelection(notebook->GetPageIndex(bt));*/ } +void MainWindow::OnNewEngine(wxCommandEvent &event) { + wxFileDialog openFileDialog(this, _("Use engine"), "", "", "Executable|*", + wxFD_OPEN | wxFD_FILE_MUST_EXIST); + if (openFileDialog.ShowModal() != wxID_CANCEL) { + std::string path = openFileDialog.GetPath().ToStdString(); + uciadapter::UCI *engine; + try { + engine = new uciadapter::UCI(path); + EngineTab *bt = new EngineTab((wxWindow *)notebook, engine, path); + notebook->AddPage(bt, bt->GetLabel()); + notebook->SetSelection(notebook->GetPageIndex(bt)); + } catch (...) { + SHOW_DIALOG_ERROR("Could not communicate with the engine"); + } + } +} + void MainWindow::OnSettings(wxCommandEvent &event) { if (prefsEditor != NULL) { delete prefsEditor; |
