Reputation: 483
i have created an installer using NSIS. In that i have included 2 radio buttons. whenever user selects any of the radio buttons it immediately starts execution , but i want after selecting a radio button execution should start only after user presses a custom button say Next.
So how to add button(say Next) in my script and how can i connect my radio button selection with it ?
the partial code snippet is as follows:
Function mode_selection
nsDialogs::Create 1018
Pop $dialog
${NSD_CreateLabel} 0 10 75% 20u "Choose your preference....."
Pop $0
${NSD_CreateRadioButton} 20 60 100% 25u "Execution Mode"
Pop $hwnd
${NSD_AddStyle} $hwnd ${WS_GROUP}
${NSD_OnClick} $hwnd exec_mode
${NSD_CreateRadioButton} 20 90 100% 25u "Debug Mode "
Pop $hwnd
${NSD_OnClick} $hwnd debug_mode
nsDialogs::Show
FunctionEnd
Function exec_mode
;some code
FunctionEnd
Function debug_mode
;some code
FunctionEnd
Upvotes: 0
Views: 673
Reputation: 101666
!include nsDialogs.nsh
!include LogicLib.nsh
Page custom mode_selection
var hwndExecModeRadio
Function mode_selection
nsDialogs::Create 1018
Pop $0
${NSD_CreateLabel} 0 10 75% 20u "Choose your preference....."
Pop $0
${NSD_CreateRadioButton} 20 60 80% 25u "Execution Mode"
Pop $hwndExecModeRadio
${NSD_AddStyle} $hwndExecModeRadio ${WS_GROUP}
${NSD_CreateRadioButton} 20 90 80% 25u "Debug Mode "
Pop $0
${NSD_CreateButton} 20 150 -40 14u "Do it"
Pop $0
${NSD_OnClick} $0 perform_mode
nsDialogs::Show
FunctionEnd
Function perform_mode
${NSD_GetState} $hwndExecModeRadio $0
${If} $0 = ${BST_CHECKED}
Call exec_mode
${Else}
Call debug_mode
${EndIF}
FunctionEnd
Function exec_mode
MessageBox mb_ok "exec_mode"
FunctionEnd
Function debug_mode
MessageBox mb_ok "debug_mode"
FunctionEnd
Upvotes: 1