mirror of
https://gitlab.com/manzerbredes/ochess.git
synced 2025-04-07 02:26:29 +02:00
Improve engine support
This commit is contained in:
parent
0e4814e727
commit
ca6c1b1e75
5 changed files with 26 additions and 5 deletions
|
@ -1 +1 @@
|
||||||
Subproject commit 3b0556669ca6285090a36c12ad0b41953b81c368
|
Subproject commit cce0131c30a1f5fb4e3930dc03091bf238d9e80e
|
|
@ -1,5 +1,6 @@
|
||||||
#include "MainWindow.hpp"
|
#include "MainWindow.hpp"
|
||||||
#include "ChessArbiter.hpp"
|
#include "ChessArbiter.hpp"
|
||||||
|
#include "UCI.hpp"
|
||||||
#include "engine_tab/EngineTab.hpp"
|
#include "engine_tab/EngineTab.hpp"
|
||||||
#include "pgnp.hpp"
|
#include "pgnp.hpp"
|
||||||
#include "preferences/preferences.hpp"
|
#include "preferences/preferences.hpp"
|
||||||
|
@ -44,6 +45,7 @@ MainWindow::MainWindow()
|
||||||
// Engine menu
|
// Engine menu
|
||||||
wxMenu *engineMenu = new wxMenu;
|
wxMenu *engineMenu = new wxMenu;
|
||||||
engineMenu->Append(6, "New", "Create a new engine configuration");
|
engineMenu->Append(6, "New", "Create a new engine configuration");
|
||||||
|
Bind(wxEVT_MENU, &MainWindow::OnNewEngine, this, 6);
|
||||||
|
|
||||||
/// Menu bar
|
/// Menu bar
|
||||||
menuBar = new wxMenuBar;
|
menuBar = new wxMenuBar;
|
||||||
|
@ -72,6 +74,23 @@ MainWindow::MainWindow()
|
||||||
notebook->SetSelection(notebook->GetPageIndex(bt));*/
|
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) {
|
void MainWindow::OnSettings(wxCommandEvent &event) {
|
||||||
if (prefsEditor != NULL) {
|
if (prefsEditor != NULL) {
|
||||||
delete prefsEditor;
|
delete prefsEditor;
|
||||||
|
|
|
@ -26,6 +26,7 @@ class MainWindow : public wxFrame {
|
||||||
void OnRefreshTabTitle(wxCommandEvent &event);
|
void OnRefreshTabTitle(wxCommandEvent &event);
|
||||||
void NewGame(Game *game);
|
void NewGame(Game *game);
|
||||||
void OnSettings(wxCommandEvent &event);
|
void OnSettings(wxCommandEvent &event);
|
||||||
|
void OnNewEngine(wxCommandEvent &event);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MainWindow();
|
MainWindow();
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
#include "EngineTab.hpp"
|
#include "EngineTab.hpp"
|
||||||
|
|
||||||
EngineTab::EngineTab(wxWindow *parent, std::string engine_path_or_name)
|
EngineTab::EngineTab(wxWindow *parent, uciadapter::UCI *engine,std::string engine_path_or_name)
|
||||||
: EngineTabBF(parent), TabInfos(TabInfos::ENGINE),
|
: EngineTabBF(parent), TabInfos(TabInfos::ENGINE),
|
||||||
enginePath(engine_path_or_name) {
|
enginePath(engine_path_or_name), engine(engine) {
|
||||||
SetLabel("New Engine");
|
SetLabel("New Engine");
|
||||||
engine = new uciadapter::UCI(engine_path_or_name);
|
|
||||||
engine_location->SetValue(engine_path_or_name);
|
engine_location->SetValue(engine_path_or_name);
|
||||||
confGroup = "engines/bob";
|
confGroup = "engines/bob";
|
||||||
CONFIG_OPEN(conf);
|
CONFIG_OPEN(conf);
|
||||||
|
|
|
@ -9,7 +9,8 @@ class EngineTab : public EngineTabBF, public TabInfos {
|
||||||
void InitConfiguration();
|
void InitConfiguration();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
EngineTab(wxWindow *parent, std::string engine_path_or_name);
|
EngineTab(wxWindow *parent, uciadapter::UCI *engine,
|
||||||
|
std::string engine_path_or_name);
|
||||||
void ApplyPreferences() {}
|
void ApplyPreferences() {}
|
||||||
void *GetGame() { return (NULL); }
|
void *GetGame() { return (NULL); }
|
||||||
void *GetBase() { return (NULL); }
|
void *GetBase() { return (NULL); }
|
||||||
|
|
Loading…
Add table
Reference in a new issue