diff options
| author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 | 
| commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
| tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/auth/Loginbox/loginpage.h | |
| parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
| parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
| download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz | |
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/auth/Loginbox/loginpage.h')
| -rw-r--r-- | Src/auth/Loginbox/loginpage.h | 101 | 
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 | 
