FLImaging 7.1.24.1
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
22 public:
23 virtual void SetText(const Base::CFLString<wchar_t>& str);
24 virtual const Base::CFLString<wchar_t>& GetText()const;
25
26 virtual const CResult ResolveBasicColor(EStyleControlStyleGroupBasicElem e, EGUIControlState state, COLORREF& outClr) const;
27 virtual const CResult ResolveSubButtonColor(EStyleControlStyleGroupSubButtonElem e, EGUIControlState state, COLORREF& outClr) const;
28
29 protected:
30 virtual SControlStyleColorGroup* EnsureBasicColorGroup(EStyleControlStyleGroupBasicElem e);
31 virtual void SetBasicColorState(EStyleControlStyleGroupBasicElem e, EGUIControlState st, COLORREF clr);
32 virtual SControlStyleColorGroup* EnsureSubButtonColorGroup(EStyleControlStyleGroupSubButtonElem e);
33 virtual void SetSubButtonColorState(EStyleControlStyleGroupSubButtonElem e, EGUIControlState st, COLORREF clr);
34
35 public:
36 virtual void SetFillColors(COLORREF clrFillColorDefault, COLORREF clrFillColorDisabled, COLORREF clrFillColorHover, COLORREF clrFillColorOnLButtonDown);
37 virtual void GetFillColors(COLORREF& clrFillColorDefault, COLORREF& clrFillColorDisabled, COLORREF& clrFillColorHover, COLORREF& clrFillColorOnLButtonDown);
38
39 virtual void SetFillColor(COLORREF clrFillColor);
40 virtual COLORREF GetFillColor();
41
42 virtual void SetFillColorDefault(COLORREF clrFillColorDefault);
43 virtual COLORREF GetFillColorDefault();
44
45 virtual void SetFillColorDisabled(COLORREF clrFillColorDisabled);
46 virtual COLORREF GetFillColorDisabled();
47
48 virtual void SetFillColorHover(COLORREF clrFillColorHover);
49 virtual COLORREF GetFillColorHover();
50
51 virtual void SetFillColorOnLButtonDown(COLORREF clrFillColorOnLButtonDown);
52 virtual COLORREF GetFillColorOnLButtonDown();
53
54
55 virtual void SetBorderColors(COLORREF clrBorderColorDefault, COLORREF clrBorderColorDisabled, COLORREF clrBorderColorHover, COLORREF clrBorderColorOnLButtonDown);
56 virtual void GetBorderColors(COLORREF& clrBorderColorDefault, COLORREF& clrBorderColorDisabled, COLORREF& clrBorderColorHover, COLORREF& clrBorderColorOnLButtonDown);
57
58 virtual void SetBorderColor(COLORREF clrBorderColor);
59 virtual COLORREF GetBorderColor();
60
61 virtual void SetBorderColorDefault(COLORREF clrBorderColorDefault);
62 virtual COLORREF GetBorderColorDefault();
63
64 virtual void SetBorderColorDisabled(COLORREF clrBorderColorDisabled);
65 virtual COLORREF GetBorderColorDisabled();
66
67 virtual void SetBorderColorHover(COLORREF clrBorderColorHover);
68 virtual COLORREF GetBorderColorHover();
69
70 virtual void SetBorderColorOnLButtonDown(COLORREF clrBorderColorOnLButtonDown);
71 virtual COLORREF GetBorderColorOnLButtonDown();
72
73
74 virtual void SetTextColors(COLORREF clrTextColorDefault, COLORREF clrTextColorDisabled, COLORREF clrTextColorHover, COLORREF clrTextColorOnLButtonDown);
75 virtual void GetTextColors(COLORREF& clrTextColorDefault, COLORREF& clrTextColorDisabled, COLORREF& clrTextColorHover, COLORREF& clrTextColorOnLButtonDown);
76
77 virtual void SetTextColor(COLORREF clrTextColor);
78 virtual COLORREF GetTextColor();
79
80 virtual void SetTextColorDefault(COLORREF clrTextColorDefault);
81 virtual COLORREF GetTextColorDefault();
82
83 virtual void SetTextColorDisabled(COLORREF clrTextColorDisabled);
84 virtual COLORREF GetTextColorDisabled();
85
86 virtual void SetTextColorHover(COLORREF clrTextColorHover);
87 virtual COLORREF GetTextColorHover();
88
89 virtual void SetTextColorOnLButtonDown(COLORREF clrTextColorOnLButtonDown);
90 virtual COLORREF GetTextColorOnLButtonDown();
91
92 virtual void SetParentCWnd(CWnd* pParent);
93 virtual CWnd* GetParentCWnd();
94
95 virtual void SetParentCObject(CObject* pParent);
96 virtual CObject* GetParentCObject();
97
98 virtual void UpdateTheme();
99 virtual void DrawRectangleBorder(CDC* pDC, const CRect& rect, COLORREF clr);
100
101 virtual bool SetWndCtrlProcedure(CWndCtrlProcedure* pFunc, bool bAutoDestroy = true);
102 virtual CWndCtrlProcedure* GetWndCtrlProcedure() const;
103
104 virtual void ActivateWndCtrlProcedure(bool bActivate);
105 virtual bool IsWndCtrlProcedureActivated()const;
106
107
108 virtual const CResult Assign(const CGUIWndCtrlBase& rhs);
109 virtual const CResult Assign(const CGUIWndCtrlBase* pRhs);
110 CGUIWndCtrlBase& operator=(const CGUIWndCtrlBase& rhs);
111
112 DeclareGetClassType();
113
114 protected:
115 virtual const CResult InternalAssign(const CGUIWndCtrlBase& rhs);
116
117 virtual const CResult CreateBackBuffer(CWnd* pParentWnd, CWnd* pThisWnd, CRect rect);
118 virtual const CResult DeleteBackBuffer();
119 virtual const CResult RefreshBackBufferBackground(CWnd* pParentWnd, CWnd* pThisWnd, const CRect& rect);
120
121 protected:
122 CWnd* m_pParent;
123 CObject* m_pParentCObject;
124
125 SControlStyleGroupBasic* m_pStyleBasic;
126 SControlStyleGroupSubButton* m_pStyleSubButton;
127
128 COLORREF m_clrFill;
129 COLORREF m_clrBorder;
130 COLORREF m_clrText;
131
132 COLORREF m_clrFillDefault;
133 COLORREF m_clrFillDisabled;
134 COLORREF m_clrFillHover;
135 COLORREF m_clrFillOnLButtonDown;
136
137 COLORREF m_clrBorderDefault;
138 COLORREF m_clrBorderDisabled;
139 COLORREF m_clrBorderHover;
140 COLORREF m_clrBorderOnLButtonDown;
141
142 COLORREF m_clrTextDefault;
143 COLORREF m_clrTextDisabled;
144 COLORREF m_clrTextHover;
145 COLORREF m_clrTextOnLButtonDown;
146
147 COLORREF m_clrSubButtonFill;
148 COLORREF m_clrSubButtonBorder;
149 COLORREF m_clrSubButtonIndicator;
150
151 bool m_bFillBk;
152 bool m_bDrawBorder;
153 bool m_bWndCtrlProcedureActive;
154 bool m_bOnPropertyGrid;
155 EGUIControlType m_eControlTypeForStyle;
156
157 Base::CFLString<wchar_t> m_strText;
158 bool m_bTextDirty;
159
160 CDC& m_dcBk;
161 CBitmap& m_bmpBk;
162 CBitmap* m_pBmpOldBk;
163
164 CWndCtrlProcedure* m_pProcedure;
165 bool m_bProcedureAutoDestroy;
166
167 };
168 }
169}
170
Definition D2DObject.h:12
EGUIControlType
컨트롤
Definition DefinitionsGUIStyle.h:391
@ Assign
CGUIPropertyItemView3DFigure 의 값을 해당 도형으로 설정하는 함수
Definition DefinitionsGUIView3D.h:2930