aboutsummaryrefslogtreecommitdiff
path: root/src/engine_tab/EngineTab.hpp
blob: ecbc25d18610be73b0cd6306c4422c5dbeed10d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "UCI.hpp"
#include "ochess.hpp"

// Foreign event
wxDECLARE_EVENT(CLOSE_TAB_EVENT, wxCommandEvent);
wxDECLARE_EVENT(REFRESH_ENGINE_LIST, wxCommandEvent);
wxDECLARE_EVENT(REFRESH_TAB_TITLE, wxCommandEvent);

/**
 * @brief Tab used to configure UCI chess engines
 * @ingroup tabs
 */
class EngineTab : public TabEngine, public TabInfos {
  std::string confGroup, enginePath;
  uciadapter::UCI *engine;
  std::uint32_t engine_id;
  void InitConfiguration();
  void LoadConfiguration();
  void RefreshItemList();
  void OnSave(wxCommandEvent &event);
  void OnDelete(wxCommandEvent &event);

public:
  EngineTab(wxWindow *parent, uciadapter::UCI *engine,
            std::string engine_path);
  EngineTab(wxWindow *parent, std::uint32_t id);
  ~EngineTab();
  void ApplyPreferences() {}
  std::shared_ptr<Game> GetGame() { return nullptr; }
  std::shared_ptr<GameBase> GetBase() { return nullptr; }
  std::uint32_t GetEngineId() { return engine_id; };
};