!include nsDialogs.nsh
!include LogicLib.nsh

Name "nsDialogs Example"
OutFile "nsDialogs Example.exe"

XPStyle on

Page license
Page custom nsDialogsPage

Var BUTTON
Var EDIT
Var CHECKBOX

Function nsDialogsPage

	nsDialogs::Create /NOUNLOAD 1018
	Pop $0

	GetFunctionAddress $0 OnBack
	nsDialogs::OnBack /NOUNLOAD $0

	${NSD_CreateButton} 0 0 100% 12u Test
	Pop $BUTTON
	GetFunctionAddress $0 OnClick
	nsDialogs::OnClick /NOUNLOAD $BUTTON $0

	${NSD_CreateText} 0 35 100% 12u hello
	Pop $EDIT
	GetFunctionAddress $0 OnChange
	nsDialogs::OnChange /NOUNLOAD $EDIT $0

	${NSD_CreateCheckbox} 0 -50 100% 8u Test
	Pop $CHECKBOX
	GetFunctionAddress $0 OnCheckbox
	nsDialogs::OnClick /NOUNLOAD $CHECKBOX $0

	${NSD_CreateLabel} 0 40u 75% 40u "* Type `hello there` above.$\n* Click the button.$\n* Check the checkbox.$\n* Hit the Back button."
	Pop $0

	nsDialogs::Show

FunctionEnd

Function OnClick

	MessageBox MB_OK clicky

FunctionEnd

Function OnChange

	System::Call user32::GetWindowText(i$EDIT,t.r0,i${NSIS_MAX_STRLEN})

	${If} $0 == "hello there"
		MessageBox MB_OK "right back at ya"
	${EndIf}

FunctionEnd

Function OnBack

	MessageBox MB_YESNO "are you sure?" IDYES +2
	Abort

FunctionEnd

Function OnCheckbox

	MessageBox MB_OK "checkbox clicked"

FunctionEnd

Section
SectionEnd
