aboutsummaryrefslogtreecommitdiff
path: root/Src/auth/Loginbox/popupAgreement.h
blob: 39f0c964c3c529d00703e90141d84430dc87fa93 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef NULLSOFT_AUTH_LOGINPOPUP_AGREEMENT_HEADER
#define NULLSOFT_AUTH_LOGINPOPUP_AGREEMENT_HEADER

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#include "./loginPopup.h"

class LoginProvider;

class LoginPopupAgreement  : public LoginPopup
{
protected:
	LoginPopupAgreement(HWND hwnd);
	~LoginPopupAgreement();

public:
	static HWND CreatePopup(HWND hParent, LoginProvider *provider);

protected:
	void UpdateLayout(BOOL fRedraw);
	void EndDialog(INT_PTR code);
	void UpdateMargins();

	BOOL CreateProviderLinks(LPCWSTR pszProvider, LPCWSTR pszTos, LPCWSTR pszPrivacy, INT groupId, HWND hwndInsertAfter);
	HDWP LayoutProviderLinks(HDWP hdwp, INT groupId, HWND hwndInsertAfter, INT x, INT y, UINT flags, SIZE *size); // pass hdwp = NULL to get ideal size
	

	void OnLinkClicked(HWND hLink);
	HBRUSH OnGetStaticColor(HDC hdc, HWND hControl);
	LRESULT OnNotify(UINT controlId, const NMHDR *pnmh);
	void OnParentNotify(UINT eventId, UINT wParam, LPARAM lParam);
	BOOL OnUpdateWindowPos(const RECT* clientRect, RECT *rectOut);
	BOOL OnInitDialog(HWND hFocus, LPARAM param);
	void OnDestroy();

protected:
	LONG marginLinkLeft;
	LONG marginLinkFirst;
	LONG marginLinkNext;

private:
	friend static HRESULT CALLBACK LoginPopupAgreement_CreateInstance(HWND hwnd, LPARAM param, LoginPopup **instance);
};


#endif //NULLSOFT_AUTH_LOGINPOPUP_AGREEMENT_HEADER