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
|