FLImaging 7.8.25.3
GUIControlResizeHelper.h
1#pragma once
2
3#include <vector>
4
5namespace FLImaging
6{
7 namespace GUI
8 {
9 class CInternalGUIControlResizeHelper;
10 class CGUILayoutBase;
11
12 class FL_EXPORT CGUIControlResizeHelper : public Base::CFLBase
13 {
14 public:
15 enum EResizeBehavior
16 {
17 EResizeBehavior_None,
18 EResizeBehavior_Ratio,
19 EResizeBehavior_Anchor,
20 EResizeBehavior_Move,
21 };
22
23 enum EAlign
24 {
25 EAlign_None = 0x00,
26 EAlign_Left = 0x01,
27 EAlign_Top = 0x02,
28 EAlign_Right = 0x04,
29 EAlign_Bottom = 0x08,
30 };
31
32 friend EAlign operator|(EAlign a, EAlign b)
33 {
34 return static_cast<EAlign>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b));
35 }
36
37 public:
38 CGUIControlResizeHelper(CWnd* pParent);
39 virtual ~CGUIControlResizeHelper();
40
41 virtual const CResult SetBorderSize(int32_t i32BorderSize);
42 virtual int32_t GetBorderSize() const;
43
44 virtual const CResult EnableMaintainAspectRatio(bool bEnable);
45 virtual bool IsMaintainAspectRatioEnabled() const;
46
47 virtual const CResult Initialize(bool bAddControls = true);
48 virtual const CResult Terminate();
49
50 virtual bool IsInitialized() const;
51
52 virtual const CResult ClearControls();
53 virtual const CResult AddControl(CWnd* pWnd, EResizeBehavior eBehavior = EResizeBehavior_Ratio, EAlign eAlign = EAlign_None);
54 virtual const CResult AddControl(CWnd* pWnd, EResizeBehavior eBehaviorHorizontal, EAlign eAlignHorizontal, EResizeBehavior eBehaviorVertical, EAlign eAlignVertical);
55 virtual const CResult AddControls(CGUILayoutBase* pLayout, EResizeBehavior eBehavior = EResizeBehavior_Ratio, EAlign eAlign = EAlign_None);
56 virtual const CResult AddControls(CGUILayoutBase* pLayout, EResizeBehavior eBehaviorHorizontal, EAlign eAlignHorizontal, EResizeBehavior eBehaviorVertical, EAlign eAlignVertical);
57 virtual const CResult RemoveControl(CWnd* pWnd);
58 virtual const CResult RemoveControls(CGUILayoutBase* pLayout);
59
60 DeclareGetClassType();
61
62 protected:
63 CInternalGUIControlResizeHelper* m_pInternal;
64 };
65 }
66}
Definition D2DObject.h:12