#include "UCI.hpp"
#include "ochess.hpp"

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

class EngineTab : public TabEngine, public TabInfos {
  uciadapter::UCI *engine;
  std::string confGroup, enginePath;
  std::string engineName;
  void InitConfiguration();
  void LoadConfiguration();
  void RefreshItemList();
public:
  EngineTab(wxWindow *parent, uciadapter::UCI *engine,
            std::string engine_path_or_name);
  EngineTab(wxWindow *parent, std::string name);
  ~EngineTab();
  void ApplyPreferences() {}
  std::shared_ptr<Game> GetGame() { return (std::shared_ptr<Game>(NULL)); }
  std::shared_ptr<GameBase> GetBase() { return (std::shared_ptr<GameBase>(NULL)); }
  void OnSave(wxCommandEvent &event);
  void OnDelete(wxCommandEvent &event);
};