xav77
10th May 2006 09:09 UTC
how to display conditionally a custom page
  How can I display a custom page during setup depending on a variable ?
I have a variable, which if it is true allow me to display a custom page before going on with my setup and if it is false I just want to continue without displaying my custom page.
Thx
o_owd
10th May 2006 10:16 UTC
hello,
have a look at InstallOptions.nsi in your "NSIS\Examples\Modern UI" folder. there are a few custom pages.
for example you have for the second page
CustomPageB
 !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
 !insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioB.ini"
>FunctionEnd 
>
if you add one line, a comparation, it will not be displayed all the time, depending on your selection. the line is already used for displayng a message box if the section was selected. try it.
      
CustomPageB
 !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
 StrCmp $INI_VALUE "1" "" +2
 !insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioB.ini"
>FunctionEnd 
>
have a look at StrCmp in NSIS manual.
      hope it helps.
    
      Afrow UK
      10th May 2006 10:16 UTC
      Just jump over the InstallOptions plugin call.
      
      -Stu
     
    
      Red Wine
      10th May 2006 10:26 UTC
      
      
outfile 'test.exe'
page license  '' '' licleave
page custom custompre
page directory
section -
sectionend
function custompre
strcmp $R0 'skip' +1 +2
abort
push $0
InstallOptions::initDialog /NOUNLOAD '$PLUGINSDIR\custom.ini'
Pop $0
InstallOptions::show
Pop $0
functionend
function licleave
strcpy $R0 "skip"
functionend
function .onInit
initpluginsdir
file /oname=$PLUGINSDIR\custom.ini "custom.ini"
functionend
     
    
      xav77
      10th May 2006 14:23 UTC
      thx a lot I got it now !