Winamp & Shoutcast Forums

Winamp & Shoutcast Forums (http://forums.winamp.com/index.php)
-   NSIS Discussion (http://forums.winamp.com/forumdisplay.php?f=65)
-   -   Optional Radio Buttons (http://forums.winamp.com/showthread.php?t=369882)

dtm777 29th August 2013 03:49

Optional Radio Buttons
 
Hi all,

I'm relatively new to NSIS, so excuse my noobness.

I'm using NSIS 2.46 with MUI2. I am trying to create a components page where the component group is optional, but the items in the group are radio buttons.

The context is that I install some prerequisites for my installation. The user can choose 2 options on how those prerequisites are installed, but they can also choose not to install the prerequisites at all.

Currently my code looks something like:

code:

!insertmacro MUI_PAGE_COMPONENTS
...

SectionGroup "Prerequisite Installation"
Section "Install Type 1" installType1
SectionEnd
Section "Install Type 2" installType2
SectionEnd
SectionGroupEnd

...
Function .onInit
StrCpy $1 ${installType1}
FunctionEnd

Function .onSelChange
!insertmacro StartRadioButtons $1
!insertmacro RadioButton "${installType1}"
!insertmacro RadioButton "${installType2}"
!insertmacro EndRadioButtons
FunctionEnd




Code examples taken from http://stackoverflow.com/questions/1...ams-to-install.

This does give me the "radio button" effect for install types, but I cant deselect the group checkbox (which ok, is "correct" radio button operation. I'm seeing if theres a way to have nothing selected or only 1 selected)

Thanks!!

Smurge 7th October 2013 18:49

good question, i have the same problem. I use it the same way you do, like this http://nsis.sourceforge.net/Examples/one-section.nsi

Always 1 checkbox is activated. You cant deactivate both.

Is it possible to uncheck both options with this "Sections.nsh" method?

HTML Code:

!include "Sections.nsh"
;--------------------------------
Name "One Section"
OutFile "one-section.exe"
RequestExecutionLevel user
;--------------------------------
; Pages
Page components
;--------------------------------
; Sections

Section !Required
  SectionIn RO
SectionEnd

Section "Group 1 - Option 1" g1o1
SectionEnd

Section /o "Group 1 - Option 2" g1o2
SectionEnd

;-------------------------------
; Functions
; $1 stores the status of group 1

Function .onInit
  StrCpy $1 ${g1o1} ; Group 1 - Option 1 is selected by default
FunctionEnd

Function .onSelChange
  !insertmacro StartRadioButtons $1
    !insertmacro RadioButton ${g1o1}
    !insertmacro RadioButton ${g1o2}
  !insertmacro EndRadioButtons
FunctionEnd


Afrow UK 8th October 2013 15:21

You can write your own code in .onSelChange to check the selected states of sections and uncheck the others as necessary. You can use ${If} ${SectionIsSelected} and the UnselectSection macro in Sections.nsh to simplify things.

Stu


All times are GMT. The time now is 17:41.

Copyright © 1999 - 2010 Nullsoft. All Rights Reserved.