FLImaging 7.3.3.3
GUIWndCtrlBase.h
1#pragma once
2
3#include <functional>
4#include "DefinitionsGUIStyle.h"
5
6// CGUIWndCtrlBase
7
8namespace FLImaging
9{
10 namespace GUI
11 {
12 typedef std::function<bool(CWnd*, Base::CFLString<wchar_t>&, CWnd*)> CWndCtrlProcedure;
13 #define MakeWndCtrlProcedure [&](CWnd* pItem, Base::CFLString<wchar_t>& strValue, CWnd* pParent) -> bool
14
15 class FL_EXPORT CGUIWndCtrlBase : public Base::CFLBase
16 {
17 SupportToDuplicateObject(CGUIWndCtrlBase, *this);
18 public:
19 CGUIWndCtrlBase();
20 virtual ~CGUIWndCtrlBase();
21 virtual const CResult Assign(const CGUIWndCtrlBase& rhs);
22 virtual const CResult Assign(const CGUIWndCtrlBase* pRhs);
23 CGUIWndCtrlBase& operator=(const CGUIWndCtrlBase& rhs);
24
25 protected:
26 virtual const CResult InternalAssign(const CGUIWndCtrlBase& rhs);
27
28 public:
29 virtual void SetParentCWnd(CWnd* pParent);
30 virtual CWnd* GetParentCWnd();
31
32 virtual void SetParentCObject(CObject* pParent);
33 virtual CObject* GetParentCObject();
34
35 public:
36 virtual void SetText(const Base::CFLString<wchar_t>& str);
37 virtual const Base::CFLString<wchar_t>& GetText()const;
38
39 virtual void UpdateTheme();
40 virtual void DrawRectangleBorder(CDC* pDC, const CRect& rect, COLORREF clr);
41
42 virtual bool SetWndCtrlProcedure(CWndCtrlProcedure* pFunc, bool bAutoDestroy = true);
43 virtual CWndCtrlProcedure* GetWndCtrlProcedure() const;
44
45 virtual void ActivateWndCtrlProcedure(bool bActivate);
46 virtual bool IsWndCtrlProcedureActivated()const;
47
48 virtual bool IsEnabled() const;
49
50 DeclareGetClassType();
51
52 protected:
53 virtual const CResult CreateBackBuffer(CWnd* pParentWnd, CWnd* pThisWnd, CRect rect);
54 virtual const CResult DeleteBackBuffer();
55 virtual const CResult RefreshBackBufferBackground(CWnd* pParentWnd, CWnd* pThisWnd, const CRect& rect);
56
57 public:
58 virtual void SetFillColors(COLORREF clrFillColorDefault, COLORREF clrFillColorDisabled, COLORREF clrFillColorHover, COLORREF clrFillColorOnLButtonDown);
59 virtual void GetFillColors(COLORREF& clrFillColorDefault, COLORREF& clrFillColorDisabled, COLORREF& clrFillColorHover, COLORREF& clrFillColorOnLButtonDown) const;
60
61 virtual void SetFillColor(COLORREF clrFillColor);
62 virtual COLORREF GetFillColor() const;
63
64 virtual void SetFillColorDefault(COLORREF clrFillColorDefault);
65 virtual COLORREF GetFillColorDefault() const;
66
67 virtual void SetFillColorDisabled(COLORREF clrFillColorDisabled);
68 virtual COLORREF GetFillColorDisabled() const;
69
70 virtual void SetFillColorHover(COLORREF clrFillColorHover);
71 virtual COLORREF GetFillColorHover() const;
72
73 virtual void SetFillColorOnLButtonDown(COLORREF clrFillColorOnLButtonDown);
74 virtual COLORREF GetFillColorOnLButtonDown() const;
75
76
77 virtual void SetBorderColors(COLORREF clrBorderColorDefault, COLORREF clrBorderColorDisabled, COLORREF clrBorderColorHover, COLORREF clrBorderColorOnLButtonDown);
78 virtual void GetBorderColors(COLORREF& clrBorderColorDefault, COLORREF& clrBorderColorDisabled, COLORREF& clrBorderColorHover, COLORREF& clrBorderColorOnLButtonDown);
79
80 virtual void SetBorderColor(COLORREF clrBorderColor);
81 virtual COLORREF GetBorderColor() const;
82
83 virtual void SetBorderColorDefault(COLORREF clrBorderColorDefault);
84 virtual COLORREF GetBorderColorDefault() const;
85
86 virtual void SetBorderColorDisabled(COLORREF clrBorderColorDisabled);
87 virtual COLORREF GetBorderColorDisabled() const;
88
89 virtual void SetBorderColorHover(COLORREF clrBorderColorHover);
90 virtual COLORREF GetBorderColorHover() const;
91
92 virtual void SetBorderColorOnLButtonDown(COLORREF clrBorderColorOnLButtonDown);
93 virtual COLORREF GetBorderColorOnLButtonDown() const;
94
95
96 virtual void SetTextColors(COLORREF clrTextColorDefault, COLORREF clrTextColorDisabled, COLORREF clrTextColorHover, COLORREF clrTextColorOnLButtonDown);
97 virtual void GetTextColors(COLORREF& clrTextColorDefault, COLORREF& clrTextColorDisabled, COLORREF& clrTextColorHover, COLORREF& clrTextColorOnLButtonDown) const;
98
99 virtual void SetTextColor(COLORREF clrTextColor);
100 virtual COLORREF GetTextColor() const;
101
102 virtual void SetTextColorDefault(COLORREF clrTextColorDefault);
103 virtual COLORREF GetTextColorDefault() const;
104
105 virtual void SetTextColorDisabled(COLORREF clrTextColorDisabled);
106 virtual COLORREF GetTextColorDisabled() const;
107
108 virtual void SetTextColorHover(COLORREF clrTextColorHover);
109 virtual COLORREF GetTextColorHover() const;
110
111 virtual void SetTextColorOnLButtonDown(COLORREF clrTextColorOnLButtonDown);
112 virtual COLORREF GetTextColorOnLButtonDown() const;
113
114 public:
115 virtual const CResult ResolveBasicColor(EStyleControlStyleGroupBasicElem e, EGUIControlState state, COLORREF& outClr) const;
116 virtual const CResult ResolveSubButtonColor(EStyleControlStyleGroupSubButtonElem e, EGUIControlState state, COLORREF& outClr) const;
117
118 protected:
119 virtual SControlStyleColorGroup* EnsureBasicColorGroup(EStyleControlStyleGroupBasicElem e);
120 virtual void SetBasicColor(EStyleControlStyleGroupBasicElem e, EGUIControlState st, COLORREF clr);
121 virtual SControlStyleColorGroup* EnsureSubButtonColorGroup(EStyleControlStyleGroupSubButtonElem e);
122 virtual void SetSubButtonColor(EStyleControlStyleGroupSubButtonElem e, EGUIControlState st, COLORREF clr);
123
124 virtual void SetSubButtonFillColors(COLORREF clrFillColorDefault, COLORREF clrFillColorDisabled, COLORREF clrFillColorHover, COLORREF clrFillColorOnLButtonDown);
125 virtual void GetSubButtonFillColors(COLORREF& clrFillColorDefault, COLORREF& clrFillColorDisabled, COLORREF& clrFillColorHover, COLORREF& clrFillColorOnLButtonDown) const;
126
127 virtual void SetSubButtonFillColor(COLORREF clrFillColor);
128 virtual COLORREF GetSubButtonFillColor() const;
129
130 virtual void SetSubButtonFillColorDefault(COLORREF clrFillColorDefault);
131 virtual COLORREF GetSubButtonFillColorDefault() const;
132
133 virtual void SetSubButtonFillColorDisabled(COLORREF clrFillColorDisabled);
134 virtual COLORREF GetSubButtonFillColorDisabled() const;
135
136 virtual void SetSubButtonFillColorHover(COLORREF clrFillColorHover);
137 virtual COLORREF GetSubButtonFillColorHover() const;
138
139 virtual void SetSubButtonFillColorOnLButtonDown(COLORREF clrFillColorOnLButtonDown);
140 virtual COLORREF GetSubButtonFillColorOnLButtonDown() const;
141
142
143 virtual void SetSubButtonBorderColors(COLORREF clrBorderColorDefault, COLORREF clrBorderColorDisabled, COLORREF clrBorderColorHover, COLORREF clrBorderColorOnLButtonDown);
144 virtual void GetSubButtonBorderColors(COLORREF& clrBorderColorDefault, COLORREF& clrBorderColorDisabled, COLORREF& clrBorderColorHover, COLORREF& clrBorderColorOnLButtonDown) const;
145
146 virtual void SetSubButtonBorderColor(COLORREF clrBorderColor);
147 virtual COLORREF GetSubButtonBorderColor() const;
148
149 virtual void SetSubButtonBorderColorDefault(COLORREF clrBorderColorDefault);
150 virtual COLORREF GetSubButtonBorderColorDefault() const;
151
152 virtual void SetSubButtonBorderColorDisabled(COLORREF clrBorderColorDisabled);
153 virtual COLORREF GetSubButtonBorderColorDisabled() const;
154
155 virtual void SetSubButtonBorderColorHover(COLORREF clrBorderColorHover);
156 virtual COLORREF GetSubButtonBorderColorHover() const;
157
158 virtual void SetSubButtonBorderColorOnLButtonDown(COLORREF clrBorderColorOnLButtonDown);
159 virtual COLORREF GetSubButtonBorderColorOnLButtonDown() const;
160
161
162 virtual void SetSubButtonIndicatorColors(COLORREF clrSubButtonIndicatorColorDefault, COLORREF clrSubButtonIndicatorColorDisabled, COLORREF clrSubButtonIndicatorColorHover, COLORREF clrSubButtonIndicatorColorOnLButtonDown);
163 virtual void GetSubButtonIndicatorColors(COLORREF& clrSubButtonIndicatorColorDefault, COLORREF& clrSubButtonIndicatorColorDisabled, COLORREF& clrSubButtonIndicatorColorHover, COLORREF& clrSubButtonIndicatorColorOnLButtonDown) const;
164
165 virtual void SetSubButtonIndicatorColor(COLORREF clrSubButtonIndicatorColor);
166 virtual COLORREF GetSubButtonIndicatorColor() const;
167
168 virtual void SetSubButtonIndicatorColorDefault(COLORREF clrSubButtonIndicatorColorDefault);
169 virtual COLORREF GetSubButtonIndicatorColorDefault() const;
170
171 virtual void SetSubButtonIndicatorColorDisabled(COLORREF clrSubButtonIndicatorColorDisabled);
172 virtual COLORREF GetSubButtonIndicatorColorDisabled() const;
173
174 virtual void SetSubButtonIndicatorColorHover(COLORREF clrSubButtonIndicatorColorHover);
175 virtual COLORREF GetSubButtonIndicatorColorHover() const;
176
177 virtual void SetSubButtonIndicatorColorOnLButtonDown(COLORREF clrSubButtonIndicatorColorOnLButtonDown);
178 virtual COLORREF GetSubButtonIndicatorColorOnLButtonDown() const;
179
180 virtual void UpdateControlColorState(EGUIControlState eState, bool bInvalidate);
181
182 protected:
183 CWnd* m_pParent;
184 CObject* m_pParentCObject;
185
186 SControlStyleGroupBasic* m_pStyleBasic;
187 SControlStyleGroupSubButton* m_pStyleSubButton;
188
189 COLORREF m_clrBg;
190 COLORREF m_clrFill;
191 COLORREF m_clrBorder;
192 COLORREF m_clrText;
193
194 COLORREF m_clrFillDefault;
195 COLORREF m_clrFillDisabled;
196 COLORREF m_clrFillHover;
197 COLORREF m_clrFillOnLButtonDown;
198
199 COLORREF m_clrBorderDefault;
200 COLORREF m_clrBorderDisabled;
201 COLORREF m_clrBorderHover;
202 COLORREF m_clrBorderOnLButtonDown;
203
204 COLORREF m_clrTextDefault;
205 COLORREF m_clrTextDisabled;
206 COLORREF m_clrTextHover;
207 COLORREF m_clrTextOnLButtonDown;
208
209 COLORREF m_clrSubButtonFill;
210 COLORREF m_clrSubButtonBorder;
211 COLORREF m_clrSubButtonIndicator;
212
213 bool m_bFillBk;
214 bool m_bDrawBorder;
215 bool m_bWndCtrlProcedureActive;
216 bool m_bOnPropertyGrid;
217
218 EGUIControlType m_eControlTypeForStyle;
219
220 Base::CFLString<wchar_t> m_strText;
221 bool m_bTextDirty;
222
223 CDC& m_dcBk;
224 CBitmap& m_bmpBk;
225 CBitmap* m_pBmpOldBk;
226
227 CWndCtrlProcedure* m_pProcedure;
228 bool m_bProcedureAutoDestroy;
229
230 bool m_bGUIManagerStyleDevelopDone;
231
232 bool m_bEnable;
233 BOOL m_bCursorOnWnd;
234 BOOL m_bLButtonDown;
235 CPoint m_ptPrev;
236 };
237 }
238}
239
Definition D2DObject.h:12
EGUIControlType
Control.
Definition DefinitionsGUIStyle.h:508
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:2930