aboutsummaryrefslogtreecommitdiff
path: root/Src/auth/Loginbox/loginpage.h
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/auth/Loginbox/loginpage.h
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/auth/Loginbox/loginpage.h')
-rw-r--r--Src/auth/Loginbox/loginpage.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/Src/auth/Loginbox/loginpage.h b/Src/auth/Loginbox/loginpage.h
new file mode 100644
index 00000000..e477965b
--- /dev/null
+++ b/Src/auth/Loginbox/loginpage.h
@@ -0,0 +1,101 @@
+#ifndef NULLSOFT_AUTH_LOGINPAGE_HEADER
+#define NULLSOFT_AUTH_LOGINPAGE_HEADER
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+#include <wtypes.h>
+
+#define NLPM_FIRST (WM_APP + 10)
+#define NLPM_PAGEFIRST (NLPM_FIRST + 40)
+
+#define NLPM_GETLOGINDATA (NLPM_FIRST + 0) // wParam - not used, lParam = (LPARAM)(LoginData**)__ppLoginData; Return: TRUE on success.
+#define LoginPage_GetData(/*HWND*/ __hwnd, /*LoginData** */ __ppLoginData)\
+ ((BOOL)(SNDMSG((__hwnd), NLPM_GETLOGINDATA, 0, (LPARAM)(__ppLoginData))))
+
+#define NLPM_UPDATESTATECHANGE (NLPM_FIRST + 1) // wParam - not used, lParam = (BOOL)__updateActive; Return - ignored
+#define LoginPage_UpdateStateChange(/*HWND*/ __hwnd, /*BOOL*/ __updateActive)\
+ ((BOOL)(SNDMSG((__hwnd), NLPM_UPDATESTATECHANGE, 0, (LPARAM)(__updateActive))))
+
+#define NLPM_SETUSERNAME (NLPM_FIRST + 2) // wParam - not used, lParam = (LPARAM)(LPCWSTR)__pszUsername; Return TRUE on success
+#define LoginPage_SetUsername(/*HWND*/ __hwnd, /*LPCWSTR*/ __pszUsername)\
+ ((BOOL)(SNDMSG((__hwnd), NLPM_SETUSERNAME, 0, (LPARAM)(__pszUsername))))
+
+#define NLPM_SETPASSWORD (NLPM_FIRST + 3) // wParam - not used, lParam = (LPARAM)(LPCWSTR)__pszPassword; Return TRUE on success
+#define LoginPage_SetPassword(/*HWND*/ __hwnd, /*LPCWSTR*/ __pszPassword)\
+ ((BOOL)(SNDMSG((__hwnd), NLPM_SETPASSWORD, 0, (LPARAM)(__pszPassword))))
+
+#define NLPM_GETFIRSTITEM (NLPM_FIRST + 4) // wParam - not used, lParam - not used; Return HWND where you want focus to be on page create or NULL.
+#define LoginPage_GetFirstItem(/*HWND*/ __hwnd)\
+ ((HWND)(SNDMSG((__hwnd), NLPM_GETFIRSTITEM, 0, 0L)))
+
+#define NLPM_SETTITLE (NLPM_FIRST + 5) // wParam - not used, lParam = (LPARAM)(LPCWSTR)__pszTitle; Return TRUE on success
+#define LoginPage_SetTitle(/*HWND*/ __hwnd, /*LPCWSTR*/ __pszTitle)\
+ ((BOOL)(SNDMSG((__hwnd), NLPM_SETTITLE, 0, (LPARAM)(__pszTitle))))
+
+class LoginPage;
+class LoginData;
+
+typedef HRESULT (CALLBACK *LOGINPAGECREATOR)(HWND /*hwnd*/, HWND /*hLoginbox*/, LoginPage** /*instance*/);
+
+class __declspec(novtable) LoginPage
+{
+
+protected:
+ LoginPage(HWND hwnd, HWND hLoginbox);
+ virtual ~LoginPage();
+
+public:
+ static HWND CreatePage(HWND hLoginbox, LPCWSTR pszTemplate, HWND hParent, LPARAM param, LOGINPAGECREATOR fnCreator);
+
+protected:
+ virtual void UpdateMargins();
+ virtual void UpdateColors();
+ virtual void UpdateLayout(BOOL fRedraw);
+
+ virtual BOOL GetPageRect(RECT *prc);
+ BOOL ShowHelp();
+ BOOL IsHelpAvailable();
+ INT GetTitleSpacing();
+ BOOL SetLabelText(INT controlId, LPCWSTR pszText);
+
+
+protected:
+ virtual BOOL OnInitDialog(HWND hFocus, LPARAM param);
+ virtual void OnDestroy();
+ virtual void OnWindowPosChanged(const WINDOWPOS *pwp);
+ virtual void OnCommand(UINT commandId, UINT eventType, HWND hControl);
+ virtual BOOL OnNotify(UINT controlId, const NMHDR *pnmh);
+ virtual BOOL OnSetCursor(HWND hTarget, INT hitCode, INT uMsg);
+ virtual HBRUSH OnGetStaticColor(HDC hdc, HWND hControl);
+ virtual HBRUSH OnGetDialogColor(HDC hdc, HWND hControl);
+ virtual BOOL OnHelp(HELPINFO *phi);
+ virtual void OnThemeChanged();
+ virtual void OnSysColorChanged();
+
+ virtual BOOL OnGetLoginData(LoginData **ppLoginData);
+ virtual void OnUpdateStateChange(BOOL updateActive);
+ virtual BOOL OnSetUsername(LPCWSTR pszUsername);
+ virtual BOOL OnSetPassword(LPCWSTR pszPassword);
+ virtual HWND OnGetFirstItem();
+ virtual BOOL OnSetTitle(LPCWSTR pszTitle);
+
+ virtual INT_PTR DialogProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+private:
+ friend static INT_PTR CALLBACK LoginPage_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+protected:
+ HWND hwnd;
+ HWND hLoginbox;
+ RECT margins;
+ COLORREF rgbTitle;
+ COLORREF rgbSecondaryText;
+ COLORREF rgbText;
+ COLORREF rgbBack;
+ HBRUSH hbrBack;
+
+};
+
+#endif //NULLSOFT_AUTH_LOGINPAGE_HEADER \ No newline at end of file