63 lines
1.6 KiB
C++
63 lines
1.6 KiB
C++
#pragma once
|
|
|
|
namespace xtr::ui {
|
|
|
|
// don't sugget noexcept for default virtual implementations
|
|
#pragma warning( push )
|
|
#pragma warning( disable : 26440 )
|
|
|
|
//! Frame: 2 pane splitter
|
|
class Split2ViewFrame : public CMDIChildWndEx {
|
|
CString registryName;
|
|
SIZE minSize;
|
|
uint32_t minPane2Width;
|
|
|
|
int32_t& secondViewWidth;
|
|
|
|
CSplitterWnd splitterWnd{};
|
|
|
|
public:
|
|
~Split2ViewFrame() override = default;
|
|
Split2ViewFrame(const Split2ViewFrame&) = delete;
|
|
Split2ViewFrame& operator=(const Split2ViewFrame&) = delete;
|
|
|
|
protected:
|
|
Split2ViewFrame(uint32_t registryID, SIZE minSize,
|
|
uint32_t minPane2Width, int& splitterTracker);
|
|
|
|
private:
|
|
BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) override;
|
|
|
|
private:
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
|
|
afx_msg void OnDestroy();
|
|
afx_msg void OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd);
|
|
|
|
private:
|
|
virtual CRuntimeClass* SecondViewClass() { return nullptr; }
|
|
virtual void PostCreateSetup(CWnd* /*firstView*/, CWnd* /*secondView*/) {}
|
|
};
|
|
|
|
class RSFormFrame : public Split2ViewFrame {
|
|
DECLARE_DYNCREATE(RSFormFrame)
|
|
RSFormFrame();
|
|
CRuntimeClass* SecondViewClass() override;
|
|
};
|
|
|
|
class RSModelFrame final : public Split2ViewFrame {
|
|
DECLARE_DYNCREATE(RSModelFrame)
|
|
RSModelFrame();
|
|
CRuntimeClass* SecondViewClass() override;
|
|
};
|
|
|
|
class OSSFrame final : public Split2ViewFrame {
|
|
DECLARE_DYNCREATE(OSSFrame)
|
|
OSSFrame();
|
|
CRuntimeClass* SecondViewClass() override;
|
|
void PostCreateSetup(CWnd* firstView, CWnd* secondView) override;
|
|
};
|
|
|
|
#pragma warning( pop )
|
|
|
|
} // namespace xtr::ui
|