diff options
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 |