FLImaging 7.3.3.3
GUIManagerStyle.h
1#pragma once
2#include "DefinitionsGUIStyle.h"
3
11
15namespace FLImaging
16{
20 namespace GUI
21 {
22 class CGUIThemePreset;
23
30 class FL_EXPORT CGUIManagerStyle : Base::CFLBase
31 {
32 friend class CGUIManager;
33
34 CGUIManagerStyle();
35 CGUIManagerStyle(const CGUIManagerStyle& rh);
36
37 public:
38 virtual ~CGUIManagerStyle();
39 static const CResult Terminate();
40 static CGUIManagerStyle* GetInstance();
41
42 // --- Helpers --- //
55 static void SetStateColor(SControlStyleColorGroup*& pGroup, EGUIControlState eState, uint32_t color);
56
71 static void SetStateColor(SControlStyleColorGroup*& pGroup, EGUIControlState eState, uint32_t color, float f32Alpha);
72
83 static void ClearStateColor(SControlStyleColorGroup*& pGroup, EGUIControlState eState);
84
97 static void SetStateLine(SControlStyleLineGroup*& pGroup, EGUIControlState eState, int32_t i32LineWidth);
98
113 static void SetStateLine(SControlStyleLineGroup*& pGroup, EGUIControlState eState, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle);
114
125 static void ClearStateLine(SControlStyleLineGroup*& pGroup, EGUIControlState eState);
126
139 static void SetLayout(SLayoutGeometry*& pAttrGroup, const Base::TRect<int32_t>& trMargin, const Base::TRect<int32_t>& trPadding);
140
149 static void ClearLayout(SLayoutGeometry*& pAttrGroup);
150
169 static void SetGeometryCornerRadius(SLayoutGeometry*& pAttrGroup, float f32CornerRadius, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB);
170
179 static void ClearGeometry(SLayoutGeometry*& pAttrGroup);
180
197 static void SetEffects(SLayoutGeometry*& pAttrGroup, bool bDrawShadow, bool bDrawHighlight, const Base::TRect<int32_t>& trShadowOutset, const Base::TRect<int32_t>& trHighlightInset);
198
207 static void ClearEffects(SLayoutGeometry*& pAttrGroup);
208
209 // --- End of Helpers --- //
210
220
232
249 static const CResult TryGetColor(const SControlStyleGroupBasic* pStyle, EStyleControlStyleGroupBasicElem e, EGUIControlState eState, COLORREF& outClr);
250
263 static const SControlStyleGroupBasic* FindThemeStyleGroupBasic(EGUIControlType eType, bool bOnPropertyGrid);
264
281 static const CResult TryGetColor(const SControlStyleGroupSubButton* pStyle, EStyleControlStyleGroupSubButtonElem e, EGUIControlState eState, COLORREF& outClr);
282
295 static const SControlStyleGroupSubButton* FindThemeStyleGroupSubButton(EGUIControlType eType, bool bOnPropertyGrid);
296
308
309 DeclareGetClassType();
310
311 protected:
312 CGUIThemePreset* m_pTheme;
313 EAntialiasingOption m_eAntialiasingFlags;
314 bool m_bInitialized;
315 std::vector<EGUIControlType>& m_vctHierarchy;
316
317 protected:
318 const CResult Initialize();
319 };
320 }
321}
Top-level base class of FLImaging.
Definition FLBase.h:36
Simplified class representing a rectangle.
Definition TRect.h:37
FLImaging module execution result object.
Definition ResultsDef.h:1676
static void SetStateColor(SControlStyleColorGroup *&pGroup, EGUIControlState eState, uint32_t color)
Sets the color for a specific state. Creates the attribute object if it does not exist.
static EGUIControlType GetParentType(EGUIControlType eControlType)
Gets the parent control type of the specified control type.
static void EnableAntialiasing(EAntialiasingOption eOption)
Enables or disables a specific antialiasing option.
static void SetLayout(SLayoutGeometry *&pAttrGroup, const Base::TRect< int32_t > &trMargin, const Base::TRect< int32_t > &trPadding)
Sets the layout attributes (Margin and Padding).
static void SetGeometryCornerRadius(SLayoutGeometry *&pAttrGroup, float f32CornerRadius, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB)
Sets the corner radius and its application for each corner.
static const CResult TryGetColor(const SControlStyleGroupSubButton *pStyle, EStyleControlStyleGroupSubButtonElem e, EGUIControlState eState, COLORREF &outClr)
Tries to get the color value from the SubButton style group.
static void SetStateLine(SControlStyleLineGroup *&pGroup, EGUIControlState eState, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle)
Sets the line width and pen style for a specific state.
static void SetStateLine(SControlStyleLineGroup *&pGroup, EGUIControlState eState, int32_t i32LineWidth)
Sets the line width for a specific state. Creates the attribute object if it does not exist.
static bool IsAntialiasingEnabled(EAntialiasingOption eOption)
Checks if a specific antialiasing option is enabled.
static void ClearEffects(SLayoutGeometry *&pAttrGroup)
Clears all effect attributes.
static const SControlStyleGroupSubButton * FindThemeStyleGroupSubButton(EGUIControlType eType, bool bOnPropertyGrid)
Finds the SubButton style group for the specified control type.
static void SetEffects(SLayoutGeometry *&pAttrGroup, bool bDrawShadow, bool bDrawHighlight, const Base::TRect< int32_t > &trShadowOutset, const Base::TRect< int32_t > &trHighlightInset)
Sets UI effects such as shadows and highlights.
static const CResult TryGetColor(const SControlStyleGroupBasic *pStyle, EStyleControlStyleGroupBasicElem e, EGUIControlState eState, COLORREF &outClr)
Tries to get the color value from the Basic style group.
static void ClearGeometry(SLayoutGeometry *&pAttrGroup)
Clears all geometry attributes (Corner radius, etc.).
static void ClearStateColor(SControlStyleColorGroup *&pGroup, EGUIControlState eState)
Clears the color attribute for a specific state.
static const SControlStyleGroupBasic * FindThemeStyleGroupBasic(EGUIControlType eType, bool bOnPropertyGrid)
Finds the Basic style group for the specified control type.
static void ClearLayout(SLayoutGeometry *&pAttrGroup)
Clears all layout attributes.
static void ClearStateLine(SControlStyleLineGroup *&pGroup, EGUIControlState eState)
Clears the line attribute for a specific state.
static void SetStateColor(SControlStyleColorGroup *&pGroup, EGUIControlState eState, uint32_t color, float f32Alpha)
Sets the color and alpha ratio for a specific state.
Theme Preset.
Definition GUIThemePreset.h:28
EAttributeDrawingPenStyle
Pen Style in Figure drawing attribute.
Definition DefinitionsFigure.h:3217
Definition D2DObject.h:12
EAntialiasingOption
Antialiasing options for each layer and control.
Definition DefinitionsGUIStyle.h:35
EGUIControlState
Enumeration for GUI control states.
Definition DefinitionsGUIStyle.h:418
EGUIControlType
Control.
Definition DefinitionsGUIStyle.h:508