Mercurial > parpg-core
diff nsis/python-module.nsh @ 0:1fd2201f5c36
Initial commit of parpg-core.
author | M. George Hansen <technopolitica@gmail.com> |
---|---|
date | Sat, 14 May 2011 01:12:35 -0700 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nsis/python-module.nsh Sat May 14 01:12:35 2011 -0700 @@ -0,0 +1,106 @@ +!include nsDialogs.nsh +!include LogicLib.nsh +!macro _FileExists2 _a _b _t _f + StrCmp `${_b}` `` `${_f}` 0 + IfFileExists `${_b}` `0` `${_f}` ;returns true if this is a directory + IfFileExists `${_b}\*.*` `${_f}` `${_t}` ;so if it is a directory, jump to false +!macroend +!undef FileExists +!define FileExists `"" FileExists2` +!macro _DirExists _a _b _t _f + StrCmp `${_b}` `` `${_f}` 0 + IfFileExists `${_b}\*.*` `${_t}` `${_f}` +!macroend +!define DirExists `"" DirExists` +!include mui2.nsh +!include WinMessages.nsh + +Var PythonList +Var Directory +Var Browse +Var PythonPath +Var PythonVer +!macro PAGE_PYTHON_MODULE +Page custom PythonModulePage PythonModulePage_OnLeave +!macroend + +Function PythonModulePage + !insertmacro MUI_HEADER_TEXT_PAGE "Install Python Module" "Please select where to install the Python module" + nsDialogs::Create 1018 + Pop $0 + + ${NSD_CreateListBox} 0 0 300u 120u "" + Pop $PythonList + + StrCpy $0 0 + EnumRegKey $1 HKLM SOFTWARE\Python\PythonCore $0 + ${DoWhile} $1 != "" + ReadRegStr $2 HKLM SOFTWARE\Python\PythonCore\$1\InstallPath "" + ${if} $2 != "" + ${NSD_LB_AddString} $PythonList "$1" + ${endif} + IntOp $0 $0 + 1 + EnumRegKey $1 HKLM SOFTWARE\Python\PythonCore $0 + ${Loop} + ${NSD_LB_GetCount} $PythonList $0 + ${if} $0 == 0 + MessageBox MB_ICONINFORMATION|MB_OK "No Python version detected. If you don't have Python installed you should install it first. Otherwise you can input the python directory below." + ${endif} + ${NSD_LB_AddString} $PythonList "Custom" + ${NSD_LB_SelectString} $PythonList $PythonVer + ${NSD_OnChange} $PythonList PythonModulePage_OnLeave_OnChange_PythonList + + ${NSD_CreateDirRequest} 0 121u 280u 15u "" + Pop $Directory + + ${NSD_CreateButton} 281u 121u 19u 15u "..." + Pop $Browse + GetFunctionAddress $0 PythonModulePage_OnClick_Browse + + + nsDialogs::OnClick /NOUNLOAD $Browse $0 + + nsDialogs::Show +FunctionEnd + +Function PythonModulePage_OnLeave +${NSD_GetText} $Directory $PythonPath +${NSD_LB_GetSelection} $PythonList $PythonVer +${If} $PythonPath == "" +${OrIfNot} ${DirExists} $PythonPath + Abort +${endif} +FunctionEnd + +Function PythonModulePage_OnLeave_OnChange_PythonList +${NSD_LB_GetSelection} $PythonList $0 +${if} $0 != "Custom" + EnableWindow $Directory 0 + EnableWindow $Browse 0 + ${if} $0 != "" + ReadRegStr $1 HKLM SOFTWARE\Python\PythonCore\$0\InstallPath "" + ${NSD_SetText} $Directory $1 + ${endif} +${else} + EnableWindow $Directory 1 + EnableWindow $Browse 1 +${endif} + +FunctionEnd + +Function PythonModulePage_OnClick_Browse + + ${NSD_GetText} $Directory $0 + + nsDialogs::SelectFolderDialog /NOUNLOAD "Please select a target directory" "$0" + + Pop $0 + ${If} $0 == error + + Abort + + ${EndIf} + + ${NSD_SetText} $Directory $0 + +FunctionEnd \ No newline at end of file