summaryrefslogtreecommitdiff
path: root/alf/alfradiobutton.cpp
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2020-05-23 14:26:28 +0200
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2020-05-23 14:26:28 +0200
commit9d237b5fd80e55d8b5e367323b6ee58be896f968 (patch)
treeed3de9ac1eb47b55ac252ca025905b8b9f92d7c3 /alf/alfradiobutton.cpp
parent1069c22d0da82ba81a9fb1242a808e0a65316b55 (diff)
move radio button into button class
Diffstat (limited to 'alf/alfradiobutton.cpp')
-rw-r--r--alf/alfradiobutton.cpp96
1 files changed, 0 insertions, 96 deletions
diff --git a/alf/alfradiobutton.cpp b/alf/alfradiobutton.cpp
deleted file mode 100644
index 2fe6cb6..0000000
--- a/alf/alfradiobutton.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-#include "alfpriv.h"
-
-typedef struct {
- ALFColor bgcolor;
- WNDPROC origWndProc;
-} ALFRadioPriv;
-
-static ALFRadioPriv *
-ALF_Radio_InitializePriv(void)
-{
- return ALF_New(ALFRadioPriv, 1);
-}
-
-static void
-ALF_Radio_FreePriv(ALFRadioPriv *priv)
-{
- ALF_Free(priv);
-}
-
-static LRESULT
-ALF_Radio_HandleCtlColor(HWND window, ALFRadioPriv *priv, HDC hDC)
-{
- (void)priv; (void)window;
-
- SetTextColor(hDC, GetSysColor(COLOR_BTNTEXT));
- SetBkColor(hDC, GetSysColor(COLOR_BTNFACE));
- SetBkMode(hDC, OPAQUE);
- return (LRESULT)GetSysColorBrush(COLOR_BTNFACE);
-}
-
-static LRESULT CALLBACK
-ALF_Radio_WindowProc(HWND window, UINT msg, WPARAM wparam, LPARAM lparam)
-{
- ALFRadioPriv *priv = (ALFRadioPriv *)GetWindowLongPtr(window, GWLP_USERDATA);
-
- if (!priv) // fuck
- return DefWindowProc(window, msg, wparam, lparam);
-
- if (msg == ALF_WM_SETBGCOLOR) {
- ALFColor newColor = (ALFColor)lparam;
- if (newColor != priv->bgcolor) {
- priv->bgcolor = newColor;
- if (ALF_Compat_IsAppThemed())
- InvalidateRect(window, NULL, TRUE);
- }
- return TRUE;
- }
-
- if (msg == 0x2000 + WM_CTLCOLORSTATIC || msg == 0x2000 + WM_CTLCOLORBTN) {
- return ALF_Radio_HandleCtlColor(window, priv, (HDC)wparam);
- }
-
- if (msg == ALF_WM_BACKGROUNDCHANGE) {
- if (priv->bgcolor == ALF_COLOR_TRANSPARENT && ALF_Compat_IsAppThemed()) {
- InvalidateRect(window, NULL, TRUE);
- }
- return TRUE;
- }
-
- if (msg == WM_THEMECHANGED) {
- InvalidateRect(window, NULL, TRUE);
- }
-
- if (msg == WM_DESTROY) {
- WNDPROC orig = priv->origWndProc;
- SetWindowLongPtr(window, GWLP_WNDPROC, (LONG_PTR)orig);
- SetWindowLongPtr(window, GWLP_USERDATA, 0);
- ALF_Radio_FreePriv(priv);
- return CallWindowProc(orig, window, msg, wparam, lparam);
- }
-
- return CallWindowProc(priv->origWndProc, window, msg, wparam, lparam);
-}
-
-HWND
-ALF_AddRadioButton(HWND parent, WORD id, int x, int y, const TCHAR *text)
-{
- HWND hwnd = CreateWindowEx(0,
- TEXT("BUTTON"),
- text,
- WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,
- 0, 0, 100, 100,
- parent,
- (HMENU)(ULONG_PTR)id,
- ALF_HINSTANCE,
- NULL);
-
- ALFRadioPriv *priv = ALF_Radio_InitializePriv();
- SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)priv);
- priv->origWndProc = (WNDPROC)SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)ALF_Radio_WindowProc);
-
- ALF_AddWidget(parent, x, y, hwnd, 0, 0, ALF_LAYOUT_SIZE_CHECKBOX | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_INHERITBGCOLOR | ALF_LAYOUT_SENDBGCHANGE);
-
- return hwnd;
-}
-