ReactOS 0.4.16-dev-725-g22577ae
CTrayShowDesktopButton Class Reference

#include <traydeskbtn.h>

Inheritance diagram for CTrayShowDesktopButton:
Collaboration diagram for CTrayShowDesktopButton:

Public Member Functions

 CTrayShowDesktopButton ()
 
INT WidthOrHeight () const
 
HRESULT DoCreate (HWND hwndParent)
 
VOID Click ()
 
BOOL PtInButton (LPPOINT pt) const
 
VOID StartHovering ()
 
LRESULT OnLButtonUp (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnLButtonDown (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 

Public Attributes

BOOL m_bPressed
 
BOOL m_bHorizontal
 

Private Member Functions

VOID OnDraw (HDC hdc, LPRECT prc)
 
LRESULT OnClick (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSettingChanged (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnThemeChanged (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnWindowPosChanged (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
VOID EnsureWindowTheme (BOOL setTheme)
 
LRESULT OnPaint (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnPrintClient (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnMouseMove (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnTimer (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnDestroy (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 

Private Attributes

LONG m_nClickedTime
 
HTHEME m_hTheme
 
HTHEME m_hFallbackTheme
 
MARGINS m_ContentMargins
 
SIZE m_inset
 
HICON m_icon
 
SIZE m_szIcon
 
BOOL m_highContrastMode
 
BOOL m_drawWithDedicatedBackground
 
BOOL m_bHovering
 
HWND m_hWndTaskbar
 
CTooltips m_tooltip
 

Detailed Description

Definition at line 17 of file traydeskbtn.h.

Constructor & Destructor Documentation

◆ CTrayShowDesktopButton()

CTrayShowDesktopButton::CTrayShowDesktopButton ( )

Member Function Documentation

◆ Click()

VOID CTrayShowDesktopButton::Click ( )

Definition at line 119 of file traydeskbtn.cpp.

120{
121 // The actual action can be delayed as an expected behaviour.
123 PostMessage(TSDB_CLICK, 0, 0);
124}
#define TSDB_CLICK
Definition: traydeskbtn.h:14
LONG WINAPI GetMessageTime(void)
Definition: message.c:1361
#define PostMessage
Definition: winuser.h:5844

Referenced by OnLButtonUp(), and CTrayWindow::OnNcLButtonUp().

◆ DoCreate()

HRESULT CTrayShowDesktopButton::DoCreate ( HWND  hwndParent)

Definition at line 62 of file traydeskbtn.cpp.

63{
66
67 if (!m_hWnd)
68 return E_FAIL;
69
70 // Get desktop icon
71 bool bIconRetrievalFailed = ExtractIconExW(L"imageres.dll", -IDI_IMAGERES_DESKTOP, NULL, &m_icon, 1) == UINT_MAX;
72 if (bIconRetrievalFailed || !m_icon)
73 ExtractIconExW(L"shell32.dll", -IDI_SHELL32_DESKTOP, NULL, &m_icon, 1);
74
75 // Get appropriate size at which to display desktop icon
78
79 // Create tooltip
81
82 TOOLINFOW ti = { 0 };
83 ti.cbSize = TTTOOLINFOW_V1_SIZE;
84 ti.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
85 ti.hwnd = m_hWnd;
86 ti.uId = reinterpret_cast<UINT_PTR>(m_hWnd);
87 ti.hinst = hExplorerInstance;
89
90 m_tooltip.AddTool(&ti);
91
92 // Prep visual style
94
95 // Get HWND of Taskbar
98 return E_FAIL;
99
100 return S_OK;
101}
Arabic default style
Definition: afstyles.h:94
@ Create
Definition: registry.c:563
HINSTANCE hExplorerInstance
Definition: explorer.cpp:24
#define IDS_TRAYDESKBTN_TOOLTIP
Definition: resource.h:108
BOOL AddTool(IN CONST TTTOOLINFOW *pInfo)
Definition: rosctrls.h:637
HWND Create(HWND hWndParent, DWORD dwStyles=WS_POPUP|TTS_NOPREFIX, DWORD dwExStyles=WS_EX_TOPMOST)
Definition: rosctrls.h:616
VOID EnsureWindowTheme(BOOL setTheme)
static HWND hwndParent
Definition: cryptui.c:300
#define E_FAIL
Definition: ddrawi.h:102
#define TRUE
Definition: types.h:120
unsigned long DWORD
Definition: ntddk_ex.h:95
UINT WINAPI ExtractIconExW(LPCWSTR lpszFile, INT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons)
Definition: iconcache.cpp:855
#define S_OK
Definition: intsafe.h:52
#define UINT_MAX
Definition: intsafe.h:152
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
#define L(x)
Definition: ntvdm.h:50
#define WS_CHILD
Definition: pedump.c:617
#define WS_POPUP
Definition: pedump.c:616
#define WS_VISIBLE
Definition: pedump.c:620
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
#define BS_DEFPUSHBUTTON
Definition: pedump.c:652
#define TOOLINFOW
Definition: commctrl.h:1715
#define TTTOOLINFOW_V1_SIZE
Definition: commctrl.h:1721
#define TTF_IDISHWND
Definition: commctrl.h:1764
#define TTF_SUBCLASS
Definition: commctrl.h:1767
#define TTS_ALWAYSTIP
Definition: commctrl.h:1757
#define TTS_NOPREFIX
Definition: commctrl.h:1758
LONG cx
Definition: kdterminal.h:27
LONG cy
Definition: kdterminal.h:28
#define IDI_SHELL32_DESKTOP
Definition: traydeskbtn.cpp:14
#define IDI_IMAGERES_DESKTOP
Definition: traydeskbtn.cpp:15
BOOL WINAPI IsWindow(_In_opt_ HWND)
#define SM_CYSMICON
Definition: winuser.h:1016
#define SM_CXSMICON
Definition: winuser.h:1015
HWND WINAPI GetParent(_In_ HWND)
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
int WINAPI GetSystemMetrics(_In_ int)

Referenced by CTrayNotifyWnd::OnCreate().

◆ EnsureWindowTheme()

VOID CTrayShowDesktopButton::EnsureWindowTheme ( BOOL  setTheme)
private

Definition at line 184 of file traydeskbtn.cpp.

185{
186 if (setTheme)
187 SetWindowTheme(m_hWnd, m_bHorizontal ? L"ShowDesktop" : L"VerticalShowDesktop", NULL);
188
190 {
193 }
194 else
195 {
197 }
198
199 MARGINS contentMargins;
200 if (GetThemeMargins(GetWindowTheme(GetParent().m_hWnd), NULL, TNP_BACKGROUND, 0, TMT_CONTENTMARGINS, NULL, &contentMargins) == S_OK)
201 {
202 m_inset.cx = max(0, contentMargins.cxRightWidth - 5);
203 m_inset.cy = max(0, contentMargins.cyBottomHeight - 5);
204 }
205 else
206 {
207 m_inset.cx = 2;
208 m_inset.cy = 2;
209 }
210
212 if (IsThemeActive())
213 {
214 m_hTheme = OpenThemeData(m_hWnd, L"Button");
215 if (m_hTheme != NULL)
217 }
218}
HRESULT WINAPI GetThemeMargins(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, int iPropId, RECT *prc, MARGINS *pMargins)
Definition: property.c:216
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
Definition: system.c:850
BOOL WINAPI IsThemePartDefined(HTHEME hTheme, int iPartId, int iStateId)
Definition: system.c:1002
HTHEME WINAPI GetWindowTheme(HWND hwnd)
Definition: system.c:866
BOOL WINAPI IsThemeActive(void)
Definition: system.c:621
Definition: misc.c:279
int cyBottomHeight
Definition: misc.c:283
int cxRightWidth
Definition: misc.c:281
#define max(a, b)
Definition: svc.c:63
HRESULT WINAPI SetWindowTheme(_In_ HWND hwnd, _In_ LPCWSTR pszSubAppName, _In_ LPCWSTR pszSubIdList)
Definition: uxthemesupp.c:69
@ TP_BUTTON
Definition: vsstyle.h:1394
@ BP_PUSHBUTTON
Definition: vsstyle.h:74
#define TMT_CONTENTMARGINS
Definition: vssym32.h:324
@ TNP_BACKGROUND
Definition: vssym32.h:543

Referenced by DoCreate(), OnSettingChanged(), OnThemeChanged(), and OnWindowPosChanged().

◆ OnClick()

LRESULT CTrayShowDesktopButton::OnClick ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)
private

Definition at line 103 of file traydeskbtn.cpp.

104{
105 // The actual action can be delayed as an expected behaviour.
106 // But a too late action is an unexpected behaviour.
107 LONG nTime0 = m_nClickedTime;
108 LONG nTime1 = ::GetMessageTime();
109 if (nTime1 - nTime0 >= 600) // Ignore after 0.6 sec
110 return 0;
111
112 // Show/Hide Desktop
114
115 return 0;
116}
long LONG
Definition: pedump.c:60
#define TRAYCMD_TOGGLE_DESKTOP
Definition: undocshell.h:907
#define WM_COMMAND
Definition: winuser.h:1743
#define SendMessage
Definition: winuser.h:5855

◆ OnDestroy()

LRESULT CTrayShowDesktopButton::OnDestroy ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)
private

Definition at line 300 of file traydeskbtn.cpp.

301{
302 if (m_hTheme)
303 {
305 m_hTheme = NULL;
306 }
308 {
311 }
312
313 return 0;
314}
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
Definition: system.c:965

◆ OnDraw()

VOID CTrayShowDesktopButton::OnDraw ( HDC  hdc,
LPRECT  prc 
)
private

Definition at line 316 of file traydeskbtn.cpp.

317{
318 RECT rc = { prc->left, prc->top, prc->right, prc->bottom };
319 LPRECT lpRc = &rc;
320 HBRUSH hbrBackground = NULL;
321
322 if (m_hTheme)
323 {
324 HTHEME theme;
325 int part = 0;
326 int state = 0;
328 {
329 theme = m_hTheme;
330
331 if (m_bPressed)
333 else if (m_bHovering)
334 state = PBS_HOT;
335 else
337 }
338 else
339 {
340 part = TP_BUTTON;
341 theme = m_hFallbackTheme;
342
343 if (m_bPressed)
345 else if (m_bHovering)
346 state = TS_HOT;
347 else
349
350 if (m_bHorizontal)
351 rc.right -= m_inset.cx;
352 else
353 rc.bottom -= m_inset.cy;
354 }
355
358
359 ::DrawThemeBackground(theme, hdc, part, state, lpRc, lpRc);
360 }
361 else
362 {
365
366 if (m_bPressed || m_bHovering)
367 {
369 DrawEdge(hdc, lpRc, edge, BF_RECT);
370 }
371 }
372
374 {
375 /* Prepare to draw icon */
376
377 // Determine X-position of icon's top-left corner
378 int iconX = rc.left;
379 iconX += (rc.right - iconX) / 2;
380 iconX -= m_szIcon.cx / 2;
381
382 // Determine Y-position of icon's top-left corner
383 int iconY = rc.top;
384 iconY += (rc.bottom - iconY) / 2;
385 iconY -= m_szIcon.cy / 2;
386
387 // Ok now actually draw the icon itself
388 if (m_icon)
389 {
390 DrawIconEx(hdc, iconX, iconY,
391 m_icon, 0, 0,
393 }
394 }
395}
static int state
Definition: maze.c:121
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
Definition: draw.c:128
BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME hTheme, int iPartId, int iStateId)
Definition: draw.c:1927
HRESULT WINAPI DrawThemeParentBackground(HWND hwnd, HDC hdc, RECT *prc)
Definition: draw.c:72
HBRUSH hbrBackground
Definition: enumwnd.c:12
HDC hdc
Definition: main.c:9
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
unsigned int UINT
Definition: ndis.h:50
_Out_ LPRECT prc
Definition: ntgdi.h:1658
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
@ PBS_PRESSED
Definition: vsstyle.h:88
@ PBS_NORMAL
Definition: vsstyle.h:86
@ PBS_HOT
Definition: vsstyle.h:87
@ TS_PRESSED
Definition: vsstyle.h:1407
@ TS_NORMAL
Definition: vsstyle.h:1405
@ TS_HOT
Definition: vsstyle.h:1406
#define DI_NORMAL
Definition: wingdi.h:72
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
#define BDR_SUNKENOUTER
Definition: winuser.h:443
HBRUSH WINAPI GetSysColorBrush(_In_ int)
BOOL WINAPI DrawEdge(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
BOOL WINAPI DrawIconEx(_In_ HDC, _In_ int, _In_ int, _In_ HICON, _In_ int, _In_ int, _In_ UINT, _In_opt_ HBRUSH, _In_ UINT)
Definition: cursoricon.c:2114
#define BDR_RAISEDINNER
Definition: winuser.h:444
#define BF_RECT
Definition: winuser.h:462
#define COLOR_3DFACE
Definition: winuser.h:932

Referenced by OnPaint(), and OnPrintClient().

◆ OnLButtonDown()

LRESULT CTrayShowDesktopButton::OnLButtonDown ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 139 of file traydeskbtn.cpp.

140{
142 SetCapture();
143 Invalidate(TRUE);
144 return 0;
145}
HWND WINAPI SetCapture(_In_ HWND hWnd)

Referenced by CTrayWindow::OnNcLButtonDown().

◆ OnLButtonUp()

LRESULT CTrayShowDesktopButton::OnLButtonUp ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 126 of file traydeskbtn.cpp.

127{
130 Invalidate(TRUE);
131
132 POINT pt;
134 if (PtInButton(&pt))
135 Click(); // Left-click
136 return 0;
137}
BOOL PtInButton(LPPOINT pt) const
#define pt(x, y)
Definition: drawing.c:79
BOOL WINAPI ReleaseCapture(void)
Definition: message.c:2890
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
Definition: cursoricon.c:2756

Referenced by CTrayWindow::OnLButtonUp(), and CTrayWindow::OnNcLButtonUp().

◆ OnMouseMove()

LRESULT CTrayShowDesktopButton::OnMouseMove ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)
private

Definition at line 275 of file traydeskbtn.cpp.

276{
278 return 0;
279}

◆ OnPaint()

LRESULT CTrayShowDesktopButton::OnPaint ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)
private

Definition at line 220 of file traydeskbtn.cpp.

221{
222 RECT rc;
223 GetClientRect(&rc);
224
225 PAINTSTRUCT ps;
226 HDC hdc = BeginPaint(&ps);
227 OnDraw(hdc, &rc);
228 EndPaint(&ps);
229
230 return 0;
231}
VOID OnDraw(HDC hdc, LPRECT prc)
static HDC
Definition: imagelist.c:88
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)

◆ OnPrintClient()

LRESULT CTrayShowDesktopButton::OnPrintClient ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)
private

Definition at line 233 of file traydeskbtn.cpp.

234{
236 return 0;
237
238 RECT rc;
239 GetClientRect(&rc);
240
241 HDC hdc = (HDC)wParam;
242 OnDraw(hdc, &rc);
243
244 return 0;
245}
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define PRF_CHECKVISIBLE
Definition: winuser.h:2526
BOOL WINAPI IsWindowVisible(_In_ HWND)

◆ OnSettingChanged()

LRESULT CTrayShowDesktopButton::OnSettingChanged ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)
private

Definition at line 147 of file traydeskbtn.cpp.

148{
149 LRESULT ret = OnThemeChanged(uMsg, wParam, lParam, bHandled);
151 return ret;
152}
LRESULT OnThemeChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
int ret
LONG_PTR LRESULT
Definition: windef.h:209

◆ OnThemeChanged()

LRESULT CTrayShowDesktopButton::OnThemeChanged ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)
private

Definition at line 154 of file traydeskbtn.cpp.

155{
156 HIGHCONTRAST hcInfo;
157 hcInfo.cbSize = sizeof(hcInfo);
158 if (SystemParametersInfo(SPI_GETHIGHCONTRAST, sizeof(hcInfo), &hcInfo, FALSE))
160
161 if (m_hTheme)
162 {
164 m_hTheme = NULL;
165 }
167 {
170 }
171
173
174 Invalidate(TRUE);
175 return 0;
176}
#define HCF_HIGHCONTRASTON
Definition: winuser.h:2137
#define SystemParametersInfo
Definition: winuser.h:5870

Referenced by OnSettingChanged().

◆ OnTimer()

LRESULT CTrayShowDesktopButton::OnTimer ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)
private

Definition at line 281 of file traydeskbtn.cpp.

282{
284 return 0;
285
286 POINT pt;
288 if (!PtInButton(&pt)) // The end of hovering?
289 {
292 Invalidate(TRUE);
293
295 }
296
297 return 0;
298}
#define SHOW_DESKTOP_TIMER_ID
Definition: traydeskbtn.cpp:17
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
#define WM_NCPAINT
Definition: winuser.h:1690

◆ OnWindowPosChanged()

LRESULT CTrayShowDesktopButton::OnWindowPosChanged ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)
private

Definition at line 178 of file traydeskbtn.cpp.

179{
181 return 0;
182}

◆ PtInButton()

BOOL CTrayShowDesktopButton::PtInButton ( LPPOINT  pt) const

Definition at line 247 of file traydeskbtn.cpp.

248{
249 if (!ppt || !IsWindow())
250 return FALSE;
251
252 RECT rc;
253 GetWindowRect(&rc);
255 ::InflateRect(&rc, max(cxEdge, 1), max(cyEdge, 1));
256
257 return m_bHorizontal
258 ? (ppt->x > rc.left)
259 : (ppt->y > rc.top);
260}
int32_t INT
Definition: typedefs.h:58
#define SM_CYEDGE
Definition: winuser.h:1012
#define SM_CXEDGE
Definition: winuser.h:1011
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)

Referenced by OnLButtonUp(), CTrayNotifyWnd::OnMouseMove(), CTrayNotifyWnd::OnNcHitTest(), CTrayWindow::OnNcHitTest(), CTrayWindow::OnNcLButtonDown(), and OnTimer().

◆ StartHovering()

VOID CTrayShowDesktopButton::StartHovering ( )

Definition at line 262 of file traydeskbtn.cpp.

263{
264 if (m_bHovering)
265 return;
266
268 Invalidate(TRUE);
269
271
273}
#define SHOW_DESKTOP_TIMER_INTERVAL
Definition: traydeskbtn.cpp:18
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)

Referenced by OnMouseMove(), and CTrayNotifyWnd::OnMouseMove().

◆ WidthOrHeight()

INT CTrayShowDesktopButton::WidthOrHeight ( ) const

Definition at line 33 of file traydeskbtn.cpp.

34{
36 {
38 {
39 if (GetSystemMetrics(SM_TABLETPC))
40 {
41 //TODO: DPI scaling - return logical-to-physical conversion of 24, not fixed value
42 return 24;
43 }
44 else
45 return 15;
46 }
47 else
48 {
49 INT CurMargin = m_bHorizontal
52 return max(16 + CurMargin, 18) + 6;
53 }
54 }
55 else
56 {
59 }
60}
int cyTopHeight
Definition: misc.c:282
int cxLeftWidth
Definition: misc.c:280
#define SM_CYBORDER
Definition: winuser.h:968
#define SM_CXBORDER
Definition: winuser.h:967

Referenced by CTrayNotifyWnd::AlignControls(), and CTrayNotifyWnd::GetMinimumSize().

Member Data Documentation

◆ m_bHorizontal

BOOL CTrayShowDesktopButton::m_bHorizontal

◆ m_bHovering

BOOL CTrayShowDesktopButton::m_bHovering
private

Definition at line 29 of file traydeskbtn.h.

Referenced by OnDraw(), OnTimer(), and StartHovering().

◆ m_bPressed

BOOL CTrayShowDesktopButton::m_bPressed

Definition at line 34 of file traydeskbtn.h.

Referenced by OnDraw(), OnLButtonDown(), OnLButtonUp(), and CTrayWindow::OnNcLButtonUp().

◆ m_ContentMargins

MARGINS CTrayShowDesktopButton::m_ContentMargins
private

Definition at line 23 of file traydeskbtn.h.

Referenced by EnsureWindowTheme(), and WidthOrHeight().

◆ m_drawWithDedicatedBackground

BOOL CTrayShowDesktopButton::m_drawWithDedicatedBackground
private

Definition at line 28 of file traydeskbtn.h.

Referenced by EnsureWindowTheme(), OnDraw(), and WidthOrHeight().

◆ m_hFallbackTheme

HTHEME CTrayShowDesktopButton::m_hFallbackTheme
private

Definition at line 22 of file traydeskbtn.h.

Referenced by EnsureWindowTheme(), OnDestroy(), OnDraw(), and OnThemeChanged().

◆ m_highContrastMode

BOOL CTrayShowDesktopButton::m_highContrastMode
private

Definition at line 27 of file traydeskbtn.h.

Referenced by OnDraw(), OnThemeChanged(), and WidthOrHeight().

◆ m_hTheme

HTHEME CTrayShowDesktopButton::m_hTheme
private

Definition at line 21 of file traydeskbtn.h.

Referenced by EnsureWindowTheme(), OnDestroy(), OnDraw(), and OnThemeChanged().

◆ m_hWndTaskbar

HWND CTrayShowDesktopButton::m_hWndTaskbar
private

Definition at line 30 of file traydeskbtn.h.

Referenced by DoCreate(), EnsureWindowTheme(), OnClick(), OnTimer(), and StartHovering().

◆ m_icon

HICON CTrayShowDesktopButton::m_icon
private

Definition at line 25 of file traydeskbtn.h.

Referenced by DoCreate(), and OnDraw().

◆ m_inset

SIZE CTrayShowDesktopButton::m_inset
private

Definition at line 24 of file traydeskbtn.h.

Referenced by EnsureWindowTheme(), and OnDraw().

◆ m_nClickedTime

LONG CTrayShowDesktopButton::m_nClickedTime
private

Definition at line 20 of file traydeskbtn.h.

Referenced by Click(), and OnClick().

◆ m_szIcon

SIZE CTrayShowDesktopButton::m_szIcon
private

Definition at line 26 of file traydeskbtn.h.

Referenced by DoCreate(), and OnDraw().

◆ m_tooltip

CTooltips CTrayShowDesktopButton::m_tooltip
private

Definition at line 31 of file traydeskbtn.h.

Referenced by DoCreate().


The documentation for this class was generated from the following files: