diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2022-02-26 19:21:52 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2022-02-26 19:21:52 +0100 |
| commit | ca6c1b1e75e771e3bea596367e502b77dea2c3aa (patch) | |
| tree | 0e1a2ac8540a35c4f63e97e7d7786a9c6571ba8c /src/MainWindow.cpp | |
| parent | 0e4814e72712c43dbf0d7dbc1bb75efaa76a94a0 (diff) | |
Improve engine support
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; |
