Archive: Section management


Section management
I have 3 sections i need to un install.. I am unable to get the value of the checkboxes via onSelChange() i dont know what to do once i am in that function!

The pseudo code below should better describe what i am trying to achieve.


Section_A
Section_B
All

if(Section_A == selected)
uninstall section A

if(Section_B == selected)
uninstall section B

if(Section_A == selected && Section_B == selected)
uninstall all

if(Section_All == selected)
{
deselect section A
deselect section B
call uninstall all
}


The code i have is... how do i select unselect the radio buttons.

Function .un.onSelChanged
;
; how do i get the current state of the check box??
;
FunctionEnd
Section un.A Sec1
rmdir /r "section_A_files/*.*"
SectionEnd

Section un.B Sec2
rmdir /r "section_B_files/*.*"
SectionEnd

Section All Sec3
; do nothing other than flag the fact we are here
SectionEnd

Section -un.uninstall
SectionGetflags Sec1 $R0 ; are we set
SectionGetflags Sec2 $R1
SectionGetflags Sec3 $R2

intop $0 $R0 + R1 ; add sections A + B
intcmp $0 2 uninstall_all
abort

intcmp $R1 1 uninstall
abort
uninstall_all:
do .. rest
SectionEnd

Section All Sec3
; do nothing other than flag the fact we are here
SectionEnd
Did you mean Section un.All?
You can use LogicLib.nsh and Section.nsh. Code will be like this (don't tested):

${If} ${SectionIsSelected} "$Sec1"
${AndIf} ${SectionIsSelected} "$Sec2"
!insertmacro SelectSection "$Sec3"
... another action ...
${ElseIf} ${SectionIsSelected} "$Sec3"
!insertmacro SelectSection "$Sec1"
!insertmacro SelectSection "$Sec2"
... another action ...
${EndIf}


Edit: Sorry, typo - all
!insertmacro SelectSection
must be
!insertmacro UnselectSection