#pragma once

namespace xtr::ui {

enum class HelpID : uint32_t {
  mainPage,

  viewRSForm,
  viewRSModel,
  viewRSOSS,

  editCst,
  generateCst,
  synthes,
  exportRSForm,
  options,
  operations,
  editData,

  rslanguage,
};

//! Help file handler
class HelpHandler {
  std::map<HelpID, CString> helpBase{};

public:
  HelpHandler(const HelpHandler&) = delete;
  HelpHandler& operator=(const HelpHandler&) = delete;

private:
  HelpHandler();
  ~HelpHandler() noexcept = default;

public:
  [[nodiscard]] static HelpHandler& Instance();
  static void RunHelp(HelpID targetPage = HelpID::mainPage);

private:
  static CString HID2CStr(HelpID pageID);
};

} // namespace xtr::ui