2#include "GUIStyleAttribute.h"
8 class FL_EXPORT CGUIControlDrawer
12 CGUIControlDrawer(EGUIControlType eControlType);
13 virtual ~CGUIControlDrawer();
14 virtual const CResult
Assign(
const CGUIControlDrawer& rhs);
15 virtual const CResult
Assign(
const CGUIControlDrawer* pRhs);
16 CGUIControlDrawer& operator=(
const CGUIControlDrawer& rhs);
18 virtual const CResult ClearCacheAll();
19 virtual const CResult ClearCacheLine(EControlLineType eLT);
20 virtual const CResult ClearCacheLineAll();
21 virtual const CResult ClearCacheText(EControlTextType eTT);
22 virtual const CResult ClearCacheTextAll();
23 virtual const CResult ClearCachePaint(EControlPaintType ePT);
24 virtual const CResult ClearCachePaintAll();
25 virtual const CResult ClearCacheGeometry(EControlRectType eRT);
26 virtual const CResult ClearCacheGeometryAll();
27 virtual const CResult ClearCacheLayout(EControlRectType eRT);
28 virtual const CResult ClearCacheLayoutAll();
29 virtual const CResult ClearCacheEffects(EControlRectType eRT);
30 virtual const CResult ClearCacheEffectsAll();
32 virtual void DrawAndFillRect(CDC* pDC, CRect rect, EControlPaintType ePTFill = EControlPaintType_Fill, EControlPaintType ePTBorder = EControlPaintType_Border, EControlLineType eLTBorder = EControlLineType_Border, EControlRectType eRT = EControlRectType_Basic)
const;
33 virtual void DrawSpin(CDC* pDC, CRect rect, int32_t i32SpinState, ESpinIcon eIcon,
bool bUpDownOrientation =
true, EControlPaintType ePTFill = EControlPaintType_SubItemFill, EControlPaintType ePTBorder = EControlPaintType_SubItemBorder, EControlLineType eLTBorder = EControlLineType_SubItemBorder, EControlRectType eRT = EControlRectType_SubItem)
const;
34 virtual void DrawText(CDC* pDC, CRect rect,
const CString& str, EControlPaintType ePTTextBg, EControlTextType eTT = EControlTextType_Value)
const;
36 virtual const CResult GetCurrentColor(EControlPaintType ePT, COLORREF& clr)
const;
37 virtual const CResult SetCurrentColor(EControlPaintType ePT, COLORREF clr);
38 virtual const CResult GetColorForState(EControlPaintType ePT, EGUIControlState eState, COLORREF& clrColor)
const;
39 virtual const CResult SetColorForState(EControlPaintType ePT, EGUIControlState eState, COLORREF clrColor);
40 virtual const CResult SetColorForAllStates(EControlPaintType ePT, COLORREF clrColor);
41 virtual const CResult ClearColorForState(EControlPaintType ePT, EGUIControlState eState);
42 virtual const CResult ClearColorForAllStates(EControlPaintType ePT);
44 virtual const CResult GetCurrentDrawFlag(EControlPaintType ePT,
bool& bDraw)
const;
45 virtual const CResult GetDrawFlagForState(EControlPaintType ePT, EGUIControlState eState,
bool& bDraw)
const;
46 virtual const CResult SetDrawFlagForState(EControlPaintType ePT, EGUIControlState eState,
bool bDraw);
47 virtual const CResult SetDrawFlagForAllStates(EControlPaintType ePT,
bool bDraw);
48 virtual const CResult ClearDrawFlagForState(EControlPaintType ePT, EGUIControlState eState);
49 virtual const CResult ClearDrawFlagForAllStates(EControlPaintType ePT);
51 virtual const CResult ClearPenStyle(EControlLineType eLT, EGUIControlState eState);
52 virtual const CResult ClearPenStyleForAllStates(EControlLineType eLT);
54 virtual const CResult ClearLayout(EControlRectType eRT);
55 virtual const CResult ClearLayoutPadding(EControlRectType eRT);
56 virtual const CResult ClearLayoutMargin(EControlRectType eRT);
59 virtual const CResult CreateBackBuffer(CWnd* pParentWnd, CWnd* pThisWnd, CRect rect);
60 virtual const CResult DeleteBackBuffer();
61 virtual const CResult RefreshBackBufferBackground(CWnd* pParentWnd, CWnd* pThisWnd,
const CRect& rect);
62 virtual CDC* GetBackBufferDC();
64 virtual const CResult SetCurrentCornerRadius(EControlRectType eRT,
float f32CornerRadius,
bool bLT =
true,
bool bRT =
true,
bool bRB =
true,
bool bLB =
true);
65 virtual const CResult GetCurrentCornerRadius(EControlRectType eRT,
float& f32CornerRadius)
const;
66 virtual const CResult SetCurrentCornerRadiusApplyMask(EControlRectType eRT,
bool bLT,
bool bRT,
bool bRB,
bool bLB);
67 virtual const CResult GetCurrentCornerRadiusApplyMask(EControlRectType eRT,
bool& bLT,
bool& bRT,
bool& bRB,
bool& bLB)
const;
69 virtual const CResult SetCurrentEffects(EControlRectType eRT,
const Base::TRect<int32_t>& trShadowOutset,
const Base::TRect<int32_t>& trHighlightInset);
70 virtual const CResult GetCurrentEffects(EControlRectType eRT, Base::TRect<int32_t>& trShadowOutset, Base::TRect<int32_t>& trHighlightInset)
const;
71 virtual const CResult SetEffects(EControlRectType eRT,
const Base::TRect<int32_t>& trShadowOutset,
const Base::TRect<int32_t>& trHighlightInset);
72 virtual const CResult GetEffects(EControlRectType eRT, Base::TRect<int32_t>& trShadowOutset, Base::TRect<int32_t>& trHighlightInset)
const;
74 virtual const CResult SetCurrentLineWidth(EControlLineType eLT, int32_t i32LineWidth);
75 virtual const CResult GetCurrentLineWidth(EControlLineType eLT, int32_t& i32LineWidth)
const;
76 virtual const CResult GetCurrentLineWidth(EControlLineType eLT,
float& f32LineWidth)
const;
77 virtual const CResult SetCurrentPenStyle(EControlLineType eLT, Foundation::EAttributeDrawingPenStyle ePenStyle);
78 virtual const CResult GetCurrentPenStyle(EControlLineType eLT, Foundation::EAttributeDrawingPenStyle& ePenStyle)
const;
80 virtual const CResult SetCurrentLayout(EControlRectType eRT,
const Base::TRect<int32_t>& trMargin,
const Base::TRect<int32_t>& trPadding);
81 virtual const CResult GetCurrentLayout(EControlRectType eRT, Base::TRect<int32_t>& trMargin, Base::TRect<int32_t>& trPadding)
const;
82 virtual const CResult SetCurrentLayoutMargin(EControlRectType eRT,
const Base::TRect<int32_t>& trMargin);
83 virtual const CResult GetCurrentLayoutMargin(EControlRectType eRT, Base::TRect<int32_t>& trMargin)
const;
84 virtual const CResult SetCurrentLayoutPadding(EControlRectType eRT,
const Base::TRect<int32_t>& trPadding);
85 virtual const CResult GetCurrentLayoutPadding(EControlRectType eRT, Base::TRect<int32_t>& trPadding)
const;
87 virtual const CResult SetCurrentTextLayout(EControlTextType e, uint32_t u32TextFormat,
const Base::TRect<int32_t>& trPadding);
88 virtual const CResult GetCurrentTextLayout(EControlTextType e, uint32_t& u32TextFormat, Base::TRect<int32_t>& trPadding)
const;
89 virtual const CResult SetCurrentTextLayoutFormat(EControlTextType e, uint32_t u32TextFormat);
90 virtual const CResult GetCurrentTextLayoutFormat(EControlTextType e, uint32_t& u32TextFormat)
const;
91 virtual const CResult SetCurrentTextLayoutPadding(EControlTextType e,
const Base::TRect<int32_t>& trPadding);
92 virtual const CResult GetCurrentTextLayoutPadding(EControlTextType e, Base::TRect<int32_t>& trPadding)
const;
94 virtual const CResult SetCornerRadius(EControlRectType eRT,
float f32CornerRadius,
bool bLT =
true,
bool bRT =
true,
bool bRB =
true,
bool bLB =
true);
95 virtual const CResult GetCornerRadius(EControlRectType eRT,
float& f32CornerRadius)
const;
96 virtual const CResult ClearCornerRadius(EControlRectType eRT);
97 virtual const CResult SetCornerRadiusApplyMask(EControlRectType eRT,
bool bLT,
bool bRT,
bool bRB,
bool bLB);
98 virtual const CResult GetCornerRadiusApplyMask(EControlRectType eRT,
bool& bLT,
bool& bRT,
bool& bRB,
bool& bLB)
const;
100 virtual const CResult SetLayout(EControlRectType eRT,
const Base::TRect<int32_t>& trMargin,
const Base::TRect<int32_t>& trPadding);
101 virtual const CResult SetLayoutMargin(EControlRectType eRT,
const Base::TRect<int32_t>& trMargin);
102 virtual const CResult SetLayoutPadding(EControlRectType eRT,
const Base::TRect<int32_t>& trPadding);
103 virtual const CResult GetLayout(EControlRectType eRT, Base::TRect<int32_t>& trMargin, Base::TRect<int32_t>& trPadding)
const;
105 virtual const CResult SetTextLayout(EControlTextType e, uint32_t u32TextFormat,
const Base::TRect<int32_t>& trPadding);
106 virtual const CResult GetTextLayout(EControlTextType e, uint32_t& u32TextFormat, Base::TRect<int32_t>& trPadding)
const;
107 virtual const CResult SetTextLayoutFormat(EControlTextType e, uint32_t u32TextFormat);
108 virtual const CResult GetTextLayoutFormat(EControlTextType e, uint32_t& u32TextFormat);
109 virtual const CResult SetTextLayoutPadding(EControlTextType e,
const Base::TRect<int32_t>& trPadding);
110 virtual const CResult GetTextLayoutPadding(EControlTextType e, Base::TRect<int32_t>& trPadding);
113 virtual void SetBackgroundColors(COLORREF clrBgColorNormal, COLORREF clrBgColorDisabled, COLORREF clrBgColorHover, COLORREF clrBgColorPressed);
114 virtual void GetBackgroundColors(COLORREF& clrBgColorNormal, COLORREF& clrBgColorDisabled, COLORREF& clrBgColorHover, COLORREF& clrBgColorPressed)
const;
116 virtual void SetCurrentBackgroundColor(COLORREF clrBgColor);
117 virtual COLORREF GetCurrentBackgroundColor()
const;
118 virtual const CResult GetCurrentBackgroundColor(COLORREF& clr)
const;
120 virtual void SetBackgroundColorNormal(COLORREF clrBgColorNormal);
121 virtual COLORREF GetBackgroundColorNormal()
const;
122 virtual const CResult GetBackgroundColorNormal(COLORREF& clr)
const;
124 virtual void SetBackgroundColorDisabled(COLORREF clrBgColorDisabled);
125 virtual COLORREF GetBackgroundColorDisabled()
const;
126 virtual const CResult GetBackgroundColorDisabled(COLORREF& clr)
const;
128 virtual void SetBackgroundColorHover(COLORREF clrBgColorHover);
129 virtual COLORREF GetBackgroundColorHover()
const;
130 virtual const CResult GetBackgroundColorHover(COLORREF& clr)
const;
132 virtual void SetBackgroundColorPressed(COLORREF clrBgColorPressed);
133 virtual COLORREF GetBackgroundColorPressed()
const;
134 virtual const CResult GetBackgroundColorPressed(COLORREF& clr)
const;
137 virtual void SetFillColors(COLORREF clrFillColorNormal, COLORREF clrFillColorDisabled, COLORREF clrFillColorHover, COLORREF clrFillColorPressed);
138 virtual void GetFillColors(COLORREF& clrFillColorNormal, COLORREF& clrFillColorDisabled, COLORREF& clrFillColorHover, COLORREF& clrFillColorPressed)
const;
140 virtual void SetCurrentFillColor(COLORREF clrFillColor);
141 virtual COLORREF GetCurrentFillColor()
const;
142 virtual const CResult GetCurrentFillColor(COLORREF& clr)
const;
144 virtual void SetFillColorNormal(COLORREF clrFillColorNormal);
145 virtual COLORREF GetFillColorNormal()
const;
146 virtual const CResult GetFillColorNormal(COLORREF& clr)
const;
148 virtual void SetFillColorDisabled(COLORREF clrFillColorDisabled);
149 virtual COLORREF GetFillColorDisabled()
const;
150 virtual const CResult GetFillColorDisabled(COLORREF& clr)
const;
152 virtual void SetFillColorReadOnly(COLORREF clrFillColorReadOnly);
153 virtual COLORREF GetFillColorReadOnly()
const;
154 virtual const CResult GetFillColorReadOnly(COLORREF& clr)
const;
156 virtual void SetFillColorHover(COLORREF clrFillColorHover);
157 virtual COLORREF GetFillColorHover()
const;
158 virtual const CResult GetFillColorHover(COLORREF& clr)
const;
160 virtual void SetFillColorPressed(COLORREF clrFillColorPressed);
161 virtual COLORREF GetFillColorPressed()
const;
162 virtual const CResult GetFillColorPressed(COLORREF& clr)
const;
165 virtual void SetLineColors(EControlLineType e, COLORREF clrLineColorNormal, COLORREF clrLineColorDisabled, COLORREF clrLineColorHover, COLORREF clrLineColorPressed);
166 virtual void GetLineColors(EControlLineType e, COLORREF& clrLineColorNormal, COLORREF& clrLineColorDisabled, COLORREF& clrLineColorHover, COLORREF& clrLineColorPressed)
const;
168 virtual void SetCurrentLineColor(EControlLineType e, COLORREF clrLineColor);
169 virtual COLORREF GetCurrentLineColor(EControlLineType e)
const;
170 virtual const CResult GetCurrentLineColor(EControlLineType e, COLORREF& clr)
const;
172 virtual void SetLineColor(EControlLineType e, EGUIControlState eState, COLORREF clrLineColorNormal);
174 virtual void SetLineColorNormal(EControlLineType e, COLORREF clrLineColorNormal);
175 virtual COLORREF GetLineColorNormal(EControlLineType e)
const;
176 virtual const CResult GetLineColorNormal(EControlLineType e, COLORREF& clr)
const;
178 virtual void SetLineColorDisabled(EControlLineType e, COLORREF clrLineColorDisabled);
179 virtual COLORREF GetLineColorDisabled(EControlLineType e)
const;
180 virtual const CResult GetLineColorDisabled(EControlLineType e, COLORREF& clr)
const;
182 virtual void SetLineColorHover(EControlLineType e, COLORREF clrLineColorHover);
183 virtual COLORREF GetLineColorHover(EControlLineType e)
const;
184 virtual const CResult GetLineColorHover(EControlLineType e, COLORREF& clr)
const;
186 virtual void SetLineColorPressed(EControlLineType e, COLORREF clrLineColorPressed);
187 virtual COLORREF GetLineColorPressed(EControlLineType e)
const;
188 virtual const CResult GetLineColorPressed(EControlLineType e, COLORREF& clr)
const;
190 virtual const CResult SetLineWidth(EControlLineType eLT, int32_t i32LineWidth, EGUIControlState eState);
191 virtual const CResult GetLineWidth(EControlLineType eLT, EGUIControlState eState, int32_t& i32LineWidth)
const;
193 virtual void SetPenStyle(EControlLineType e, Foundation::EAttributeDrawingPenStyle ePenStyle, EGUIControlState eState);
194 virtual Foundation::EAttributeDrawingPenStyle GetPenStyle(EControlLineType e, EGUIControlState eState)
const;
197 virtual void SetTextColors(EControlTextType e, COLORREF clrTextColorNormal, COLORREF clrTextColorDisabled, COLORREF clrTextColorHover, COLORREF clrTextColorPressed);
198 virtual void GetTextColors(EControlTextType e, COLORREF& clrTextColorNormal, COLORREF& clrTextColorDisabled, COLORREF& clrTextColorHover, COLORREF& clrTextColorPressed)
const;
200 virtual void SetCurrentTextColor(EControlTextType e, COLORREF clrTextColor);
201 virtual COLORREF GetCurrentTextColor(EControlTextType e)
const;
202 virtual const CResult GetCurrentTextColor(EControlTextType e, COLORREF& clr)
const;
204 virtual void SetTextColorNormal(EControlTextType e, COLORREF clrTextColorNormal);
205 virtual COLORREF GetTextColorNormal(EControlTextType e)
const;
206 virtual const CResult GetTextColorNormal(EControlTextType e, COLORREF& clr)
const;
208 virtual void SetTextColorDisabled(EControlTextType e, COLORREF clrTextColorDisabled);
209 virtual COLORREF GetTextColorDisabled(EControlTextType e)
const;
210 virtual const CResult GetTextColorDisabled(EControlTextType e, COLORREF& clr)
const;
212 virtual void SetTextColorReadOnly(EControlTextType e, COLORREF clrTextColorReadOnly);
213 virtual COLORREF GetTextColorReadOnly(EControlTextType e)
const;
214 virtual const CResult GetTextColorReadOnly(EControlTextType e, COLORREF& clr)
const;
216 virtual void SetTextColorHover(EControlTextType e, COLORREF clrTextColorHover);
217 virtual COLORREF GetTextColorHover(EControlTextType e)
const;
218 virtual const CResult GetTextColorHover(EControlTextType e, COLORREF& clr)
const;
220 virtual void SetTextColorPressed(EControlTextType e, COLORREF clrTextColorPressed);
221 virtual COLORREF GetTextColorPressed(EControlTextType e)
const;
222 virtual const CResult GetTextColorPressed(EControlTextType e, COLORREF& clr)
const;
225 const CResult ResolveColors(EControlPaintType ePT, COLORREF& clrNormal, COLORREF& clrDisabled, COLORREF& clrHover, COLORREF& clrPressed)
const;
226 const CResult ResolveColor(EControlPaintType ePT, EGUIControlState state, COLORREF& outClr)
const;
227 const CResult ResolveDrawFlag(EControlPaintType ePT, EGUIControlState state,
bool& outFlag)
const;
229 const CResult ResolveLineWidth(EControlLineType eLT, EGUIControlState state, int32_t& i32LineWidth)
const;
230 const CResult ResolvePenStyle(EControlLineType eLT, EGUIControlState state, Foundation::EAttributeDrawingPenStyle& ePenStyle)
const;
232 const CResult ResolveCornerRadius(EControlRectType eRT,
float& f32CornerRadius)
const;
233 const CResult ResolveCornerRadiusApplyMask(EControlRectType eRT,
bool& bLT,
bool& bRT,
bool& bRB,
bool& bLB)
const;
234 const CResult ResolveEffectsShadow(EControlRectType eRT,
bool& bDrawShadow, Base::TRect<int32_t>& trShadowOutset)
const;
235 const CResult ResolveEffectsHighlight(EControlRectType eRT,
bool& bDrawHighlight, Base::TRect<int32_t>& trHighlightInset)
const;
237 const CResult ResolveLayoutMargin(EControlRectType eRT, Base::TRect<int32_t>& trMargin)
const;
238 const CResult ResolveLayoutPadding(EControlRectType eRT, Base::TRect<int32_t>& trPadding)
const;
240 const CResult ResolveTextLayoutFormat(EControlTextType eST, uint32_t& u32TextFormat)
const;
241 const CResult ResolveTextLayoutPadding(EControlTextType eST, Base::TRect<int32_t>& trMargin)
const;
243 CGUIStyleAttributeLine* GetCacheLine(EControlLineType e)
const;
244 CGUIStyleAttributeTextLayout* GetCacheText(EControlTextType e)
const;
245 CGUIStyleAttributeColor* GetCachePaint(EControlPaintType e)
const;
246 CGUIStyleAttributeGeometry* GetCacheGeometry(EControlRectType e)
const;
247 CGUIStyleAttributeLayout* GetCacheLayout(EControlRectType e)
const;
248 CGUIStyleAttributeEffects* GetCacheEffects(EControlRectType e)
const;
249 SStyleCacheBackBuffer* GetCacheBackBuffer()
const;
251 virtual void UpdateAllByState(EGUIControlState eState,
bool bInvalidate =
false, CWnd* pWnd =
nullptr);
252 virtual void UpdateAllColorByState(EGUIControlState eState,
bool bInvalidate =
false, CWnd* pWnd =
nullptr);
253 virtual void UpdateColorByState(EControlPaintType ePT, EGUIControlState eState,
bool bInvalidate =
false, CWnd* pWnd =
nullptr);
254 virtual void UpdateLineByState(EGUIControlState eState,
bool bInvalidate =
false, CWnd* pWnd =
nullptr);
255 virtual void UpdateAllLayoutGeometryEffects(
bool bInvalidate =
false);
256 virtual void UpdateLayoutGeometryEffects(EControlRectType eRT,
bool bInvalidate =
false);
257 virtual void UpdateAllLayout(
bool bInvalidate);
258 virtual void UpdateLayout(EControlRectType eRT,
bool bInvalidate);
259 virtual void UpdateAllGeometry(
bool bInvalidate);
260 virtual void UpdateGeometry(EControlRectType eRT,
bool bInvalidate);
261 virtual void UpdateAllEffects(
bool bInvalidate);
262 virtual void UpdateEffects(EControlRectType eRT,
bool bInvalidate);
263 virtual void UpdateTextStyleAll(
bool bInvalidate);
264 virtual void UpdateTextStyle(EControlTextType eTT,
bool bInvalidate);
267 template<
typename TStyle,
typename TSubType>
268 TStyle* EnsureStyle(TSubType eST);
270 CGUIStyleAttributeLine* EnsureCacheLine(EControlLineType e);
271 CGUIStyleAttributeTextLayout* EnsureCacheText(EControlTextType e);
272 CGUIStyleAttributeColor* EnsureCachePaint(EControlPaintType e);
273 CGUIStyleAttributeGeometry* EnsureCacheGeometry(EControlRectType e);
274 CGUIStyleAttributeLayout* EnsureCacheLayout(EControlRectType e);
275 CGUIStyleAttributeEffects* EnsureCacheEffects(EControlRectType e);
276 SStyleCacheBackBuffer* EnsureCacheBackBuffer();
279 SStyleGroupBasic* m_pStyleBasic;
281 CGUIStyleAttributeGeometry** m_pArrPCacheGeometry;
282 CGUIStyleAttributeLayout** m_pArrPCacheLayout;
283 CGUIStyleAttributeEffects** m_pArrPCacheEffects;
285 CGUIStyleAttributeColor** m_pArrPCachePaints;
286 CGUIStyleAttributeTextLayout** m_pArrPCacheTexts;
287 CGUIStyleAttributeLine** m_pArrPCacheLines;
289 SStyleCacheBackBuffer* m_pCacheBackBuffer;
Definition D2DObject.h:12
EGUIControlState
Enumeration for GUI control states.
Definition DefinitionsGUI.h:12907
EGUIControlType
Control.
Definition DefinitionsGUIStyle.h:458
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:2930