FLImaging 7.4.14.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
53 static const CResult Terminate();
54
66 static CGUIManagerStyle* GetInstance();
67 virtual void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
68
69
91 static const CResult SetColorForAllStates(EControlPaintType e, SStyleGroupBasic*& pGroup, uint32_t u32Color, bool bDraw = true);
92
114 static const CResult SetColorForState(SControlStateColorSet*& pColorSet, EGUIControlState eState, uint32_t color, bool bDraw = true);
115
139 static const CResult SetColorForState(SControlStateColorSet*& pColorSet, EGUIControlState eState, uint32_t color, float f32Alpha, bool bDraw = true);
140
164 static const CResult SetColorForState(EControlPaintType e, SStyleGroupBasic*& pGroup, EGUIControlState eState, uint32_t color, bool bDraw = true);
165
187 static const CResult SetDrawFlagForState(EControlPaintType e, SStyleGroupBasic*& pGroup, EGUIControlState eState, bool bFlag);
188
204 static const CResult SetDrawFlagForAllStates(EControlPaintType e, SStyleGroupBasic*& pGroup, bool bFlag);
205
219 static const CResult ClearColorForState(SControlStateColorSet*& pColorSet, EGUIControlState eState);
220
236 static const CResult SetLineForState(SControlStateLineSet*& pLineSet, EGUIControlState eState, int32_t i32LineWidth);
237
255 static const CResult SetLineWidthForState(EControlLineType e, SStyleGroupBasic*& pGroup, EGUIControlState eState, int32_t i32LineWidth);
256
274 static const CResult SetLinePenStyleForState(EControlLineType e, SStyleGroupBasic*& pGroup, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle ePenStyle);
275
291 static const CResult SetLinePenStyleForState_(SControlStateLineSet*& pLineSet, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle ePenStyle);
292
312 static const CResult SetLineForAllStates(EControlLineType eLT, SStyleGroupBasic*& pGroup, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle);
313
333 static const CResult SetLineForState(SControlStateLineSet*& pLineSet, EGUIControlState eState, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle);
334
356 static const CResult SetLineForState(EControlLineType e, SStyleGroupBasic*& pGroup, EGUIControlState eState, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle);
357
371 static const CResult ClearLineForState(SControlStateLineSet*& pLineSet, EGUIControlState eState);
386 static const CResult SetLayout(SLayoutGeometryEffects*& pAttrGroup, const Base::TRect<int32_t>& trMargin, const Base::TRect<int32_t>& trPadding);
387
405 static const CResult SetLayout_(EControlRectType eRT, SStyleGroupBasic*& pGroup, const Base::TRect<int32_t>& trMargin, const Base::TRect<int32_t>& trPadding);
406
420 static const CResult SetLayoutMargin(SLayoutGeometryEffects*& pAttrGroup, const Base::TRect<int32_t>& trMargin);
421
437 static const CResult SetLayoutMargin_(EControlRectType eRT, SStyleGroupBasic*& pGroup, const Base::TRect<int32_t>& trMargin);
438
452 static const CResult SetLayoutPadding(SLayoutGeometryEffects*& pAttrGroup, const Base::TRect<int32_t>& trPadding);
453
469 static const CResult SetLayoutPadding_(EControlRectType eRT, SStyleGroupBasic*& pGroup, const Base::TRect<int32_t>& trPadding);
470
482 static const CResult ClearLayout(SLayoutGeometryEffects*& pAttrGroup);
500 static const CResult SetTextLayout(EControlTextType eTT, SStyleGroupBasic*& pGroup, uint32_t u32Format, const Base::TRect<int32_t>& trPadding);
501
517 static const CResult SetTextLayoutFormat(EControlTextType eTT, SStyleGroupBasic*& pGroup, uint32_t u32Format);
518
534 static const CResult SetTextLayoutPadding(EControlTextType eTT, SStyleGroupBasic*& pGroup, const Base::TRect<int32_t>& trPadding);
535
547 static const CResult ClearTextLayout(STextStyle*& pAttrGroup);
548
571 static const CResult SetGeometryCornerRadius(SLayoutGeometryEffects*& pAttrGroup, float f32CornerRadius, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB);
572
597 static const CResult SetGeometryCornerRadius_(EControlRectType eRT, SStyleGroupBasic*& pGroup, float f32CornerRadius, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB);
598
618 static const CResult SetGeometryCornerRadiusApplyMask(SLayoutGeometryEffects*& pAttrGroup, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB);
619
631 static const CResult ClearGeometry(SLayoutGeometryEffects*& pAttrGroup);
632
651 static const CResult SetEffects(SLayoutGeometryEffects*& pAttrGroup, const Base::TRect<int32_t>& trShadowOutset, const Base::TRect<int32_t>& trHighlightInset);
652
671 static const CResult SetEffects_(EControlRectType eRT, SStyleGroupBasic*& pGroup, const Base::TRect<int32_t>& trShadowOutset, const Base::TRect<int32_t>& trHighlightInset);
672
684 static const CResult ClearEffects(SLayoutGeometryEffects*& pAttrGroup);
685 // --- End of Helpers --- //
686
699
712
723 static const SStyleGroupBasic* FindThemeStyleGroup(EGUIControlType eType);
740 static const CResult TryGetColor(const SStyleGroupBasic* pStyle, EControlPaintType ePT, EGUIControlState eState, COLORREF& outClr);
741
758 static const CResult TryGetDrawFlag(const SStyleGroupBasic* pStyle, EControlPaintType ePT, EGUIControlState eState, bool& outFlag);
759
776 static const CResult TryGetLineWidth(const SStyleGroupBasic* pStyle, EControlLineType ePT, EGUIControlState eState, int32_t& i32LineWidth);
777
794 static const CResult TryGetPenStyle(const SStyleGroupBasic* pStyle, EControlLineType ePT, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle& ePenStyle);
795
819 template<typename TStyle>
820 static const CResult TryGetStyleAttributeLayoutGeometryEffects(const SStyleGroupBasic* pStyle, EControlRectType eRT, EStyleLayoutGeometryEffectsElem eElem, TStyle*& outStyle);
821
841 static const CResult TryGetStyleAttributeText(const SStyleGroupBasic* pStyle, EControlTextType eTT, CGUIStyleAttributeTextLayout*& outStyle);
842
860 static const CResult SetBackgroundColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
861
877 static const CResult GetBackgroundColor(EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
878
896 static const CResult SetFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
897
913 static const CResult GetFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
914
934 static const CResult SetLineColor(EControlLineType eLT, EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
935
953 static const CResult GetLineColor(EControlLineType eLT, EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
954
974 static const CResult SetTextColor(EControlTextType eTT, EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
975
993 static const CResult GetTextColor(EControlTextType eTT, EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
994
1012 static const CResult SetSubItemFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
1013
1029 static const CResult GetSubItemFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
1030
1048 static const CResult SetSubItemIndicatorColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
1049
1065 static const CResult GetSubItemIndicatorColor(EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
1066
1085
1097
1108
1122 static const CResult SetTheme(EGUITheme e);
1123
1133 static bool IsInitialized();
1134
1135 DeclareGetClassType();
1136
1137 protected:
1138 CGUIThemePreset* m_pThemePreset;
1139 EGUITheme m_eTheme;
1140 EAntialiasingOption m_eAntialiasingFlags;
1141 bool m_bInitialized;
1142 std::vector<EGUIControlType>& m_vctHierarchy;
1143
1144 protected:
1145 const CResult Initialize();
1146 };
1147 }
1148}
Broadcast message class.
Definition BroadcastMessage.h:27
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 const CResult SetGeometryCornerRadiusPanePropertiesControlsByFont(CGUIThemePreset *pTheme, EGUITheme eTheme)
Sets the geometry corner radius for PaneProperties controls based on font metrics.
static const CResult GetSubItemIndicatorColor(EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
Gets the sub-item indicator color for a specific control type and state.
static EGUIControlType GetParentType(EGUIControlType eControlType)
Gets the parent control type of the specified control type.
static const CResult SetBackgroundColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
Sets the background color for a specific control type and state.
static const CResult SetColorForState(EControlPaintType e, SStyleGroupBasic *&pGroup, EGUIControlState eState, uint32_t color, bool bDraw=true)
Sets the color for a specific paint type and state in a style group.
static EGUITheme GetTheme()
Gets the currently applied GUI theme.
static const CResult SetLayoutPadding(SLayoutGeometryEffects *&pAttrGroup, const Base::TRect< int32_t > &trPadding)
Sets the Padding (internal spacing).
static const CResult ClearLineForState(SControlStateLineSet *&pLineSet, EGUIControlState eState)
Clears the line attribute for a specific state.
static const CResult SetSubItemIndicatorColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
Sets the sub-item indicator color for a specific control type and state.
static const CResult SetColorForState(SControlStateColorSet *&pColorSet, EGUIControlState eState, uint32_t color, bool bDraw=true)
Sets the color and draw flag for a specific state.
static const CResult SetGeometryCornerRadiusApplyMask(SLayoutGeometryEffects *&pAttrGroup, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB)
Sets the round corner application for each corner.
static const CResult SetTextLayout(EControlTextType eTT, SStyleGroupBasic *&pGroup, uint32_t u32Format, const Base::TRect< int32_t > &trPadding)
Sets the text layout attributes (Alignment format and Padding).
static const CResult TryGetLineWidth(const SStyleGroupBasic *pStyle, EControlLineType ePT, EGUIControlState eState, int32_t &i32LineWidth)
Tries to get the line width from the style group for a specific line type and state.
static const CResult SetTextLayoutPadding(EControlTextType eTT, SStyleGroupBasic *&pGroup, const Base::TRect< int32_t > &trPadding)
Sets the internal padding for the text.
static const CResult SetFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
Sets the fill color for a specific control type and state.
static const CResult GetTextColor(EControlTextType eTT, EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
Gets the text color for a specific text type, control type, and state.
static const CResult SetLineColor(EControlLineType eLT, EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
Sets the line color for a specific line type, control type, and state.
static const CResult SetTheme(EGUITheme e)
Sets the current GUI theme.
static const CResult SetDrawFlagForState(EControlPaintType e, SStyleGroupBasic *&pGroup, EGUIControlState eState, bool bFlag)
Sets the draw flag for a specific state in a color group.
static const CResult Terminate()
Terminates the GUI style manager.
static const CResult SetLineForAllStates(EControlLineType eLT, SStyleGroupBasic *&pGroup, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle)
Sets the line width.
static const SStyleGroupBasic * FindThemeStyleGroup(EGUIControlType eType)
Finds the Basic style group for the specified control type.
static bool IsInitialized()
Checks whether the style manager has been initialized.
static const CResult SetLineWidthForState(EControlLineType e, SStyleGroupBasic *&pGroup, EGUIControlState eState, int32_t i32LineWidth)
Sets the line width for a specific state in a style group.
static const CResult ClearTextLayout(STextStyle *&pAttrGroup)
Clears all layout attributes.
static const CResult SetLayoutMargin(SLayoutGeometryEffects *&pAttrGroup, const Base::TRect< int32_t > &trMargin)
Sets the Margin (external spacing).
static const CResult SetLayoutPadding_(EControlRectType eRT, SStyleGroupBasic *&pGroup, const Base::TRect< int32_t > &trPadding)
Sets the Padding for a specific rect type within a style group.
static bool IsAntialiasingEnabled(EAntialiasingOption eOption)
Checks if a specific antialiasing option is enabled.
static const CResult GetLineColor(EControlLineType eLT, EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
Gets the line color for a specific line type, control type, and state.
static const CResult SetGeometryCornerRadius(SLayoutGeometryEffects *&pAttrGroup, float f32CornerRadius, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB)
Sets the corner radius and its application for each corner.
static const CResult ClearGeometry(SLayoutGeometryEffects *&pAttrGroup)
Clears all geometry attributes (Corner radius, etc.).
static const CResult SetLayoutMargin_(EControlRectType eRT, SStyleGroupBasic *&pGroup, const Base::TRect< int32_t > &trMargin)
Sets the Margin for a specific rect type within a style group.
static const CResult SetColorForState(SControlStateColorSet *&pColorSet, EGUIControlState eState, uint32_t color, float f32Alpha, bool bDraw=true)
Sets the color and alpha value for a specific state.
static const CResult SetLayout(SLayoutGeometryEffects *&pAttrGroup, const Base::TRect< int32_t > &trMargin, const Base::TRect< int32_t > &trPadding)
Sets both Margin and Padding layout attributes.
static const CResult SetEffects(SLayoutGeometryEffects *&pAttrGroup, const Base::TRect< int32_t > &trShadowOutset, const Base::TRect< int32_t > &trHighlightInset)
Sets UI effects such as shadows and highlights.
static const CResult SetLayout_(EControlRectType eRT, SStyleGroupBasic *&pGroup, const Base::TRect< int32_t > &trMargin, const Base::TRect< int32_t > &trPadding)
Sets Margin and Padding for a specific rect type within a style group.
static const CResult SetTextColor(EControlTextType eTT, EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
Sets the text color for a specific text type, control type, and state.
static const CResult GetBackgroundColor(EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
Gets the background color for a specific control type and state.
static const CResult SetLinePenStyleForState_(SControlStateLineSet *&pLineSet, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle ePenStyle)
Sets the pen style for a specific state using the line set directly.
static const CResult GetSubItemFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
Gets the sub-item fill color for a specific control type and state.
static const CResult TryGetDrawFlag(const SStyleGroupBasic *pStyle, EControlPaintType ePT, EGUIControlState eState, bool &outFlag)
Tries to get the draw flag (On/Off) from the style group.
static const CResult SetEffects_(EControlRectType eRT, SStyleGroupBasic *&pGroup, const Base::TRect< int32_t > &trShadowOutset, const Base::TRect< int32_t > &trHighlightInset)
Sets UI effects for a specific rectangle type within a style group.
static const CResult ClearColorForState(SControlStateColorSet *&pColorSet, EGUIControlState eState)
Clears the color attribute for a specific state.
virtual void OnReceiveBroadcast(const Base::CBroadcastMessage *pMessage) override
Callback function. A function that receives a BroadcastMessage.
static const CResult SetTextLayoutFormat(EControlTextType eTT, SStyleGroupBasic *&pGroup, uint32_t u32Format)
Sets the text alignment and format flags.
static const CResult SetLineForState(EControlLineType e, SStyleGroupBasic *&pGroup, EGUIControlState eState, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle)
Sets the line width and pen style for a specific state in a style group.
static const CResult SetLineForState(SControlStateLineSet *&pLineSet, EGUIControlState eState, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle)
Sets the line width and pen style for a specific state.
static const CResult SetLinePenStyleForState(EControlLineType e, SStyleGroupBasic *&pGroup, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle ePenStyle)
Sets the pen style (solid, dash, etc.) for a specific state in a style group.
static const CResult SetLineForState(SControlStateLineSet *&pLineSet, EGUIControlState eState, int32_t i32LineWidth)
Sets the line width for a specific state. Creates the attribute object if it does not exist.
static const CResult ClearLayout(SLayoutGeometryEffects *&pAttrGroup)
Clears all layout attributes.
static const CResult GetFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
Gets the fill color for a specific control type and state.
static const CResult SetGeometryCornerRadius_(EControlRectType eRT, SStyleGroupBasic *&pGroup, float f32CornerRadius, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB)
Sets the corner radius for a specific rectangle type within a style group.
static const CResult TryGetPenStyle(const SStyleGroupBasic *pStyle, EControlLineType ePT, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle &ePenStyle)
Tries to get the pen style from the style group for a specific line type and state.
static const CResult TryGetColor(const SStyleGroupBasic *pStyle, EControlPaintType ePT, EGUIControlState eState, COLORREF &outClr)
Tries to get the color value from the style group for a specific paint type and state.
static const CResult ClearEffects(SLayoutGeometryEffects *&pAttrGroup)
Clears all effect attributes.
static const CResult EnableAntialiasing(EAntialiasingOption eOption)
Enables or disables a specific antialiasing option.
static const CResult TryGetStyleAttributeLayoutGeometryEffects(const SStyleGroupBasic *pStyle, EControlRectType eRT, EStyleLayoutGeometryEffectsElem eElem, TStyle *&outStyle)
Tries to get a layout or geometry effect style attribute from the style group.
static const CResult SetDrawFlagForAllStates(EControlPaintType e, SStyleGroupBasic *&pGroup, bool bFlag)
Sets the draw flag for all states in a color group at once.
static const CResult SetColorForAllStates(EControlPaintType e, SStyleGroupBasic *&pGroup, uint32_t u32Color, bool bDraw=true)
Sets the color and draw flag for all states.
static CGUIManagerStyle * GetInstance()
Gets the singleton instance of the GUI style manager.
static const CResult TryGetStyleAttributeText(const SStyleGroupBasic *pStyle, EControlTextType eTT, CGUIStyleAttributeTextLayout *&outStyle)
Tries to get a text style attribute from the style group.
static const CResult SetSubItemFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
Sets the sub-item fill color for a specific control type and state.
A class of line attribute class.
Definition GUIStyleAttribute.h:709
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:42
EGUIControlState
Enumeration for GUI control states.
Definition DefinitionsGUI.h:12907
EGUIControlType
Control.
Definition DefinitionsGUIStyle.h:458
EGUITheme
UI Theme types.
Definition DefinitionsGUIStyle.h:340