2#include <afxvisualmanagerwindows7.h>
3class CGUIVisualManager :
public CMFCVisualManagerWindows7
5 DECLARE_DYNCREATE(CGUIVisualManager)
9 virtual ~CGUIVisualManager();
11 virtual void SetAppTheme(UINT nTheme);
12 virtual UINT GetAppTheme();
17 COLORREF GetClrMDIClientArea();
18 void SetClrMDIClientArea(COLORREF val);
19 COLORREF GetClrMDIClientLightArea();
20 void SetClrMDIClientLightArea(COLORREF val);
21 BOOL GetCustomMDIClientAreaClr();
22 void SetCustomMDIClientAreaClr(BOOL val);
25 COLORREF GetClrBarBkDefault()
const;
26 void SetClrBarBkDefault(COLORREF val);
29 COLORREF GetClrMenuBarBackground()
const;
30 void SetClrMenuBarBackground(COLORREF val);
33 COLORREF GetClrPaneDivider()
const;
34 void SetClrPaneDivider(COLORREF val);
37 COLORREF GetClrPaneBase()
const;
38 void SetClrPaneBase(COLORREF val);
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);
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);
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);
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);
73 COLORREF GetClrTabsArea()
const;
74 void SetClrTabsArea(COLORREF clr);
76 COLORREF GetClrWindow()
const;
77 void SetClrWindow(COLORREF clr);
79 COLORREF GetClrWindowText()
const;
80 void SetClrWindowText(COLORREF clr);
82 COLORREF GetClrBarText()
const;
83 void SetClrBarText(COLORREF clr);
85 COLORREF GetClrBarFace()
const;
86 void SetClrBarFace(COLORREF clr);
88 COLORREF GetClrInactiveBorder()
const;
89 void SetClrInactiveBorder(COLORREF clr);
91 COLORREF GetClrActiveBorder()
const;
92 COLORREF GetClrBtnShadow()
const;
93 COLORREF GetClrBtnText()
const;
94 COLORREF GetClrGrayedText()
const;
95 COLORREF GetClrTextHilite()
const;
96 COLORREF GetClrBtnDkShadow()
const;
97 COLORREF GetClrBtnHilite()
const;
98 COLORREF GetClrBtnFace()
const;
99 COLORREF GetClrBarDkShadow()
const;
100 COLORREF GetClrBarHilite()
const;
101 COLORREF GetClrBarLight()
const;
102 COLORREF GetClrBarShadow()
const;
103 COLORREF GetClrBarWindow()
const;
104 COLORREF GetClrBtnLight()
const;
105 COLORREF GetClrCaptionText()
const;
106 COLORREF GetClrHotLinkHoveredText()
const;
107 COLORREF GetClrHotLinkNormalText()
const;
108 COLORREF GetClrHotLinkVisitedText()
const;
109 COLORREF GetClrInactiveCaption()
const;
110 COLORREF GetClrInactiveCaptionGradient()
const;
111 COLORREF GetClrInactiveCaptionText()
const;
112 COLORREF GetClrMenuText()
const;
113 COLORREF GetClrWindowFrame()
const;
114 COLORREF GetClrActiveCaption()
const;
115 COLORREF GetClrActiveCaptionGradient()
const;
116 COLORREF GetClrHilite()
const;
119 virtual BOOL OnEraseMDIClientArea(CDC* pDC, CRect rectClient);
122 virtual void OnFillBarBackground(CDC* pDC, CBasePane* pBar, CRect rectClient, CRect rectClip, BOOL bNCArea = FALSE);
125 virtual COLORREF OnFillMiniFrameCaption(CDC* pDC, CRect rectCaption, CPaneFrameWnd* pFrameWnd, BOOL bActive);
126 virtual void OnDrawMiniFrameBorder(CDC* pDC, CPaneFrameWnd* pFrameWnd, CRect rectBorder, CRect rectBorderSize);
127 virtual COLORREF OnDrawPaneCaption(CDC* pDC, CDockablePane* pBar, BOOL bActive, CRect rectCaption, CRect rectButtons);
128 virtual void OnDrawCaptionButton(CDC* pDC, CMFCCaptionButton* pButton, BOOL bActive, BOOL bHorz, BOOL bMaximized, BOOL bDisabled,
int nImageID = -1);
129 virtual void GetTabFrameColors(
const CMFCBaseTabCtrl* pTabWnd, COLORREF& clrDark, COLORREF& clrBlack, COLORREF& clrHighlight,
130 COLORREF& clrFace, COLORREF& clrDarkShadow, COLORREF& clrLight, CBrush*& pbrFace, CBrush*& pbrBlack);
131 virtual void OnFillButtonInterior(CDC* pDC, CMFCToolBarButton* pButton, CRect rect, CMFCVisualManager::AFX_BUTTON_STATE state);
133 virtual void OnDrawExpandingBox(CDC* pDC, CRect rect, BOOL bOpened, COLORREF colorBox)
override;
134 virtual void OnFillMenuImageRect(CDC* pDC, CMFCToolBarButton* pButton, CRect rect, CMFCVisualManager::AFX_BUTTON_STATE state);
135 virtual void OnDrawMenuCheck(CDC* pDC, CMFCToolBarMenuButton* pButton, CRect rect, BOOL bHighlight, BOOL bRadio);
138 virtual void OnEraseTabsArea(CDC* pDC, CRect rect,
const CMFCBaseTabCtrl* pTabWnd)
override;
140 virtual BOOL IsHighlightWholeMenuItem()
override;
141 virtual void OnHighlightMenuItem(CDC* pDC, CMFCToolBarMenuButton* pButton, CRect rect, COLORREF& clrText)
override;
142 static bool DrawCustomCheckBox(CDC* pDC, CRect& rtRect, COLORREF crColor,
bool bWithBox =
false, COLORREF crFillColor = 0);
145 static void OnDrawCheckBoxEx(CDC* pDC, CRect rect,
int nState, BOOL bHighlighted, BOOL bPressed, BOOL bEnabled);
146 static void OnDrawRadioButton(CDC* pDC, CRect rect, BOOL bOn, BOOL bHighlighted, BOOL bPressed, BOOL bEnabled);
149 virtual void OnFillAutoHideButtonBackground(CDC* pDC, CRect rect, CMFCAutoHideButton* pButton)
override;
150 virtual void OnDrawAutoHideButtonBorder(CDC* pDC, CRect rectBounds, CRect rectBorderSize, CMFCAutoHideButton* pButton)
override;
151 virtual COLORREF GetAutoHideButtonTextColor(CMFCAutoHideButton* pButton)
override;
154 virtual void OnDrawMenuSystemButton(CDC* pDC, CRect rect, UINT uiSystemCommand, UINT nStyle, BOOL bHighlight)
override;
156 virtual void OnDrawSpinButtons(CDC* pDC, CRect rectSpin,
int nState, BOOL bOrientation, CMFCSpinButtonCtrl* pSpinCtrl)
override;
157 virtual void OnDrawSpinButtons(CDC* pDC, CRect rectSpinUp, CRect rectSpinDown,
int nState, BOOL bOrientation, CMFCSpinButtonCtrl* pSpinCtrl);
160 static COLORREF LightenColor(
long lScale, COLORREF lColor);
161 static COLORREF DarkenColor(
long lScale, COLORREF lColor);
165 static void SetAppThemeFallback(UINT nTheme);
166 static UINT GetAppThemeFallback();
169 static COLORREF GetClrMDIClientAreaFallback();
170 static COLORREF GetClrMDIClientLightAreaFallback();
171 static BOOL GetCustomMDIClientAreaClrFallback();
174 static COLORREF GetClrBarBkDefaultFallback();
177 static COLORREF GetClrMenuBarBackgroundFallback();
180 static COLORREF GetClrPaneDividerFallback();
183 static COLORREF GetClrPaneBaseFallback();
186 static COLORREF GetClrMiniFrameBkDefaultFallback();
187 static COLORREF GetClrMiniFrameBkInactiveFallback();
188 static COLORREF GetClrMiniFrameBorderFallback();
191 static COLORREF GetClrTextDefaultFallback();
192 static COLORREF GetClrTextHighlightedFallback();
193 static COLORREF GetClrTextDisabledFallback();
195 static COLORREF GetClrCaptionTextDefaultFallback();
196 static COLORREF GetClrCaptionTextHighlightedFallback();
197 static COLORREF GetClrCaptionTextInactiveFallback();
198 static COLORREF GetClrCaptionTextDisabledFallback();
200 static COLORREF GetClrToolBarColorHoverFallback();
201 static COLORREF GetClrToolBarColorCheckedFallback();
202 static COLORREF GetClrToolBarColorHoverEdgeFallback();
203 static COLORREF GetClrTabsAreaFallback();
204 static COLORREF GetClrWindowFallback();
205 static COLORREF GetClrBarTextFallback();
206 static COLORREF GetClrBarFaceFallback();
207 static COLORREF GetClrInactiveBorderFallback();
208 static COLORREF GetClrActiveBorderFallback();
209 static COLORREF GetClrBtnShadowFallback();
210 static COLORREF GetClrBtnTextFallback();
211 static COLORREF GetClrTextHiliteFallback();
212 static COLORREF GetClrBarDkShadowFallback();
213 static COLORREF GetClrBarHiliteFallback();
214 static COLORREF GetClrBarLightFallback();
215 static COLORREF GetClrBarShadowFallback();
216 static COLORREF GetClrBarWindowFallback();
217 static COLORREF GetClrBtnLightFallback();
218 static COLORREF GetClrCaptionTextFallback();
219 static COLORREF GetClrHotLinkHoveredTextFallback();
220 static COLORREF GetClrHotLinkNormalTextFallback();
221 static COLORREF GetClrHotLinkVisitedTextFallback();
222 static COLORREF GetClrInactiveCaptionFallback();
223 static COLORREF GetClrInactiveCaptionGradientFallback();
224 static COLORREF GetClrInactiveCaptionTextFallback();
225 static COLORREF GetClrMenuTextFallback();
226 static COLORREF GetClrWindowFrameFallback();
227 static COLORREF GetClrWindowTextFallback();
228 static COLORREF GetClrActiveCaptionFallback();
229 static COLORREF GetClrActiveCaptionGradientFallback();
230 static COLORREF GetClrGrayedTextFallback();
231 static COLORREF GetClrHiliteFallback();
232 static COLORREF GetClrBtnFaceFallback();
233 static COLORREF GetClrBtnHiliteFallback();
234 static COLORREF GetClrBtnDkShadowFallback();
236 static BOOL OnEraseMDIClientAreaFallback(CDC* pDC, CRect rectClient);
239 static void OnFillBarBackgroundFallback(CDC* pDC, CBasePane* pBar, CRect rectClient, CRect rectClip, BOOL bNCArea = FALSE);
242 static COLORREF OnFillMiniFrameCaptionFallback(CDC* pDC, CRect rectCaption, CPaneFrameWnd* pFrameWnd, BOOL bActive);
243 static void OnDrawMiniFrameBorderFallback(CDC* pDC, CPaneFrameWnd* pFrameWnd, CRect rectBorder, CRect rectBorderSize);
244 static COLORREF OnDrawPaneCaptionFallback(CDC* pDC, CDockablePane* pBar, BOOL bActive, CRect rectCaption, CRect rectButtons);
245 static void OnDrawCaptionButtonFallback(CDC* pDC, CMFCCaptionButton* pButton, BOOL bActive, BOOL bHorz, BOOL bMaximized, BOOL bDisabled,
int nImageID = -1);
246 static void GetTabFrameColorsFallback(
const CMFCBaseTabCtrl* pTabWnd, COLORREF& clrDark, COLORREF& clrBlack, COLORREF& clrHighlight,
247 COLORREF& clrFace, COLORREF& clrDarkShadow, COLORREF& clrLight, CBrush*& pbrFace, CBrush*& pbrBlack);
248 static void OnFillButtonInteriorFallback(CDC* pDC, CMFCToolBarButton* pButton, CRect rect, CMFCVisualManager::AFX_BUTTON_STATE state);
250 static void OnDrawExpandingBoxFallback(CDC* pDC, CRect rect, BOOL bOpened, COLORREF colorBox);
251 static void OnFillMenuImageRectFallback(CDC* pDC, CMFCToolBarButton* pButton, CRect rect, CMFCVisualManager::AFX_BUTTON_STATE state);
252 static void OnDrawMenuCheckFallback(CDC* pDC, CMFCToolBarMenuButton* pButton, CRect rect, BOOL bHighlight, BOOL bRadio);
255 static void OnEraseTabsAreaFallback(CDC* pDC, CRect rect,
const CMFCBaseTabCtrl* pTabWnd);
257 static BOOL IsHighlightWholeMenuItemFallback();
258 static void OnHighlightMenuItemFallback(CDC* pDC, CMFCToolBarMenuButton* pButton, CRect rect, COLORREF& clrText);
259 static bool DrawCustomCheckBoxFallback(CDC* pDC, CRect& rtRect, COLORREF crColor,
bool bWithBox =
false, COLORREF crFillColor = 0);
262 static void OnDrawCheckBoxExFallback(CDC* pDC, CRect rect,
int nState, BOOL bHighlighted, BOOL bPressed, BOOL bEnabled);
263 static void OnDrawRadioButtonFallback(CDC* pDC, CRect rect, BOOL bOn, BOOL bHighlighted, BOOL bPressed, BOOL bEnabled);
266 static void OnFillAutoHideButtonBackgroundFallback(CDC* pDC, CRect rect, CMFCAutoHideButton* pButton);
267 static void OnDrawAutoHideButtonBorderFallback(CDC* pDC, CRect rectBounds, CRect rectBorderSize, CMFCAutoHideButton* pButton);
268 static COLORREF GetAutoHideButtonTextColorFallback(CMFCAutoHideButton* pButton);
271 static void OnDrawMenuSystemButtonFallback(CDC* pDC, CRect rect, UINT uiSystemCommand, UINT nStyle, BOOL bHighlight);
273 static void OnDrawSpinButtonsFallback(CDC* pDC, CRect rectSpin,
int nState, BOOL bOrientation, CMFCSpinButtonCtrl* pSpinCtrl);
274 static void OnDrawSpinButtonsFallback(CDC* pDC, CRect rectSpinUp, CRect rectSpinDown,
int nState, BOOL bOrientation, CMFCSpinButtonCtrl* pSpinCtrl);
277 static CGUIVisualManager* GetObject();
283 BOOL m_bCustomMDIClientAreaClr;
284 COLORREF m_clrMDIClientArea;
285 COLORREF m_clrMDIClientLightArea;
288 COLORREF m_clrBarBackgroundDefault;
291 COLORREF m_clrMenuBarBackground;
294 COLORREF m_clrPaneDivider;
297 COLORREF m_clrPaneBase;
300 COLORREF m_clrMiniFrameBackgroundDefault;
301 COLORREF m_clrMiniFrameBackgroundInactive;
302 COLORREF m_clrMiniFrameBorder;
305 COLORREF m_clrTextDefault;
306 COLORREF m_clrTextHighlighted;
307 COLORREF m_clrTextDisabled;
310 COLORREF m_clrCaptionTextDefault;
311 COLORREF m_clrCaptionTextHighlighted;
312 COLORREF m_clrCaptionTextInactive;
313 COLORREF m_clrCaptionTextDisabled;
318 COLORREF m_clrBtnFace, m_clrBtnShadow, m_clrBtnHilite;
319 COLORREF m_clrBtnText, m_clrWindowFrame;
320 COLORREF m_clrBtnDkShadow, m_clrBtnLight;
321 COLORREF m_clrGrayedText;
322 COLORREF m_clrHilite;
323 COLORREF m_clrTextHilite;
324 COLORREF m_clrHotLinkNormalText;
325 COLORREF m_clrHotLinkHoveredText;
326 COLORREF m_clrHotLinkVisitedText;
328 COLORREF m_clrBarWindow;
329 COLORREF m_clrBarFace;
330 COLORREF m_clrBarShadow, m_clrBarHilite;
331 COLORREF m_clrBarDkShadow, m_clrBarLight;
332 COLORREF m_clrBarText;
334 COLORREF m_clrWindow;
335 COLORREF m_clrWindowText;
337 COLORREF m_clrCaptionText;
338 COLORREF m_clrMenuText;
339 COLORREF m_clrActiveCaption;
340 COLORREF m_clrInactiveCaption;
341 COLORREF m_clrInactiveCaptionText;
344 COLORREF m_clrActiveCaptionGradient;
347 COLORREF m_clrInactiveCaptionGradient;
349 COLORREF m_clrActiveBorder;
350 COLORREF m_clrInactiveBorder;
352 COLORREF m_clrToolBarColorHover;
353 COLORREF m_clrToolBarColorChecked;
354 COLORREF m_clrToolBarColorHoverEdge;
356 COLORREF m_clrTabsArea;
360 COLORREF m_clrAutoHideButtonBackground;
361 COLORREF m_clrAutoHideButtonBorder;
362 COLORREF m_clrAutoHideButtonTextColor;
365 int32_t m_i32SystemMenuButtonNormal;
366 int32_t m_i32SystemMenuButtonHighlighted;
369 static COLORREF m_clrFallbackBarFace;
370 static COLORREF m_clrFallbackBarDkShadow;
371 static COLORREF m_clrFallbackBarHilite;
372 static COLORREF m_clrFallbackBarLight;
373 static COLORREF m_clrFallbackBarShadow;
374 static COLORREF m_clrFallbackBarWindow;
375 static COLORREF m_clrFallbackBtnLight;
376 static COLORREF m_clrFallbackCaptionText;
377 static COLORREF m_clrFallbackHotLinkHoveredText;
378 static COLORREF m_clrFallbackHotLinkNormalText;
379 static COLORREF m_clrFallbackHotLinkVisitedText;
380 static COLORREF m_clrFallbackInactiveCaption;
381 static COLORREF m_clrFallbackInactiveCaptionGradient;
382 static COLORREF m_clrFallbackInactiveCaptionText;
383 static COLORREF m_clrFallbackMenuText;
384 static COLORREF m_clrFallbackWindow;
385 static COLORREF m_clrFallbackWindowFrame;
386 static COLORREF m_clrFallbackWindowText;
387 static COLORREF m_clrFallbackActiveCaption;
388 static COLORREF m_clrFallbackActiveCaptionGradient;
389 static COLORREF m_clrFallbackGrayedText;
390 static COLORREF m_clrFallbackHilite;
391 static COLORREF m_clrFallbackBtnFace;
392 static COLORREF m_clrFallbackBtnHilite;
393 static COLORREF m_clrFallbackBtnDkShadow;
394 static COLORREF m_clrFallbackInactiveBorder;
395 static COLORREF m_clrFallbackActiveBorder;
396 static COLORREF m_clrFallbackBtnShadow;
397 static COLORREF m_clrFallbackBtnText;
398 static COLORREF m_clrFallbackTextHilite;
399 static COLORREF m_clrFallbackBarText;
400 static COLORREF m_clrFallbackBarBkDefault;
401 static COLORREF m_clrFallbackMenuBarBackground;
402 static COLORREF m_clrFallbackPaneDivider;
403 static COLORREF m_clrFallbackPaneBase;
404 static COLORREF m_clrFallbackMiniFrameBkDefault;
405 static COLORREF m_clrFallbackMiniFrameBkInactive;
406 static COLORREF m_clrFallbackMiniFrameBorder;
407 static COLORREF m_clrFallbackTextDefault;
408 static COLORREF m_clrFallbackTextHighlighted;
409 static COLORREF m_clrFallbackTextDisabled;
410 static COLORREF m_clrFallbackCaptionTextDefault;
411 static COLORREF m_clrFallbackCaptionTextHighlighted;
412 static COLORREF m_clrFallbackCaptionTextInactive;
413 static COLORREF m_clrFallbackCaptionTextDisabled;
414 static COLORREF m_clrFallbackToolBarColorHover;
415 static COLORREF m_clrFallbackToolBarColorChecked;
416 static COLORREF m_clrFallbackToolBarColorHoverEdge;
417 static COLORREF m_clrFallbackTabsArea;