1+ !include " nsDialogs.nsh"
2+ !include " WinMessages.nsh"
3+ !include " LogicLib.nsh"
4+ !include " MUI2.nsh"
5+
6+ Var INST_OBSERVER_HANDLE
7+ Var INST_PLAYER_HANDLE
8+ Var INST_OBSERVER
9+ Var INST_PLAYER
10+ Var HWND_NEXT_BUTTON
11+
12+ Page custom ClientSelectionPage ClientSelectionLeave
13+
14+ Function UpdateNextButton
15+ ${NSD_GetState} $INST_OBSERVER_HANDLE $0
16+ ${NSD_GetState} $INST_PLAYER_HANDLE $1
17+
18+ ${If} $0 == ${BST_UNCHECKED}
19+ ${AndIf} $1 == ${BST_UNCHECKED}
20+ GetDlgItem $HWND_NEXT_BUTTON $HWNDPARENT 1
21+ EnableWindow $HWND_NEXT_BUTTON 0
22+ ${Else}
23+ GetDlgItem $HWND_NEXT_BUTTON $HWNDPARENT 1
24+ EnableWindow $HWND_NEXT_BUTTON 1
25+ ${EndIf}
26+ FunctionEnd
27+
28+ Function ObserverCheckboxClick
29+ Call UpdateNextButton
30+ FunctionEnd
31+
32+ Function PlayerCheckboxClick
33+ Call UpdateNextButton
34+ FunctionEnd
35+
36+ Function ClientSelectionPage
37+ !insertmacro MUI_HEADER_TEXT " Client Selection" " What client(s) would you like to install?"
38+ nsDialogs::Create 1018
39+ Pop $0
40+ ${If} $0 == error
41+ Abort
42+ ${EndIf}
43+
44+ ${NSD_CreateLabel} 0u 10u 100 % 12u " Select which client(s) to install:"
45+ Pop $1
46+
47+ ${NSD_CreateCheckbox} 0u 30u 100 % 10u " Install Observer Client"
48+ Pop $INST_OBSERVER_HANDLE
49+ ${NSD_SetState} $INST_OBSERVER_HANDLE ${BST_UNCHECKED}
50+ ${NSD_OnClick} $INST_OBSERVER_HANDLE ObserverCheckboxClick
51+
52+ ${NSD_CreateCheckbox} 0u 50u 100 % 10u " Install Player Client"
53+ Pop $INST_PLAYER_HANDLE
54+ ${NSD_SetState} $INST_PLAYER_HANDLE ${BST_UNCHECKED}
55+ ${NSD_OnClick} $INST_PLAYER_HANDLE PlayerCheckboxClick
56+
57+ Call UpdateNextButton
58+ nsDialogs::Show
59+ FunctionEnd
60+
61+ Function ClientSelectionLeave
62+ ${NSD_GetState} $INST_OBSERVER_HANDLE $0
63+ ${If} $0 == ${BST_CHECKED}
64+ StrCpy $INST_OBSERVER " 1"
65+ ${Else}
66+ StrCpy $INST_OBSERVER " 0"
67+ ${EndIf}
68+
69+ ${NSD_GetState} $INST_PLAYER_HANDLE $0
70+ ${If} $0 == ${BST_CHECKED}
71+ StrCpy $INST_PLAYER " 1"
72+ ${Else}
73+ StrCpy $INST_PLAYER " 0"
74+ ${EndIf}
75+ FunctionEnd
76+
177!macro customInstall
278 Delete " $SMPROGRAMS\Spectra Client.lnk"
379 Delete " $SMPROGRAMS\[Player] Spectra Client.lnk"
480 Delete " $DESKTOP\Spectra Client.lnk"
581 Delete " $DESKTOP\[Player] Spectra Client.lnk"
682
7- CreateShortCut " $SMPROGRAMS\Spectra Client.lnk" " $INSTDIR\Spectra Client.exe" " --owepm-packages-url=https://electronapi-qa.overwolf.com/packages"
8- CreateShortCut " $SMPROGRAMS\[Player] Spectra Client.lnk" " $INSTDIR\Spectra Client.exe" " --owepm-packages-url=https://electronapi-qa.overwolf.com/packages --auxiliary"
9- CreateShortCut " $DESKTOP\Spectra Client.lnk" " $INSTDIR\Spectra Client.exe" " --owepm-packages-url=https://electronapi-qa.overwolf.com/packages"
10- CreateShortCut " $DESKTOP\[Player] Spectra Client.lnk" " $INSTDIR\Spectra Client.exe" " --owepm-packages-url=https://electronapi-qa.overwolf.com/packages --auxiliary"
83+ ${If} $INST_OBSERVER == " 1"
84+ CreateShortCut " $SMPROGRAMS\Spectra Client.lnk" " $INSTDIR\Spectra Client.exe" " "
85+ CreateShortCut " $DESKTOP\Spectra Client.lnk" " $INSTDIR\Spectra Client.exe" " "
86+ ${EndIf}
87+
88+ ${If} $INST_PLAYER == " 1"
89+ CreateShortCut " $SMPROGRAMS\[Player] Spectra Client.lnk" " $INSTDIR\Spectra Client.exe" " --auxiliary"
90+ CreateShortCut " $DESKTOP\[Player] Spectra Client.lnk" " $INSTDIR\Spectra Client.exe" " --auxiliary"
91+ ${EndIf}
1192!macroend
0 commit comments