FLImaging 6.8.12.1
GUIVisualManager.h
1#pragma once
2#include <afxvisualmanagerwindows7.h>
3class CGUIVisualManager : public CMFCVisualManagerWindows7
4{
5 DECLARE_DYNCREATE(CGUIVisualManager)
6
7public:
8 CGUIVisualManager();
9 virtual ~CGUIVisualManager();
10
11 virtual void SetAppTheme(UINT nTheme);
12 virtual UINT GetAppTheme();
13
14
15public:
16 // MDI Client area background color
17 COLORREF GetClrMDIClientArea();
18 void SetClrMDIClientArea(COLORREF val);
19 COLORREF GetClrMDIClientLightArea();
20 void SetClrMDIClientLightArea(COLORREF val);
21 BOOL GetCustomMDIClientAreaClr();
22 void SetCustomMDIClientAreaClr(BOOL val);
23
24 // BarBackground color
25 COLORREF GetClrBarBkDefault() const;
26 void SetClrBarBkDefault(COLORREF val);
27
28 // MenuBarBackground color
29 COLORREF GetClrMenuBarBackground() const;
30 void SetClrMenuBarBackground(COLORREF val);
31
32 // PaneDivider color
33 COLORREF GetClrPaneDivider() const;
34 void SetClrPaneDivider(COLORREF val);
35
36 // PaneBase color
37 COLORREF GetClrPaneBase() const;
38 void SetClrPaneBase(COLORREF val);
39
40 // MiniFrame color
41 COLORREF GetClrMiniFrameBkDefault() const;
42 void SetClrMiniFrameBkDefault(COLORREF val);
43 COLORREF GetClrMiniFrameBkInactive() const;
44 void SetClrMiniFrameBkInactive(COLORREF val);
45 COLORREF GetClrMiniFrameBorder() const;
46 void SetClrMiniFrameBorder(COLORREF val);
47
48 // Text color
49 COLORREF GetClrTextDefault() const;
50 void SetClrTextDefault(COLORREF val);
51 COLORREF GetClrTextHighlighted() const;
52 void SetClrTextHighlighted(COLORREF val);
53 COLORREF GetClrTextDisabled() const;
54 void SetClrTextDisabled(COLORREF val);
55
56 // Caption Text color
57 COLORREF GetClrCaptionTextDefault() const;
58 void SetClrCaptionTextDefault(COLORREF val);
59 COLORREF GetClrCaptionTextHighlighted() const;
60 void SetClrCaptionTextHighlighted(COLORREF val);
61 COLORREF GetClrCaptionTextInactive() const;
62 void SetClrCaptionTextInactive(COLORREF val);
63 COLORREF GetClrCaptionTextDisabled() const;
64 void SetClrCaptionTextDisabled(COLORREF val);
65
66 COLORREF GetClrToolBarColorHover() const;
67 void SetClrToolBarColorHover(COLORREF crColor);
68 COLORREF GetClrToolBarColorChecked() const;
69 void SetClrToolBarColorChecked(COLORREF crColor);
70 COLORREF GetClrToolBarColorHoverEdge() const;
71 void SetClrToolBarColorHoverEdge(COLORREF crColor);
72
73 COLORREF GetClrTabsArea() const;
74 void SetClrTabsArea(COLORREF clr);
75
76 COLORREF GetClrWindow() const;
77 void SetClrWindow(COLORREF clr);
78
79 COLORREF GetClrWindowText() const;
80 void SetClrWindowText(COLORREF clr);
81
82 COLORREF GetClrBarText() const;
83 void SetClrBarText(COLORREF clr);
84
85 COLORREF GetClrBarFace() const;
86 void SetClrBarFace(COLORREF clr);
87
88 COLORREF GetClrInactiveBorder() const;
89 void SetClrInactiveBorder(COLORREF clr);
90
91 COLORREF GetClrPropertyFace() const;
92 void SetClrPropertyFace(COLORREF clr);
93
94 COLORREF GetClrPropertyGroupBackground() const;
95 void SetClrPropertyGroupBackground(COLORREF clr);
96
97 COLORREF GetClrActiveBorder() const;
98 COLORREF GetClrBtnShadow() const;
99 COLORREF GetClrBtnText() const;
100 COLORREF GetClrGrayedText() const;
101 COLORREF GetClrTextHilite() const;
102 COLORREF GetClrBtnDkShadow() const;
103 COLORREF GetClrBtnHilite() const;
104 COLORREF GetClrBtnFace() const;
105 COLORREF GetClrBarDkShadow() const;
106 COLORREF GetClrBarHilite() const;
107 COLORREF GetClrBarLight() const;
108 COLORREF GetClrBarShadow() const;
109 COLORREF GetClrBarWindow() const;
110 COLORREF GetClrBtnLight() const;
111 COLORREF GetClrCaptionText() const;
112 COLORREF GetClrHotLinkHoveredText() const;
113 COLORREF GetClrHotLinkNormalText() const;
114 COLORREF GetClrHotLinkVisitedText() const;
115 COLORREF GetClrInactiveCaption() const;
116 COLORREF GetClrInactiveCaptionGradient() const;
117 COLORREF GetClrInactiveCaptionText() const;
118 COLORREF GetClrMenuText() const;
119 COLORREF GetClrWindowFrame() const;
120 COLORREF GetClrActiveCaption() const;
121 COLORREF GetClrActiveCaptionGradient() const;
122 COLORREF GetClrHilite() const;
123
124 // MDI Client area background
125 virtual BOOL OnEraseMDIClientArea(CDC* pDC, CRect rectClient);
126
127 // BarBackground
128 virtual void OnFillBarBackground(CDC* pDC, CBasePane* pBar, CRect rectClient, CRect rectClip, BOOL bNCArea = FALSE);
129
130 // MiniFrame
131 virtual COLORREF OnFillMiniFrameCaption(CDC* pDC, CRect rectCaption, CPaneFrameWnd* pFrameWnd, BOOL bActive);
132 virtual void OnDrawMiniFrameBorder(CDC* pDC, CPaneFrameWnd* pFrameWnd, CRect rectBorder, CRect rectBorderSize);
133 virtual COLORREF OnDrawPaneCaption(CDC* pDC, CDockablePane* pBar, BOOL bActive, CRect rectCaption, CRect rectButtons);
134 virtual void OnDrawCaptionButton(CDC* pDC, CMFCCaptionButton* pButton, BOOL bActive, BOOL bHorz, BOOL bMaximized, BOOL bDisabled, int nImageID = -1);
135 virtual void GetTabFrameColors(const CMFCBaseTabCtrl* pTabWnd, COLORREF& clrDark, COLORREF& clrBlack, COLORREF& clrHighlight,
136 COLORREF& clrFace, COLORREF& clrDarkShadow, COLORREF& clrLight, CBrush*& pbrFace, CBrush*& pbrBlack);
137 virtual void OnFillButtonInterior(CDC* pDC, CMFCToolBarButton* pButton, CRect rect, CMFCVisualManager::AFX_BUTTON_STATE state);
138
139 virtual void OnDrawExpandingBox(CDC* pDC, CRect rect, BOOL bOpened, COLORREF colorBox)override;
140 virtual void OnFillMenuImageRect(CDC* pDC, CMFCToolBarButton* pButton, CRect rect, CMFCVisualManager::AFX_BUTTON_STATE state);
141 virtual void OnDrawMenuCheck(CDC* pDC, CMFCToolBarMenuButton* pButton, CRect rect, BOOL bHighlight, BOOL bRadio);
142
143 // Tab
144 virtual void OnEraseTabsArea(CDC* pDC, CRect rect, const CMFCBaseTabCtrl* pTabWnd) override;
145
146 virtual BOOL IsHighlightWholeMenuItem() override;
147 virtual void OnHighlightMenuItem(CDC* pDC, CMFCToolBarMenuButton* pButton, CRect rect, COLORREF& clrText) override;
148 static bool DrawCustomCheckBox(CDC* pDC, CRect& rtRect, COLORREF crColor, bool bWithBox = false, COLORREF crFillColor = 0);
149
150 // pane properties
151 static void OnDrawCheckBoxEx(CDC* pDC, CRect rect, int nState, BOOL bHighlighted, BOOL bPressed, BOOL bEnabled);
152 static void OnDrawRadioButton(CDC* pDC, CRect rect, BOOL bOn, BOOL bHighlighted, BOOL bPressed, BOOL bEnabled);
153
154 // Auto-hide buttons:
155 virtual void OnFillAutoHideButtonBackground(CDC* pDC, CRect rect, CMFCAutoHideButton* pButton) override;
156 virtual void OnDrawAutoHideButtonBorder(CDC* pDC, CRect rectBounds, CRect rectBorderSize, CMFCAutoHideButton* pButton) override;
157 virtual COLORREF GetAutoHideButtonTextColor(CMFCAutoHideButton* pButton) override;
158
159 // System menu button
160 virtual void OnDrawMenuSystemButton(CDC* pDC, CRect rect, UINT uiSystemCommand, UINT nStyle, BOOL bHighlight) override;
161
162 virtual void OnDrawSpinButtons(CDC* pDC, CRect rectSpin, int nState, BOOL bOrientation, CMFCSpinButtonCtrl* pSpinCtrl)override;
163 virtual void OnDrawSpinButtons(CDC* pDC, CRect rectSpinUp, CRect rectSpinDown, int nState, BOOL bOrientation, CMFCSpinButtonCtrl* pSpinCtrl);
164
165 // Utility fns to lighten or darken colour
166 static COLORREF LightenColor(long lScale, COLORREF lColor);
167 static COLORREF DarkenColor(long lScale, COLORREF lColor);
168
169 // Fallback static accessors
170
171 static void SetAppThemeFallback(UINT nTheme);
172 static UINT GetAppThemeFallback();
173
174 // MDI Client area background color
175 static COLORREF GetClrMDIClientAreaFallback();
176 static COLORREF GetClrMDIClientLightAreaFallback();
177 static BOOL GetCustomMDIClientAreaClrFallback();
178
179 // BarBackground color
180 static COLORREF GetClrBarBkDefaultFallback();
181
182 // MenuBarBackground color
183 static COLORREF GetClrMenuBarBackgroundFallback();
184
185 // PaneDivider color
186 static COLORREF GetClrPaneDividerFallback();
187
188 // PaneBase color
189 static COLORREF GetClrPaneBaseFallback();
190
191 // MiniFrame color
192 static COLORREF GetClrMiniFrameBkDefaultFallback();
193 static COLORREF GetClrMiniFrameBkInactiveFallback();
194 static COLORREF GetClrMiniFrameBorderFallback();
195
196 // Text color
197 static COLORREF GetClrTextDefaultFallback();
198 static COLORREF GetClrTextHighlightedFallback();
199 static COLORREF GetClrTextDisabledFallback();
200
201 static COLORREF GetClrCaptionTextDefaultFallback();
202 static COLORREF GetClrCaptionTextHighlightedFallback();
203 static COLORREF GetClrCaptionTextInactiveFallback();
204 static COLORREF GetClrCaptionTextDisabledFallback();
205
206 static COLORREF GetClrToolBarColorHoverFallback();
207 static COLORREF GetClrToolBarColorCheckedFallback();
208 static COLORREF GetClrToolBarColorHoverEdgeFallback();
209 static COLORREF GetClrTabsAreaFallback();
210 static COLORREF GetClrWindowFallback();
211 static COLORREF GetClrBarTextFallback();
212 static COLORREF GetClrBarFaceFallback();
213 static COLORREF GetClrInactiveBorderFallback();
214 static COLORREF GetClrPropertyFaceFallback();
215 static COLORREF GetClrPropertyGroupBackgroundFallback();
216 static COLORREF GetClrActiveBorderFallback();
217 static COLORREF GetClrBtnShadowFallback();
218 static COLORREF GetClrBtnTextFallback();
219 static COLORREF GetClrTextHiliteFallback();
220 static COLORREF GetClrBarDkShadowFallback();
221 static COLORREF GetClrBarHiliteFallback();
222 static COLORREF GetClrBarLightFallback();
223 static COLORREF GetClrBarShadowFallback();
224 static COLORREF GetClrBarWindowFallback();
225 static COLORREF GetClrBtnLightFallback();
226 static COLORREF GetClrCaptionTextFallback();
227 static COLORREF GetClrHotLinkHoveredTextFallback();
228 static COLORREF GetClrHotLinkNormalTextFallback();
229 static COLORREF GetClrHotLinkVisitedTextFallback();
230 static COLORREF GetClrInactiveCaptionFallback();
231 static COLORREF GetClrInactiveCaptionGradientFallback();
232 static COLORREF GetClrInactiveCaptionTextFallback();
233 static COLORREF GetClrMenuTextFallback();
234 static COLORREF GetClrWindowFrameFallback();
235 static COLORREF GetClrWindowTextFallback();
236 static COLORREF GetClrActiveCaptionFallback();
237 static COLORREF GetClrActiveCaptionGradientFallback();
238 static COLORREF GetClrGrayedTextFallback();
239 static COLORREF GetClrHiliteFallback();
240 static COLORREF GetClrBtnFaceFallback();
241 static COLORREF GetClrBtnHiliteFallback();
242 static COLORREF GetClrBtnDkShadowFallback();
243 // MDI Client area background
244 static BOOL OnEraseMDIClientAreaFallback(CDC* pDC, CRect rectClient);
245
246 // BarBackground
247 static void OnFillBarBackgroundFallback(CDC* pDC, CBasePane* pBar, CRect rectClient, CRect rectClip, BOOL bNCArea = FALSE);
248
249 // MiniFrame
250 static COLORREF OnFillMiniFrameCaptionFallback(CDC* pDC, CRect rectCaption, CPaneFrameWnd* pFrameWnd, BOOL bActive);
251 static void OnDrawMiniFrameBorderFallback(CDC* pDC, CPaneFrameWnd* pFrameWnd, CRect rectBorder, CRect rectBorderSize);
252 static COLORREF OnDrawPaneCaptionFallback(CDC* pDC, CDockablePane* pBar, BOOL bActive, CRect rectCaption, CRect rectButtons);
253 static void OnDrawCaptionButtonFallback(CDC* pDC, CMFCCaptionButton* pButton, BOOL bActive, BOOL bHorz, BOOL bMaximized, BOOL bDisabled, int nImageID = -1);
254 static void GetTabFrameColorsFallback(const CMFCBaseTabCtrl* pTabWnd, COLORREF& clrDark, COLORREF& clrBlack, COLORREF& clrHighlight,
255 COLORREF& clrFace, COLORREF& clrDarkShadow, COLORREF& clrLight, CBrush*& pbrFace, CBrush*& pbrBlack);
256 static void OnFillButtonInteriorFallback(CDC* pDC, CMFCToolBarButton* pButton, CRect rect, CMFCVisualManager::AFX_BUTTON_STATE state);
257
258 static void OnDrawExpandingBoxFallback(CDC* pDC, CRect rect, BOOL bOpened, COLORREF colorBox);
259 static void OnFillMenuImageRectFallback(CDC* pDC, CMFCToolBarButton* pButton, CRect rect, CMFCVisualManager::AFX_BUTTON_STATE state);
260 static void OnDrawMenuCheckFallback(CDC* pDC, CMFCToolBarMenuButton* pButton, CRect rect, BOOL bHighlight, BOOL bRadio);
261
262 // Tab
263 static void OnEraseTabsAreaFallback(CDC* pDC, CRect rect, const CMFCBaseTabCtrl* pTabWnd);
264
265 static BOOL IsHighlightWholeMenuItemFallback();
266 static void OnHighlightMenuItemFallback(CDC* pDC, CMFCToolBarMenuButton* pButton, CRect rect, COLORREF& clrText);
267 static bool DrawCustomCheckBoxFallback(CDC* pDC, CRect& rtRect, COLORREF crColor, bool bWithBox = false, COLORREF crFillColor = 0);
268
269 // pane properties
270 static void OnDrawCheckBoxExFallback(CDC* pDC, CRect rect, int nState, BOOL bHighlighted, BOOL bPressed, BOOL bEnabled);
271 static void OnDrawRadioButtonFallback(CDC* pDC, CRect rect, BOOL bOn, BOOL bHighlighted, BOOL bPressed, BOOL bEnabled);
272
273 // Auto-hide buttons:
274 static void OnFillAutoHideButtonBackgroundFallback(CDC* pDC, CRect rect, CMFCAutoHideButton* pButton);
275 static void OnDrawAutoHideButtonBorderFallback(CDC* pDC, CRect rectBounds, CRect rectBorderSize, CMFCAutoHideButton* pButton);
276 static COLORREF GetAutoHideButtonTextColorFallback(CMFCAutoHideButton* pButton);
277
278 // System menu button
279 static void OnDrawMenuSystemButtonFallback(CDC* pDC, CRect rect, UINT uiSystemCommand, UINT nStyle, BOOL bHighlight);
280
281 static void OnDrawSpinButtonsFallback(CDC* pDC, CRect rectSpin, int nState, BOOL bOrientation, CMFCSpinButtonCtrl* pSpinCtrl);
282 static void OnDrawSpinButtonsFallback(CDC* pDC, CRect rectSpinUp, CRect rectSpinDown, int nState, BOOL bOrientation, CMFCSpinButtonCtrl* pSpinCtrl);
283
284private:
285 static CGUIVisualManager* GetObject();
286
287protected:
288 UINT m_nAppTheme;
289
290 // MDI background color
291 BOOL m_bCustomMDIClientAreaClr;
292 COLORREF m_clrMDIClientArea;
293 COLORREF m_clrMDIClientLightArea;
294
295 // Bar background color
296 COLORREF m_clrBarBackgroundDefault;
297
298 // Menu bar background color
299 COLORREF m_clrMenuBarBackground;
300
301 // Pane divider color
302 COLORREF m_clrPaneDivider;
303
304 // Pane base color
305 COLORREF m_clrPaneBase;
306
307 // MiniFrame color
308 COLORREF m_clrMiniFrameBackgroundDefault;
309 COLORREF m_clrMiniFrameBackgroundInactive;
310 COLORREF m_clrMiniFrameBorder;
311
312 // Text color
313 COLORREF m_clrTextDefault;
314 COLORREF m_clrTextHighlighted;
315 COLORREF m_clrTextDisabled;
316
317 // Caption Text color
318 COLORREF m_clrCaptionTextDefault;
319 COLORREF m_clrCaptionTextHighlighted;
320 COLORREF m_clrCaptionTextInactive;
321 COLORREF m_clrCaptionTextDisabled;
322
323
325 // color values of system colors used for CToolBar
326 COLORREF m_clrBtnFace, m_clrBtnShadow, m_clrBtnHilite;
327 COLORREF m_clrBtnText, m_clrWindowFrame;
328 COLORREF m_clrBtnDkShadow, m_clrBtnLight;
329 COLORREF m_clrGrayedText;
330 COLORREF m_clrHilite;
331 COLORREF m_clrTextHilite;
332 COLORREF m_clrHotLinkNormalText;
333 COLORREF m_clrHotLinkHoveredText;
334 COLORREF m_clrHotLinkVisitedText;
335
336 COLORREF m_clrBarWindow;
337 COLORREF m_clrBarFace;
338 COLORREF m_clrBarShadow, m_clrBarHilite;
339 COLORREF m_clrBarDkShadow, m_clrBarLight;
340 COLORREF m_clrBarText;
341
342 COLORREF m_clrWindow;
343 COLORREF m_clrWindowText;
344
345 COLORREF m_clrCaptionText;
346 COLORREF m_clrMenuText;
347 COLORREF m_clrActiveCaption;
348 COLORREF m_clrInactiveCaption;
349 COLORREF m_clrInactiveCaptionText;
352 COLORREF m_clrActiveCaptionGradient;
355 COLORREF m_clrInactiveCaptionGradient;
356
357 COLORREF m_clrActiveBorder;
358 COLORREF m_clrInactiveBorder;
359
360 COLORREF m_clrToolBarColorHover;
361 COLORREF m_clrToolBarColorChecked;
362 COLORREF m_clrToolBarColorHoverEdge;
363
364 COLORREF m_clrTabsArea;
365
366 COLORREF m_clrPropertyFace;
367 COLORREF m_clrPropertyGroupBackground;
368
369
370 // Auto-hide buttons:
371 COLORREF m_clrAutoHideButtonBackground;
372 COLORREF m_clrAutoHideButtonBorder;
373 COLORREF m_clrAutoHideButtonTextColor;
374
375 // System menu button
376 int32_t m_i32SystemMenuButtonNormal;
377 int32_t m_i32SystemMenuButtonHighlighted;
378};
379
380