FLImaging 6.5.8.1
GUIWndCtrlBase.h
1#pragma once
2
3#include <functional>
4
5// CGUIWndCtrlBase
6
7namespace FLImaging
8{
9 namespace GUI
10 {
11 typedef std::function<bool(CWnd*, Base::CFLString<wchar_t>&, CWnd*)> CWndCtrlProcedure;
12 #define MakeWndCtrlProcedure [&](CWnd* pItem, Base::CFLString<wchar_t>& strValue, CWnd* pParent) -> bool
13
14 class FL_EXPORT CGUIWndCtrlBase : public Base::CFLBase
15 {
16 SupportToDuplicateObject(CGUIWndCtrlBase, *this);
17 public:
18 CGUIWndCtrlBase();
19 virtual ~CGUIWndCtrlBase();
20
21 public:
22 virtual void SetText(const Base::CFLString<wchar_t>& str);
23 virtual const Base::CFLString<wchar_t>& GetText()const;
24
25 virtual void SetFillColors(COLORREF clrFillColorDefault, COLORREF clrFillColorDisabled, COLORREF clrFillColorHover, COLORREF clrFillColorOnLButtonDown);
26 virtual void GetFillColors(COLORREF& clrFillColorDefault, COLORREF& clrFillColorDisabled, COLORREF& clrFillColorHover, COLORREF& clrFillColorOnLButtonDown);
27
28 virtual void SetFillColor(COLORREF clrFillColor);
29 virtual COLORREF GetFillColor();
30
31 virtual void SetFillColorDefault(COLORREF clrFillColorDefault);
32 virtual COLORREF GetFillColorDefault();
33
34 virtual void SetFillColorDisabled(COLORREF clrFillColorDisabled);
35 virtual COLORREF GetFillColorDisabled();
36
37 virtual void SetFillColorHover(COLORREF clrFillColorHover);
38 virtual COLORREF GetFillColorHover();
39
40 virtual void SetFillColorOnLButtonDown(COLORREF clrFillColorOnLButtonDown);
41 virtual COLORREF GetFillColorOnLButtonDown();
42
43
44 virtual void SetBorderColors(COLORREF clrBorderColorDefault, COLORREF clrBorderColorDisabled, COLORREF clrBorderColorHover, COLORREF clrBorderColorOnLButtonDown);
45 virtual void GetBorderColors(COLORREF& clrBorderColorDefault, COLORREF& clrBorderColorDisabled, COLORREF& clrBorderColorHover, COLORREF& clrBorderColorOnLButtonDown);
46
47 virtual void SetBorderColor(COLORREF clrBorderColor);
48 virtual COLORREF GetBorderColor();
49
50 virtual void SetBorderColorDefault(COLORREF clrBorderColorDefault);
51 virtual COLORREF GetBorderColorDefault();
52
53 virtual void SetBorderColorDisabled(COLORREF clrBorderColorDisabled);
54 virtual COLORREF GetBorderColorDisabled();
55
56 virtual void SetBorderColorHover(COLORREF clrBorderColorHover);
57 virtual COLORREF GetBorderColorHover();
58
59 virtual void SetBorderColorOnLButtonDown(COLORREF clrBorderColorOnLButtonDown);
60 virtual COLORREF GetBorderColorOnLButtonDown();
61
62
63 virtual void SetTextColors(COLORREF clrTextColorDefault, COLORREF clrTextColorDisabled, COLORREF clrTextColorHover, COLORREF clrTextColorOnLButtonDown);
64 virtual void GetTextColors(COLORREF& clrTextColorDefault, COLORREF& clrTextColorDisabled, COLORREF& clrTextColorHover, COLORREF& clrTextColorOnLButtonDown);
65
66 virtual void SetTextColor(COLORREF clrTextColor);
67 virtual COLORREF GetTextColor();
68
69 virtual void SetTextColorDefault(COLORREF clrTextColorDefault);
70 virtual COLORREF GetTextColorDefault();
71
72 virtual void SetTextColorDisabled(COLORREF clrTextColorDisabled);
73 virtual COLORREF GetTextColorDisabled();
74
75 virtual void SetTextColorHover(COLORREF clrTextColorHover);
76 virtual COLORREF GetTextColorHover();
77
78 virtual void SetTextColorOnLButtonDown(COLORREF clrTextColorOnLButtonDown);
79 virtual COLORREF GetTextColorOnLButtonDown();
80
81
82 virtual void SetParentCWnd(CWnd* pParent);
83 virtual CWnd* GetParentCWnd();
84
85 virtual void SetParentCObject(CObject* pParent);
86 virtual CObject* GetParentCObject();
87
88 virtual void UpdateTheme();
89 virtual void DrawRectangleBorder(CDC* pDC, const CRect& rect, COLORREF clr);
90
91 virtual bool SetWndCtrlProcedure(CWndCtrlProcedure* pFunc, bool bAutoDestroy = true);
92 virtual CWndCtrlProcedure* GetWndCtrlProcedure() const;
93
94 virtual void ActivateWndCtrlProcedure(bool bActivate);
95 virtual bool IsWndCtrlProcedureActivated()const;
96
97
98 virtual const CResult Assign(const CGUIWndCtrlBase& rhs);
99 virtual const CResult Assign(const CGUIWndCtrlBase* pRhs);
100 CGUIWndCtrlBase& operator=(const CGUIWndCtrlBase& rhs);
101
102 DeclareGetClassType();
103
104
105 protected:
106 virtual const CResult InternalAssign(const CGUIWndCtrlBase& rhs);
107
108 protected:
109 CWnd* m_pParent;
110 CObject* m_pParentCObject;
111
112 COLORREF m_clrFill;
113 COLORREF m_clrBorder;
114 COLORREF m_clrText;
115
116 COLORREF m_clrFillDefault;
117 COLORREF m_clrFillDisabled;
118 COLORREF m_clrFillHover;
119 COLORREF m_clrFillOnLButtonDown;
120
121 COLORREF m_clrBorderDefault;
122 COLORREF m_clrBorderDisabled;
123 COLORREF m_clrBorderHover;
124 COLORREF m_clrBorderOnLButtonDown;
125
126 COLORREF m_clrTextDefault;
127 COLORREF m_clrTextDisabled;
128 COLORREF m_clrTextHover;
129 COLORREF m_clrTextOnLButtonDown;
130
131 bool m_bFillBk;
132 bool m_bDrawBorder;
133 bool m_bWndCtrlProcedureActive;
134
135 Base::CFLString<wchar_t> m_strText;
136 bool m_bTextDirty;
137
138 CDC& m_dcBk;
139 CBitmap& m_bmpBk;
140 CBitmap* m_pbmpOldBk;
141
142 CWndCtrlProcedure* m_pProcedure;
143 bool m_bProcedureAutoDestroy;
144
145 };
146 }
147}
148
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.