diff --git a/Examples/one-section.nsi b/Examples/one-section.nsi new file mode 100644 index 00000000..ab3a753b --- /dev/null +++ b/Examples/one-section.nsi @@ -0,0 +1,79 @@ +Name example +OutFile setup.exe + +ComponentText "please choose just one but the the default" + +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 + +!define SECTION_OFF 0x7FFFFFFF + +Function .onInit + StrCpy $1 ${sec1} ; Gotta remember which section we are at now... + SectionGetFlags ${sec1} $0 + IntOp $0 $0 | 0x80000000 + 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 +FunctionEnd + +Function .onSelChange + ; Turn off old selected section + StrCmp $1 ${sec1} 0 +4 + SectionGetFlags ${sec1} $0 + IntOp $0 $0 & ${SECTION_OFF} + SectionSetFlags ${sec1} $0 + StrCmp $1 ${sec2} 0 +4 + SectionGetFlags ${sec2} $0 + IntOp $0 $0 & ${SECTION_OFF} + SectionSetFlags ${sec2} $0 + StrCmp $1 ${sec3} 0 +4 + SectionGetFlags ${sec3} $0 + IntOp $0 $0 & ${SECTION_OFF} + SectionSetFlags ${sec3} $0 + StrCmp $1 ${sec4} 0 +4 + SectionGetFlags ${sec4} $0 + IntOp $0 $0 & ${SECTION_OFF} + SectionSetFlags ${sec4} $0 + + ; Now remember the current selection + SectionGetFlags ${sec1} $0 + IntOp $0 $0 & 0x80000000 + IntCmp $0 0x80000000 0 +2 +2 + StrCpy $1 ${sec1} + SectionGetFlags ${sec2} $0 + IntOp $0 $0 & 0x80000000 + IntCmp $0 0x80000000 0 +2 +2 + StrCpy $1 ${sec2} + SectionGetFlags ${sec3} $0 + IntOp $0 $0 & 0x80000000 + IntCmp $0 0x80000000 0 +2 +2 + StrCpy $1 ${sec3} + SectionGetFlags ${sec4} $0 + IntOp $0 $0 & 0x80000000 + IntCmp $0 0x80000000 0 +2 +2 + StrCpy $1 ${sec4} +FunctionEnd \ No newline at end of file