checkboxnsisnsis-mui

Customizing an exsisting NSIS MUI2 page


I have added a checkbox successfully to nsis installer's finish page defining functions for MUI_PAGE_CUSTOMFUNCTION_PRE and MUI_PAGE_CUSTOMFUNCTION_SHOW in finish page using MUI.

But if I include MUI2 instead of MUI, the check box is not displayed. I suppose there is something different in MUI2 than MUI with respect to this. I could not find documentation on that an if anyone knows that, can I please know???

Thank you


Solution

  • MUI1 uses InstallOptions for the Welcome and Finish pages and MUI2 uses nsDialogs.

    This is documented in the MUI2 readme:

    The welcome and finish page are no longer implemented using InstallOptions. Instead, the new nsDialogs plug-in is used. nsDialogs allows you to create custom pages or customize existing pages directly from the script.

    Edit: Customize the page by using the nsDialogs commands in the show callback:

    var Checkbox
    
    Function MyFinishShow
    ${NSD_CreateCheckbox} 120u 110u 100% 10u "&Something"
    Pop $Checkbox
    SetCtlColors $Checkbox "" "ffffff"
    FunctionEnd
    
    Function MyFinishLeave
    ${NSD_GetState} $Checkbox $0
    ${If} $0 <> 0
        MessageBox mb_ok "Custom checkbox was checked..."
    ${EndIf}
    FunctionEnd
    
    !define MUI_FINISHPAGE_RUN "calc.exe" ;See note after the code...
    !define MUI_PAGE_CUSTOMFUNCTION_SHOW MyFinishShow
    !define MUI_PAGE_CUSTOMFUNCTION_LEAVE MyFinishLeave
    !insertmacro MUI_PAGE_FINISH
    

    Or if you are not using the existing finish page checkboxes, you can use those for custom stuff without using the show callback...