FLImaging 7.3.19.2
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 SetColorForState(SControlStateColorSet*& pColorSet, EGUIControlState eState, uint32_t color, bool bDraw = true);
92
116 static const CResult SetColorForState(SControlStateColorSet*& pColorSet, EGUIControlState eState, uint32_t color, float f32Alpha, bool bDraw = true);
117
141 static const CResult SetColorForState(EControlPaintType e, SStyleGroupBasic*& pGroup, EGUIControlState eState, uint32_t color, bool bDraw = true);
142
164 static const CResult SetDrawForState(EControlPaintType e, SStyleGroupBasic*& pGroup, EGUIControlState eState, bool bFlag);
165
181 static const CResult SetDrawForAllStates(EControlPaintType e, SStyleGroupBasic*& pGroup, bool bFlag);
182
196 static const CResult ClearColorForState(SControlStateColorSet*& pColorSet, EGUIControlState eState);
197
213 static const CResult SetLineForState(SControlStateLineSet*& pLineSet, EGUIControlState eState, int32_t i32LineWidth);
214
232 static const CResult SetLineWidthForState(EControlLineType e, SStyleGroupBasic*& pGroup, EGUIControlState eState, int32_t i32LineWidth);
233
251 static const CResult SetLinePenStyleForState(EControlLineType e, SStyleGroupBasic*& pGroup, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle ePenStyle);
252
268 static const CResult SetLinePenStyleForState_(SControlStateLineSet*& pLineSet, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle ePenStyle);
288 static const CResult SetLineForState(SControlStateLineSet*& pLineSet, EGUIControlState eState, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle);
289
311 static const CResult SetLineForState(EControlLineType e, SStyleGroupBasic*& pGroup, EGUIControlState eState, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle);
312
326 static const CResult ClearLineForState(SControlStateLineSet*& pLineSet, EGUIControlState eState);
341 static const CResult SetLayout(SLayoutGeometryEffects*& pAttrGroup, const Base::TRect<int32_t>& trMargin, const Base::TRect<int32_t>& trPadding);
342
360 static const CResult SetLayout_(EControlRectType eRT, SStyleGroupBasic*& pGroup, const Base::TRect<int32_t>& trMargin, const Base::TRect<int32_t>& trPadding);
361
375 static const CResult SetLayoutMargin(SLayoutGeometryEffects*& pAttrGroup, const Base::TRect<int32_t>& trMargin);
376
392 static const CResult SetLayoutMargin_(EControlRectType eRT, SStyleGroupBasic*& pGroup, const Base::TRect<int32_t>& trMargin);
393
407 static const CResult SetLayoutPadding(SLayoutGeometryEffects*& pAttrGroup, const Base::TRect<int32_t>& trPadding);
408
424 static const CResult SetLayoutPadding_(EControlRectType eRT, SStyleGroupBasic*& pGroup, const Base::TRect<int32_t>& trPadding);
425
437 static const CResult ClearLayout(SLayoutGeometryEffects*& pAttrGroup);
455 static const CResult SetTextLayout(EControlTextType eTT, SStyleGroupBasic*& pGroup, uint32_t u32Format, const Base::TRect<int32_t>& trPadding);
456
472 static const CResult SetTextLayoutFormat(EControlTextType eTT, SStyleGroupBasic*& pGroup, uint32_t u32Format);
473
489 static const CResult SetTextLayoutPadding(EControlTextType eTT, SStyleGroupBasic*& pGroup, const Base::TRect<int32_t>& trPadding);
490
502 static const CResult ClearTextLayout(STextStyle*& pAttrGroup);
503
526 static const CResult SetGeometryCornerRadius(SLayoutGeometryEffects*& pAttrGroup, float f32CornerRadius, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB);
527
552 static const CResult SetGeometryCornerRadius_(EControlRectType eRT, SStyleGroupBasic*& pGroup, float f32CornerRadius, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB);
553
573 static const CResult SetGeometryCornerRadiusApplyMask(SLayoutGeometryEffects*& pAttrGroup, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB);
574
586 static const CResult ClearGeometry(SLayoutGeometryEffects*& pAttrGroup);
587
606 static const CResult SetEffects(SLayoutGeometryEffects*& pAttrGroup, const Base::TRect<int32_t>& trShadowOutset, const Base::TRect<int32_t>& trHighlightInset);
607
626 static const CResult SetEffects_(EControlRectType eRT, SStyleGroupBasic*& pGroup, const Base::TRect<int32_t>& trShadowOutset, const Base::TRect<int32_t>& trHighlightInset);
627
639 static const CResult ClearEffects(SLayoutGeometryEffects*& pAttrGroup);
640 // --- End of Helpers --- //
641
654
667
678 static const SStyleGroupBasic* FindThemeStyleGroup(EGUIControlType eType);
695 static const CResult TryGetColor(const SStyleGroupBasic* pStyle, EControlPaintType ePT, EGUIControlState eState, COLORREF& outClr);
696
713 static const CResult TryGetDrawFlag(const SStyleGroupBasic* pStyle, EControlPaintType ePT, EGUIControlState eState, bool& outFlag);
714
731 static const CResult TryGetLineWidth(const SStyleGroupBasic* pStyle, EControlLineType ePT, EGUIControlState eState, int32_t& i32LineWidth);
732
749 static const CResult TryGetPenStyle(const SStyleGroupBasic* pStyle, EControlLineType ePT, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle& ePenStyle);
750
774 template<typename TStyle>
775 static const CResult TryGetStyleAttributeLayoutGeometryEffects(const SStyleGroupBasic* pStyle, EControlRectType eRT, EStyleLayoutGeometryEffectsElem eElem, TStyle*& outStyle);
776
796 static const CResult TryGetStyleAttributeText(const SStyleGroupBasic* pStyle, EControlTextType eTT, CGUIStyleAttributeTextLayout*& outStyle);
797
815 static const CResult SetBackgroundColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
816
832 static const CResult GetBackgroundColor(EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
833
851 static const CResult SetFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
852
868 static const CResult GetFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
869
889 static const CResult SetLineColor(EControlLineType eLT, EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
890
908 static const CResult GetLineColor(EControlLineType eLT, EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
909
929 static const CResult SetTextColor(EControlTextType eTT, EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
930
948 static const CResult GetTextColor(EControlTextType eTT, EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
949
967 static const CResult SetSubItemFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
968
984 static const CResult GetSubItemFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
985
1003 static const CResult SetSubItemIndicatorColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw = true);
1004
1020 static const CResult GetSubItemIndicatorColor(EGUIControlType eCT, EGUIControlState eState, COLORREF& clr);
1021
1040
1052
1063
1077 static const CResult SetTheme(EGUITheme e);
1078
1088 static bool IsInitialized();
1089
1090 DeclareGetClassType();
1091
1092 protected:
1093 CGUIThemePreset* m_pThemePreset;
1094 EGUITheme m_eTheme;
1095 EAntialiasingOption m_eAntialiasingFlags;
1096 bool m_bInitialized;
1097 std::vector<EGUIControlType>& m_vctHierarchy;
1098
1099 protected:
1100 const CResult Initialize();
1101 };
1102 }
1103}
브로드캐스트 메시지 클래스
Definition BroadcastMessage.h:27
FLImaging의 최상위 기저 클래스
Definition FLBase.h:36
직사각형을 표현하는 간략화된 클래스
Definition TRect.h:37
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1676
static const CResult SetGeometryCornerRadiusPanePropertiesControlsByFont(CGUIThemePreset *pTheme, EGUITheme eTheme)
폰트 기준에 따라 PaneProperties 컨트롤의 모서리 라운딩 속성을 설정합니다.
static const CResult GetSubItemIndicatorColor(EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
특정 컨트롤 유형과 상태에 대한 서브 아이템 인디케이터 색상을 가져옵니다.
static EGUIControlType GetParentType(EGUIControlType eControlType)
지정된 컨트롤 타입의 부모 컨트롤 타입을 얻어옵니다.
static const CResult SetBackgroundColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
특정 컨트롤 유형과 상태에 대한 배경색을 설정합니다.
static const CResult SetDrawForAllStates(EControlPaintType e, SStyleGroupBasic *&pGroup, bool bFlag)
컬러 그룹의 모든 상태에 대한 그리기 플래그를 일괄 설정합니다.
static const CResult SetColorForState(EControlPaintType e, SStyleGroupBasic *&pGroup, EGUIControlState eState, uint32_t color, bool bDraw=true)
스타일 그룹 내 특정 그리기 유형과 상태에 대한 색상을 설정합니다.
static EGUITheme GetTheme()
현재 적용된 GUI 테마를 반환합니다.
static const CResult SetLayoutPadding(SLayoutGeometryEffects *&pAttrGroup, const Base::TRect< int32_t > &trPadding)
내부 여백(Padding)을 설정합니다.
static const CResult ClearLineForState(SControlStateLineSet *&pLineSet, EGUIControlState eState)
특정 상태에 대한 라인 속성을 초기화(제거)합니다.
static const CResult SetSubItemIndicatorColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
특정 컨트롤 유형과 상태에 대한 서브 아이템 인디케이터 색상을 설정합니다.
static const CResult SetColorForState(SControlStateColorSet *&pColorSet, EGUIControlState eState, uint32_t color, bool bDraw=true)
특정 상태에 대한 색상과 그리기 플래그를 설정합니다.
static const CResult SetGeometryCornerRadiusApplyMask(SLayoutGeometryEffects *&pAttrGroup, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB)
각 꼭짓점별 모서리 라운딩 적용 여부를 설정합니다.
static const CResult SetTextLayout(EControlTextType eTT, SStyleGroupBasic *&pGroup, uint32_t u32Format, const Base::TRect< int32_t > &trPadding)
텍스트 레이아웃 속성(정렬 포맷 및 Padding)을 설정합니다.
static const CResult TryGetLineWidth(const SStyleGroupBasic *pStyle, EControlLineType ePT, EGUIControlState eState, int32_t &i32LineWidth)
스타일 그룹에서 특정 라인 유형 및 상태에 대한 라인 두께 값을 가져옵니다.
static const CResult SetTextLayoutPadding(EControlTextType eTT, SStyleGroupBasic *&pGroup, const Base::TRect< int32_t > &trPadding)
텍스트의 내부 여백(Padding)을 설정합니다.
static const CResult SetFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
특정 컨트롤 유형과 상태에 대한 채우기 색상을 설정합니다.
static const CResult GetTextColor(EControlTextType eTT, EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
특정 텍스트 유형, 컨트롤 유형 및 상태에 대한 텍스트 색상을 가져옵니다.
static const CResult SetLineColor(EControlLineType eLT, EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
특정 라인 유형, 컨트롤 유형 및 상태에 대한 선 색상을 설정합니다.
static const CResult SetTheme(EGUITheme e)
현재 GUI 테마를 설정합니다.
static const CResult Terminate()
GUI 스타일 매니저를 종료합니다.
static const SStyleGroupBasic * FindThemeStyleGroup(EGUIControlType eType)
지정된 컨트롤 타입에 대한 Basic 스타일 그룹을 찾습니다.
static bool IsInitialized()
스타일 매니저의 초기화 여부를 확인합니다.
static const CResult SetLineWidthForState(EControlLineType e, SStyleGroupBasic *&pGroup, EGUIControlState eState, int32_t i32LineWidth)
스타일 그룹 내 특정 상태에 대한 라인 두께를 설정합니다.
static const CResult ClearTextLayout(STextStyle *&pAttrGroup)
모든 레이아웃 속성을 초기화합니다.
static const CResult SetLayoutMargin(SLayoutGeometryEffects *&pAttrGroup, const Base::TRect< int32_t > &trMargin)
외부 여백(Margin)을 설정합니다.
static const CResult SetLayoutPadding_(EControlRectType eRT, SStyleGroupBasic *&pGroup, const Base::TRect< int32_t > &trPadding)
스타일 그룹 내 특정 영역 유형에 대한 내부 여백(Padding)을 설정합니다.
static bool IsAntialiasingEnabled(EAntialiasingOption eOption)
특정 안티앨리어싱 옵션의 활성화 여부를 확인합니다.
static const CResult GetLineColor(EControlLineType eLT, EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
특정 라인 유형, 컨트롤 유형 및 상태에 대한 선 색상을 가져옵니다.
static const CResult SetGeometryCornerRadius(SLayoutGeometryEffects *&pAttrGroup, float f32CornerRadius, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB)
모서리 라운딩 반지름 및 각 꼭짓점별 적용 여부를 설정합니다.
static const CResult ClearGeometry(SLayoutGeometryEffects *&pAttrGroup)
모든 지오메트리 속성(모서리 라운딩 등)을 초기화합니다.
static const CResult SetLayoutMargin_(EControlRectType eRT, SStyleGroupBasic *&pGroup, const Base::TRect< int32_t > &trMargin)
스타일 그룹 내 특정 영역 유형에 대한 외부 여백(Margin)을 설정합니다.
static const CResult SetColorForState(SControlStateColorSet *&pColorSet, EGUIControlState eState, uint32_t color, float f32Alpha, bool bDraw=true)
특정 상태에 대한 색상과 알파 값을 설정합니다.
static const CResult SetLayout(SLayoutGeometryEffects *&pAttrGroup, const Base::TRect< int32_t > &trMargin, const Base::TRect< int32_t > &trPadding)
Margin 및 Padding 레이아웃 속성을 모두 설정합니다.
static const CResult SetEffects(SLayoutGeometryEffects *&pAttrGroup, const Base::TRect< int32_t > &trShadowOutset, const Base::TRect< int32_t > &trHighlightInset)
그림자 및 하이라이트와 같은 UI 효과를 설정합니다.
static const CResult SetLayout_(EControlRectType eRT, SStyleGroupBasic *&pGroup, const Base::TRect< int32_t > &trMargin, const Base::TRect< int32_t > &trPadding)
스타일 그룹 내 특정 영역 유형에 대한 Margin 및 Padding을 설정합니다.
static const CResult SetTextColor(EControlTextType eTT, EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
특정 텍스트 유형, 컨트롤 유형 및 상태에 대한 텍스트 색상을 설정합니다.
static const CResult GetBackgroundColor(EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
특정 컨트롤 유형과 상태에 대한 배경색을 가져옵니다.
static const CResult SetLinePenStyleForState_(SControlStateLineSet *&pLineSet, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle ePenStyle)
라인 셋을 직접 참조하여 특정 상태에 대한 펜 스타일을 설정합니다.
static const CResult GetSubItemFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
특정 컨트롤 유형과 상태에 대한 서브 아이템 채우기 색상을 가져옵니다.
static const CResult TryGetDrawFlag(const SStyleGroupBasic *pStyle, EControlPaintType ePT, EGUIControlState eState, bool &outFlag)
스타일 그룹에서 특정 그리기 유형 및 상태에 대한 그리기 플래그(활성화 여부)를 가져옵니다.
static const CResult SetEffects_(EControlRectType eRT, SStyleGroupBasic *&pGroup, const Base::TRect< int32_t > &trShadowOutset, const Base::TRect< int32_t > &trHighlightInset)
스타일 그룹 내 특정 영역 유형에 대한 UI 효과(그림자/하이라이트)를 설정합니다.
static const CResult ClearColorForState(SControlStateColorSet *&pColorSet, EGUIControlState eState)
특정 상태에 대한 색상 속성을 초기화(제거)합니다.
virtual void OnReceiveBroadcast(const Base::CBroadcastMessage *pMessage) override
Callback 함수. BroadcastMessage를 수신받는 함수
static const CResult SetTextLayoutFormat(EControlTextType eTT, SStyleGroupBasic *&pGroup, uint32_t u32Format)
텍스트 정렬 및 형식 플래그를 설정합니다.
static const CResult SetLineForState(EControlLineType e, SStyleGroupBasic *&pGroup, EGUIControlState eState, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle)
스타일 그룹 내 특정 상태에 대한 라인 두께 및 펜 스타일을 설정합니다.
static const CResult SetLineForState(SControlStateLineSet *&pLineSet, EGUIControlState eState, int32_t i32LineWidth, Foundation::EAttributeDrawingPenStyle ePenStyle)
특정 상태에 대한 라인 두께 및 펜 스타일을 설정합니다.
static const CResult SetLinePenStyleForState(EControlLineType e, SStyleGroupBasic *&pGroup, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle ePenStyle)
스타일 그룹 내 특정 상태에 대한 펜 스타일(실선, 점선 등)을 설정합니다.
static const CResult SetLineForState(SControlStateLineSet *&pLineSet, EGUIControlState eState, int32_t i32LineWidth)
특정 상태에 대한 라인 두께를 설정합니다. 속성 객체가 없으면 생성합니다.
static const CResult ClearLayout(SLayoutGeometryEffects *&pAttrGroup)
모든 레이아웃 속성을 초기화합니다.
static const CResult GetFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF &clr)
특정 컨트롤 유형과 상태에 대한 채우기 색상을 가져옵니다.
static const CResult SetGeometryCornerRadius_(EControlRectType eRT, SStyleGroupBasic *&pGroup, float f32CornerRadius, bool bApplyLT, bool bApplyRT, bool bApplyRB, bool bApplyLB)
스타일 그룹 내 특정 영역 유형에 대한 모서리 라운딩 설정을 수행합니다.
static const CResult TryGetPenStyle(const SStyleGroupBasic *pStyle, EControlLineType ePT, EGUIControlState eState, Foundation::EAttributeDrawingPenStyle &ePenStyle)
스타일 그룹에서 특정 라인 유형 및 상태에 대한 펜 스타일(실선, 점선 등)을 가져옵니다.
static const CResult TryGetColor(const SStyleGroupBasic *pStyle, EControlPaintType ePT, EGUIControlState eState, COLORREF &outClr)
스타일 그룹에서 특정 그리기 유형 및 상태에 대한 색상 값을 가져옵니다.
static const CResult ClearEffects(SLayoutGeometryEffects *&pAttrGroup)
모든 효과 속성을 초기화합니다.
static const CResult EnableAntialiasing(EAntialiasingOption eOption)
특정 안티앨리어싱 옵션을 활성화 또는 비활성화합니다.
static const CResult TryGetStyleAttributeLayoutGeometryEffects(const SStyleGroupBasic *pStyle, EControlRectType eRT, EStyleLayoutGeometryEffectsElem eElem, TStyle *&outStyle)
스타일 그룹에서 레이아웃 또는 지오메트리 효과 스타일 속성을 가져옵니다.
static CGUIManagerStyle * GetInstance()
GUI 스타일 매니저의 싱글톤 인스턴스를 반환합니다.
static const CResult SetDrawForState(EControlPaintType e, SStyleGroupBasic *&pGroup, EGUIControlState eState, bool bFlag)
특정 상태에 대한 컬러 그룹의 그리기 플래그를 설정합니다.
static const CResult TryGetStyleAttributeText(const SStyleGroupBasic *pStyle, EControlTextType eTT, CGUIStyleAttributeTextLayout *&outStyle)
스타일 그룹에서 텍스트 스타일 속성을 가져옵니다.
static const CResult SetSubItemFillColor(EGUIControlType eCT, EGUIControlState eState, COLORREF clr, bool bDraw=true)
특정 컨트롤 유형과 상태에 대한 서브 아이템 채우기 색상을 설정합니다.
Layout 속성 클래스
Definition GUIStyleAttribute.h:709
테마 프리셋
Definition GUIThemePreset.h:28
EAttributeDrawingPenStyle
Figure 그리기 속성의 펜 스타일
Definition DefinitionsFigure.h:3217
Definition D2DObject.h:12
EAntialiasingOption
각 레이어 및 컨트롤에 대한 안티앨리어싱 옵션
Definition DefinitionsGUIStyle.h:42
EGUIControlState
GUI 컨트롤 상태 열거형
Definition DefinitionsGUI.h:12250
EGUIControlType
컨트롤
Definition DefinitionsGUIStyle.h:458
EGUITheme
UI 테마 타입
Definition DefinitionsGUIStyle.h:340