view nsis/python-module.nsh @ 150:3fc7cfa80771

Modified InventoryGrid to set a name for each slot containing the index. Added getSlot method to InventoryGrid. Renamed InventoryGUI class to CharacterGUI. Added InventoryGUI class which handles the inventory part of the CharacterGUI. An InventoryGUI instance is now created in CharacterGUI.
author KarstenBock@gmx.net
date Wed, 05 Oct 2011 12:59:22 +0200
parents 1fd2201f5c36
children
line wrap: on
line source

!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