annotate foosdk/sdk/libPPUI/DarkMode-CHyperLink.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 #include <atlctrlx.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 #include "DarkMode.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 namespace DarkMode {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 static constexpr COLORREF colorHyperLink = 0xCC6600; // taken from screenshot of syslink
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 template<typename impl_t> class CHyperLinkImpl : public ::CHyperLinkImpl<impl_t> {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 BEGIN_MSG_MAP_EX(CDarkHyperLinkImpl)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 MESSAGE_HANDLER_EX(DarkMode::msgSetDarkMode(), OnSetDarkMode)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 CHAIN_MSG_MAP(::CHyperLinkImpl<impl_t>)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 END_MSG_MAP()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 LRESULT OnSetDarkMode(UINT, WPARAM wp, LPARAM) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 const bool bDark = (wp != 0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 if ( m_clrLinkBackup == CLR_INVALID ) m_clrLinkBackup = this->m_clrLink;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 if (bDark != m_isDark) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 m_isDark = bDark;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 this->m_clrLink = bDark ? colorHyperLink : m_clrLinkBackup;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 this->Invalidate();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 return 1;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 COLORREF m_clrLinkBackup = CLR_INVALID;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 bool m_isDark = false;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 class CHyperLink : public CHyperLinkImpl<CHyperLink> {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 DECLARE_WND_CLASS(_T("WTL_DarkHyperLink"))
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 }