2002-08-08 10:20:28 +00:00
|
|
|
Name example
|
2002-10-02 17:51:16 +00:00
|
|
|
OutFile one-section.exe
|
2002-08-08 10:20:28 +00:00
|
|
|
|
2002-08-09 13:00:17 +00:00
|
|
|
ComponentText "please choose just one but the default"
|
2002-08-08 10:20:28 +00:00
|
|
|
|
2002-10-02 16:59:40 +00:00
|
|
|
!define SF_SELECTED 1
|
|
|
|
!define SF_SUBSEC 2
|
|
|
|
!define SF_SUBSECEND 4
|
|
|
|
!define SF_BOLD 8
|
|
|
|
!define SF_RO 16
|
|
|
|
!define SF_EXPAND 32
|
|
|
|
|
|
|
|
!define SECTION_OFF 0xFFFFFFFE
|
|
|
|
|
2002-08-08 10:20:28 +00:00
|
|
|
Section !Required
|
|
|
|
SectionIn RO
|
|
|
|
SectionEnd
|
|
|
|
|
|
|
|
Section "optional #1" sec1
|
|
|
|
SectionEnd
|
|
|
|
|
|
|
|
Section "optional #2" sec2
|
|
|
|
SectionEnd
|
|
|
|
|
|
|
|
Section "optional #3" sec3
|
|
|
|
SectionEnd
|
|
|
|
|
|
|
|
Section "optional #4" sec4
|
|
|
|
SectionEnd
|
|
|
|
|
|
|
|
Function .onInit
|
2002-08-09 13:00:17 +00:00
|
|
|
Push $0
|
|
|
|
|
2002-08-08 10:20:28 +00:00
|
|
|
StrCpy $1 ${sec1} ; Gotta remember which section we are at now...
|
|
|
|
SectionGetFlags ${sec1} $0
|
2002-10-02 16:59:40 +00:00
|
|
|
IntOp $0 $0 | ${SF_SELECTED}
|
2002-08-08 10:20:28 +00:00
|
|
|
SectionSetFlags ${sec1} $0
|
|
|
|
|
|
|
|
SectionGetFlags ${sec2} $0
|
|
|
|
IntOp $0 $0 & ${SECTION_OFF}
|
|
|
|
SectionSetFlags ${sec2} $0
|
|
|
|
|
|
|
|
SectionGetFlags ${sec3} $0
|
|
|
|
IntOp $0 $0 & ${SECTION_OFF}
|
|
|
|
SectionSetFlags ${sec3} $0
|
|
|
|
|
|
|
|
SectionGetFlags ${sec4} $0
|
|
|
|
IntOp $0 $0 & ${SECTION_OFF}
|
|
|
|
SectionSetFlags ${sec4} $0
|
2002-08-09 13:00:17 +00:00
|
|
|
|
|
|
|
Pop $0
|
2002-08-08 10:20:28 +00:00
|
|
|
FunctionEnd
|
|
|
|
|
|
|
|
Function .onSelChange
|
2002-08-09 13:00:17 +00:00
|
|
|
Push $0
|
|
|
|
|
2002-08-08 10:20:28 +00:00
|
|
|
; Turn off old selected section
|
2002-08-09 13:00:17 +00:00
|
|
|
SectionGetFlags $1 $0
|
|
|
|
IntOp $0 $0 & ${SECTION_OFF}
|
|
|
|
SectionSetFlags $1 $0
|
2002-08-08 10:20:28 +00:00
|
|
|
|
|
|
|
; Now remember the current selection
|
2002-08-09 13:00:17 +00:00
|
|
|
Push $2
|
|
|
|
StrCpy $2 $1
|
|
|
|
|
2002-08-08 10:20:28 +00:00
|
|
|
SectionGetFlags ${sec1} $0
|
2002-10-02 16:59:40 +00:00
|
|
|
IntOp $0 $0 & ${SF_SELECTED}
|
|
|
|
IntCmp $0 ${SF_SELECTED} 0 +2 +2
|
2002-08-08 10:20:28 +00:00
|
|
|
StrCpy $1 ${sec1}
|
|
|
|
SectionGetFlags ${sec2} $0
|
2002-10-02 16:59:40 +00:00
|
|
|
IntOp $0 $0 & ${SF_SELECTED}
|
|
|
|
IntCmp $0 ${SF_SELECTED} 0 +2 +2
|
2002-08-08 10:20:28 +00:00
|
|
|
StrCpy $1 ${sec2}
|
|
|
|
SectionGetFlags ${sec3} $0
|
2002-10-02 16:59:40 +00:00
|
|
|
IntOp $0 $0 & ${SF_SELECTED}
|
|
|
|
IntCmp $0 ${SF_SELECTED} 0 +2 +2
|
2002-08-08 10:20:28 +00:00
|
|
|
StrCpy $1 ${sec3}
|
|
|
|
SectionGetFlags ${sec4} $0
|
2002-10-02 16:59:40 +00:00
|
|
|
IntOp $0 $0 & ${SF_SELECTED}
|
|
|
|
IntCmp $0 ${SF_SELECTED} 0 +2 +2
|
2002-08-08 10:20:28 +00:00
|
|
|
StrCpy $1 ${sec4}
|
2002-08-09 13:00:17 +00:00
|
|
|
|
2002-08-10 09:32:00 +00:00
|
|
|
StrCmp $2 $1 0 +4 ; selection hasn't changed
|
2002-08-09 13:00:17 +00:00
|
|
|
SectionGetFlags $1 $0
|
2002-10-02 16:59:40 +00:00
|
|
|
IntOp $0 $0 | ${SF_SELECTED}
|
2002-08-09 13:00:17 +00:00
|
|
|
SectionSetFlags $1 $0
|
|
|
|
Pop $2
|
|
|
|
Pop $0
|
2002-08-08 10:20:28 +00:00
|
|
|
FunctionEnd
|