; =========================================================
; This file was generated by NSISDialogDesigner 1.3.0.0
; http://coolsoft.altervista.org/nsisdialogdesigner
;
; Do not edit it manually, use NSISDialogDesigner instead!
; =========================================================

; handle variables
Var hCtl_FindJavaPage
Var hCtl_FindJavaPage_DirRequestJdkPath_Txt
Var hCtl_FindJavaPage_DirRequestJdkPath_Btn
Var hCtl_FindJavaPage_LabelBrowseToJdk
Var hCtl_FindJavaPage_LabelDownloadJdk
Var hCtl_FindJavaPage_LinkDownloadJdk
Var hCtl_FindJavaPage_LabelPressNext


; dialog create function
Function fnc_FindJavaPage_Create
  
  ; === FindJavaPage (type: Dialog) ===
  nsDialogs::Create 1018
  Pop $hCtl_FindJavaPage
  ${If} $hCtl_FindJavaPage == error
    Abort
  ${EndIf}
  !insertmacro MUI_HEADER_TEXT "Verifying your system meets the minimum requirements" "System Check"
  
  ; === DirRequestJdkPath_Txt (type: Text) ===
  ${NSD_CreateText} 0u 19.08u 242.23u 12.31u ""
  Pop $hCtl_FindJavaPage_DirRequestJdkPath_Txt
  
  ; === DirRequestJdkPath_Btn (type: Button) ===
  ${NSD_CreateButton} 243.54u 19.08u 52.66u 12.31u "Browse..."
  Pop $hCtl_FindJavaPage_DirRequestJdkPath_Btn
  ${NSD_OnClick} $hCtl_FindJavaPage_DirRequestJdkPath_Btn fnc_hCtl_FindJavaPage_DirRequestJdkPath_Click
  
  ; === LabelBrowseToJdk (type: Label) ===
  ${NSD_CreateLabel} 0u 0u 296.2u 17.23u "We could not detect a Java Development Kit (JDK) v7 or newer on your system. Please browse to its path if known:"
  Pop $hCtl_FindJavaPage_LabelBrowseToJdk
  
  ; === LabelDownloadJdk (type: Label) ===
  ${NSD_CreateLabel} 5.27u 38.77u 142.84u 9.85u "or download the following compatible JDK:"
  Pop $hCtl_FindJavaPage_LabelDownloadJdk
  
  ; === LinkDownloadJdk (type: Link) ===
  ${NSD_CreateLink} 147.44u 38.77u 132.96u 9.85u "(JDK_EXE)"
  Pop $hCtl_FindJavaPage_LinkDownloadJdk
  ${NSD_OnClick} $hCtl_FindJavaPage_LinkDownloadJdk fnc_FindJavaPage_LinkDownloadJdk_OnClick
  
  ; === LabelPressNext (type: Label) ===
  ${NSD_CreateLabel} 5.27u 48.62u 275.14u 9.85u "and press 'Next' after installation is complete."
  Pop $hCtl_FindJavaPage_LabelPressNext
  
  ; CreateFunctionCustomScript
  Call fnc_FindJavaPage_InitializeControls
  
  
FunctionEnd

; dialog show function
Function fnc_FindJavaPage_Show
  Call fnc_FindJavaPage_Create
  nsDialogs::Show $hCtl_FindJavaPage
FunctionEnd


; onClick handler for DirRequest Button $hCtl_FindJavaPage_DirRequestJdkPath_Btn
Function fnc_hCtl_FindJavaPage_DirRequestJdkPath_Click
	Pop $R0
	${If} $R0 == $hCtl_FindJavaPage_DirRequestJdkPath_Btn
		${NSD_GetText} $hCtl_FindJavaPage_DirRequestJdkPath_Txt $R0
		nsDialogs::SelectFolderDialog /NOUNLOAD "Browse to a JDK location" "$R0"
		Pop $R0
		${If} "$R0" != "error"
			${NSD_SetText} $hCtl_FindJavaPage_DirRequestJdkPath_Txt "$R0"
		${EndIf}
	${EndIf}
FunctionEnd
