diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2022-02-26 17:05:47 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2022-02-26 17:05:47 +0100 |
| commit | 65e9049351130ff54b305dd8c82c969456a0797b (patch) | |
| tree | df9b4ec2d93a924694defeea07549ec5543bad83 /src/engine_tab | |
| parent | e5aa5be42cbf93a31d3be387f24b3413f2983898 (diff) | |
Improve engine support
Diffstat (limited to 'src/engine_tab')
| -rw-r--r-- | src/engine_tab/EngineTab.cpp | 21 | ||||
| -rw-r--r-- | src/engine_tab/EngineTab.hpp | 13 | ||||
| -rw-r--r-- | src/engine_tab/EngineTabBF.cpp | 63 | ||||
| -rw-r--r-- | src/engine_tab/EngineTabBF.h | 56 |
4 files changed, 153 insertions, 0 deletions
diff --git a/src/engine_tab/EngineTab.cpp b/src/engine_tab/EngineTab.cpp new file mode 100644 index 0000000..12b065f --- /dev/null +++ b/src/engine_tab/EngineTab.cpp @@ -0,0 +1,21 @@ +#include "EngineTab.hpp" + +EngineTab::EngineTab(wxWindow *parent, std::string engine_path_or_name) + : EngineTabBF(parent), TabInfos(TabInfos::ENGINE) { + SetLabel("New Engine"); + engine = new uciadapter::UCI(engine_path_or_name); + engine_location->SetValue(engine_path_or_name); + std::vector<uciadapter::Option> opts = engine->GetOptions(); + for (uciadapter::Option &opt : opts) { + if (opt.type == "check") { + engine_parameters->Append(new wxBoolProperty( + opt.name, wxPG_LABEL, opt.default_value == "true")); + } else if (opt.type == "spin") { + engine_parameters->Append(new wxIntProperty( + opt.name, wxPG_LABEL, std::stoi(opt.default_value))); + } else if (opt.type == "string") { + engine_parameters->Append( + new wxStringProperty(opt.name, wxPG_LABEL, opt.default_value)); + } + } +} diff --git a/src/engine_tab/EngineTab.hpp b/src/engine_tab/EngineTab.hpp new file mode 100644 index 0000000..4538d0b --- /dev/null +++ b/src/engine_tab/EngineTab.hpp @@ -0,0 +1,13 @@ +#include "EngineTabBF.h" +#include "ochess.hpp" +#include "UCI.hpp" + +class EngineTab : public EngineTabBF, public TabInfos { + uciadapter::UCI *engine; + +public: + EngineTab(wxWindow *parent, std::string engine_path_or_name); + void ApplyPreferences() {} + void *GetGame() { return (NULL); } + void *GetBase() { return (NULL); }; +};
\ No newline at end of file diff --git a/src/engine_tab/EngineTabBF.cpp b/src/engine_tab/EngineTabBF.cpp new file mode 100644 index 0000000..e8cb184 --- /dev/null +++ b/src/engine_tab/EngineTabBF.cpp @@ -0,0 +1,63 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version 3.10.1-40-g8042f487) +// http://www.wxformbuilder.org/ +// +// PLEASE DO *NOT* EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "EngineTabBF.h" + +/////////////////////////////////////////////////////////////////////////// + +EngineTabBF::EngineTabBF( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name ) +{ + wxBoxSizer* main_sizer; + main_sizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* engine_name_sizer; + engine_name_sizer = new wxBoxSizer( wxHORIZONTAL ); + + engine_name_label = new wxStaticText( this, wxID_ANY, wxT("Name:"), wxDefaultPosition, wxDefaultSize, 0 ); + engine_name_label->Wrap( -1 ); + engine_name_sizer->Add( engine_name_label, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + engine_name = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + engine_name_sizer->Add( engine_name, 1, wxALL, 5 ); + + + main_sizer->Add( engine_name_sizer, 0, wxEXPAND, 5 ); + + wxBoxSizer* engine_location_sizer; + engine_location_sizer = new wxBoxSizer( wxHORIZONTAL ); + + engine_location_label = new wxStaticText( this, wxID_ANY, wxT("Location:"), wxDefaultPosition, wxDefaultSize, 0 ); + engine_location_label->Wrap( -1 ); + engine_location_sizer->Add( engine_location_label, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + engine_location = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); + engine_location_sizer->Add( engine_location, 1, wxALL, 5 ); + + + main_sizer->Add( engine_location_sizer, 0, wxEXPAND, 5 ); + + separator_1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + main_sizer->Add( separator_1, 0, wxEXPAND | wxALL, 5 ); + + params_label = new wxStaticText( this, wxID_ANY, wxT("Parameters:"), wxDefaultPosition, wxDefaultSize, 0 ); + params_label->Wrap( -1 ); + main_sizer->Add( params_label, 0, wxALL, 5 ); + + engine_parameters = new wxPropertyGrid(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxPG_DEFAULT_STYLE|wxPG_SPLITTER_AUTO_CENTER); + main_sizer->Add( engine_parameters, 1, wxALL|wxEXPAND, 5 ); + + save_button = new wxButton( this, wxID_ANY, wxT("Save"), wxDefaultPosition, wxDefaultSize, 0 ); + main_sizer->Add( save_button, 0, wxALL|wxEXPAND, 5 ); + + + this->SetSizer( main_sizer ); + this->Layout(); +} + +EngineTabBF::~EngineTabBF() +{ +} diff --git a/src/engine_tab/EngineTabBF.h b/src/engine_tab/EngineTabBF.h new file mode 100644 index 0000000..8ce994a --- /dev/null +++ b/src/engine_tab/EngineTabBF.h @@ -0,0 +1,56 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version 3.10.1-40-g8042f487) +// http://www.wxformbuilder.org/ +// +// PLEASE DO *NOT* EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include <wx/artprov.h> +#include <wx/xrc/xmlres.h> +#include <wx/string.h> +#include <wx/stattext.h> +#include <wx/gdicmn.h> +#include <wx/font.h> +#include <wx/colour.h> +#include <wx/settings.h> +#include <wx/textctrl.h> +#include <wx/sizer.h> +#include <wx/statline.h> +#include <wx/bitmap.h> +#include <wx/image.h> +#include <wx/icon.h> +#include <wx/propgrid/propgrid.h> +#include <wx/propgrid/advprops.h> +#include <wx/button.h> +#include <wx/panel.h> + +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class EngineTabBF +/////////////////////////////////////////////////////////////////////////////// +class EngineTabBF : public wxPanel +{ + private: + + protected: + wxStaticText* engine_name_label; + wxTextCtrl* engine_name; + wxStaticText* engine_location_label; + wxTextCtrl* engine_location; + wxStaticLine* separator_1; + wxStaticText* params_label; + wxPropertyGrid* engine_parameters; + wxButton* save_button; + + public: + + EngineTabBF( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString ); + + ~EngineTabBF(); + +}; + |
