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 GetClrPropertyFace()
const;
92 void SetClrPropertyFace(COLORREF clr);
94 COLORREF GetClrPropertyGroupBackground()
const;
95 void SetClrPropertyGroupBackground(COLORREF clr);
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;
125 virtual BOOL OnEraseMDIClientArea(CDC* pDC, CRect rectClient);
128 virtual void OnFillBarBackground(CDC* pDC, CBasePane* pBar, CRect rectClient, CRect rectClip, BOOL bNCArea = FALSE);
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);
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);
144 virtual void OnEraseTabsArea(CDC* pDC, CRect rect,
const CMFCBaseTabCtrl* pTabWnd)
override;
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);
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);
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;
160 virtual void OnDrawMenuSystemButton(CDC* pDC, CRect rect, UINT uiSystemCommand, UINT nStyle, BOOL bHighlight)
override;
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);
166 static COLORREF LightenColor(
long lScale, COLORREF lColor);
167 static COLORREF DarkenColor(
long lScale, COLORREF lColor);
171 static void SetAppThemeFallback(UINT nTheme);
172 static UINT GetAppThemeFallback();
175 static COLORREF GetClrMDIClientAreaFallback();
176 static COLORREF GetClrMDIClientLightAreaFallback();
177 static BOOL GetCustomMDIClientAreaClrFallback();
180 static COLORREF GetClrBarBkDefaultFallback();
183 static COLORREF GetClrMenuBarBackgroundFallback();
186 static COLORREF GetClrPaneDividerFallback();
189 static COLORREF GetClrPaneBaseFallback();
192 static COLORREF GetClrMiniFrameBkDefaultFallback();
193 static COLORREF GetClrMiniFrameBkInactiveFallback();
194 static COLORREF GetClrMiniFrameBorderFallback();
197 static COLORREF GetClrTextDefaultFallback();
198 static COLORREF GetClrTextHighlightedFallback();
199 static COLORREF GetClrTextDisabledFallback();
201 static COLORREF GetClrCaptionTextDefaultFallback();
202 static COLORREF GetClrCaptionTextHighlightedFallback();
203 static COLORREF GetClrCaptionTextInactiveFallback();
204 static COLORREF GetClrCaptionTextDisabledFallback();
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();
244 static BOOL OnEraseMDIClientAreaFallback(CDC* pDC, CRect rectClient);
247 static void OnFillBarBackgroundFallback(CDC* pDC, CBasePane* pBar, CRect rectClient, CRect rectClip, BOOL bNCArea = FALSE);
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);
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);
263 static void OnEraseTabsAreaFallback(CDC* pDC, CRect rect,
const CMFCBaseTabCtrl* pTabWnd);
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);
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);
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);
279 static void OnDrawMenuSystemButtonFallback(CDC* pDC, CRect rect, UINT uiSystemCommand, UINT nStyle, BOOL bHighlight);
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);
285 static CGUIVisualManager* GetObject();
291 BOOL m_bCustomMDIClientAreaClr;
292 COLORREF m_clrMDIClientArea;
293 COLORREF m_clrMDIClientLightArea;
296 COLORREF m_clrBarBackgroundDefault;
299 COLORREF m_clrMenuBarBackground;
302 COLORREF m_clrPaneDivider;
305 COLORREF m_clrPaneBase;
308 COLORREF m_clrMiniFrameBackgroundDefault;
309 COLORREF m_clrMiniFrameBackgroundInactive;
310 COLORREF m_clrMiniFrameBorder;
313 COLORREF m_clrTextDefault;
314 COLORREF m_clrTextHighlighted;
315 COLORREF m_clrTextDisabled;
318 COLORREF m_clrCaptionTextDefault;
319 COLORREF m_clrCaptionTextHighlighted;
320 COLORREF m_clrCaptionTextInactive;
321 COLORREF m_clrCaptionTextDisabled;
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;
336 COLORREF m_clrBarWindow;
337 COLORREF m_clrBarFace;
338 COLORREF m_clrBarShadow, m_clrBarHilite;
339 COLORREF m_clrBarDkShadow, m_clrBarLight;
340 COLORREF m_clrBarText;
342 COLORREF m_clrWindow;
343 COLORREF m_clrWindowText;
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;
357 COLORREF m_clrActiveBorder;
358 COLORREF m_clrInactiveBorder;
360 COLORREF m_clrToolBarColorHover;
361 COLORREF m_clrToolBarColorChecked;
362 COLORREF m_clrToolBarColorHoverEdge;
364 COLORREF m_clrTabsArea;
366 COLORREF m_clrPropertyFace;
367 COLORREF m_clrPropertyGroupBackground;
371 COLORREF m_clrAutoHideButtonBackground;
372 COLORREF m_clrAutoHideButtonBorder;
373 COLORREF m_clrAutoHideButtonTextColor;
376 int32_t m_i32SystemMenuButtonNormal;
377 int32_t m_i32SystemMenuButtonHighlighted;