#pragma once

namespace xtr::ui {

//! Frame: Exteor Application
class ExteorFrame final : public CMDIFrameWndEx {
  enum MenuMode : uint8_t  {
    MODE_DEFAULT,
    MODE_RSFORM,
    MODE_RSMODEL,
    MODE_OSS,
  };

  CMFCStatusBar statusbar{};
  CMFCToolBar  mainTool{};
  CMFCToolBar  rsTool{};
  CMFCToolBar  ossTool{};

public:
  void SetLangStatusText(CString text);
  void UpdateUI();

private:
  BOOL PreCreateWindow(CREATESTRUCT& cs) override;

DECLARE_MESSAGE_MAP()
  afx_msg int32_t OnCreate(LPCREATESTRUCT lpCreateStruct);

  BOOL CreateControls();
  void InitControls();

  afx_msg BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCDS);
  afx_msg void OnActivateApp(BOOL bActive, DWORD dwThreadID);
  afx_msg void OnDropFiles(HDROP hDropInfo);

private:
  static void InitVisualStyle();
};

} // namespace xtr::ui