diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh index 881d7d1d..f7c52a87 100644 --- a/Contrib/Modern UI/System.nsh +++ b/Contrib/Modern UI/System.nsh @@ -478,6 +478,18 @@ !macroend +!macro MUI_INSTALLOPTIONS_READ VAR FILE SECTION KEY + + ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" + +!macroend + +!macro MUI_INSTALLOPTIONS_WRITE FILE SECTION KEY VALUE + + WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" "${VALUE}" + +!macroend + ;-------------------------------- ;BASIC FUNCTIONS diff --git a/Examples/Modern UI/InstallOptions.nsi b/Examples/Modern UI/InstallOptions.nsi index 19029c34..8d00c849 100644 --- a/Examples/Modern UI/InstallOptions.nsi +++ b/Examples/Modern UI/InstallOptions.nsi @@ -9,7 +9,7 @@ ;-------------------------------- ;Configuration - + !define MUI_INSTALLOPTIONS !define MUI_LICENSEPAGE @@ -21,6 +21,8 @@ !define MUI_SETPAGE_FUNCTIONNAME "SetPage" !define MUI_UNSETPAGE_FUNCTIONNAME "un.SetPage" + + !define TEMP1 $R0 ;Language ;English @@ -74,6 +76,12 @@ Section "modern.exe" SecCopyUI SetOutPath "$INSTDIR" File "${NSISDIR}\Contrib\UIs\modern.exe" + + ;Read a value from an Install Options INI File + !insertmacro MUI_INSTALLOPTIONS_READ ${TEMP1} "ioC.ini" "Field 2" "State" + StrCmp ${TEMP1} "1" "" +2 + ;Checked + MessageBox MB_OK "A MessageBox..." SectionEnd @@ -140,23 +148,23 @@ Function SetPage !insertmacro MUI_PAGE_START 2 !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_IO_TITLE) $(MUI_TEXT_IO_SUBTITLE) - WriteIniStr "$PLUGINSDIR\ioA.ini" "Settings" "Title" "${NAME} ${VERSION} Setup: Install Options A" - WriteIniStr "$PLUGINSDIR\ioA.ini" "Settings" "CancelConfirm" "Are you sure you want to quit ${NAME} Setup?" - WriteIniStr "$PLUGINSDIR\ioA.ini" "Settings" "CancelConfirmCaption" "${NAME} ${VERSION} Setup" - WriteIniStr "$PLUGINSDIR\ioA.ini" "Settings" "CancelConfirmFlags" "MB_ICONEXCLAMATION" - WriteIniStr "$PLUGINSDIR\ioA.ini" "Settings" "BackButtonText" $(MUI_BUTTONTEXT_BACK) - WriteIniStr "$PLUGINSDIR\ioA.ini" "Settings" "NextButtonText" $(MUI_BUTTONTEXT_NEXT) + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Settings" "Title" "${NAME} ${VERSION} Setup: Install Options A" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Settings" "CancelConfirm" "Are you sure you want to quit ${NAME} Setup?" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Settings" "CancelConfirmCaption" "${NAME} ${VERSION} Setup" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Settings" "CancelConfirmFlags" "MB_ICONEXCLAMATION" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Settings" "BackButtonText" $(MUI_BUTTONTEXT_BACK) + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Settings" "NextButtonText" $(MUI_BUTTONTEXT_NEXT) !insertmacro MUI_INSTALLOPTIONS_SHOW 2 "ioA.ini" "" "IO" ;Next page is an IO page !insertmacro MUI_PAGE_STOP 2 !insertmacro MUI_PAGE_START 3 !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_IO_TITLE) $(MUI_TEXT_IO_SUBTITLE) - WriteIniStr "$PLUGINSDIR\ioB.ini" "Settings" "Title" "${NAME} ${VERSION} Setup: Install Options B" - WriteIniStr "$PLUGINSDIR\ioB.ini" "Settings" "CancelConfirm" "Are you sure you want to quit ${NAME} Setup?" - WriteIniStr "$PLUGINSDIR\ioB.ini" "Settings" "CancelConfirmCaption" "${NAME} ${VERSION} Setup" - WriteIniStr "$PLUGINSDIR\ioB.ini" "Settings" "CancelConfirmFlags" "MB_ICONEXCLAMATION" - WriteIniStr "$PLUGINSDIR\ioB.ini" "Settings" "BackButtonText" $(MUI_BUTTONTEXT_BACK) - WriteIniStr "$PLUGINSDIR\ioB.ini" "Settings" "NextButtonText" $(MUI_BUTTONTEXT_NEXT) + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Settings" "Title" "${NAME} ${VERSION} Setup: Install Options B" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Settings" "CancelConfirm" "Are you sure you want to quit ${NAME} Setup?" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Settings" "CancelConfirmCaption" "${NAME} ${VERSION} Setup" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Settings" "CancelConfirmFlags" "MB_ICONEXCLAMATION" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Settings" "BackButtonText" $(MUI_BUTTONTEXT_BACK) + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Settings" "NextButtonText" $(MUI_BUTTONTEXT_NEXT) !insertmacro MUI_INSTALLOPTIONS_SHOW 3 "ioB.ini" "IO" "" ;Previous page is an IO page !insertmacro MUI_PAGE_STOP 3 @@ -170,13 +178,13 @@ Function SetPage !insertmacro MUI_PAGE_START 6 !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_IO_TITLE) $(MUI_TEXT_IO_SUBTITLE) - WriteIniStr "$PLUGINSDIR\ioC.ini" "Settings" "Title" "${NAME} ${VERSION} Setup: Install Options C" - WriteIniStr "$PLUGINSDIR\ioC.ini" "Settings" "CancelConfirm" "Are you sure you want to quit ${NAME} Setup?" - WriteIniStr "$PLUGINSDIR\ioC.ini" "Settings" "CancelConfirmCaption" "${NAME} ${VERSION} Setup" - WriteIniStr "$PLUGINSDIR\ioC.ini" "Settings" "CancelConfirmFlags" "MB_ICONEXCLAMATION" - WriteIniStr "$PLUGINSDIR\ioC.ini" "Settings" "BackButtonText" $(MUI_BUTTONTEXT_BACK) - WriteIniStr "$PLUGINSDIR\ioC.ini" "Settings" "NextButtonText" $(MUI_BUTTONTEXT_INSTALL) - !insertmacro MUI_INSTALLOPTIONS_SHOW 6 "ioC.ini" "" "" ;Next/previous pages are NO IO pages + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioC.ini" "Settings" "Title" "${NAME} ${VERSION} Setup: Install Options C" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioC.ini" "Settings" "CancelConfirm" "Are you sure you want to quit ${NAME} Setup?" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioC.ini" "Settings" "CancelConfirmCaption" "${NAME} ${VERSION} Setup" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioC.ini" "Settings" "CancelConfirmFlags" "MB_ICONEXCLAMATION" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioC.ini" "Settings" "BackButtonText" $(MUI_BUTTONTEXT_BACK) + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioC.ini" "Settings" "NextButtonText" $(MUI_BUTTONTEXT_INSTALL) + !insertmacro MUI_INSTALLOPTIONS_SHOW 6 "ioC.ini" "" "" ;Next/previous pages are no IO pages !insertmacro MUI_PAGE_STOP 6 !insertmacro MUI_PAGE_START 7 diff --git a/Examples/Modern UI/ioA.ini b/Examples/Modern UI/ioA.ini index ecdca4ea..a726014b 100644 --- a/Examples/Modern UI/ioA.ini +++ b/Examples/Modern UI/ioA.ini @@ -4,8 +4,8 @@ BackEnabled=1 [Field 1] Type=label -text=Install Options Page A -left=0 -right=350 -top=0 -bottom=25 \ No newline at end of file +Text=Install Options Page A +Left=0 +Right=110 +Top=0 +Bottom=15 \ No newline at end of file diff --git a/Examples/Modern UI/ioB.ini b/Examples/Modern UI/ioB.ini index 8fd5954a..8d205b44 100644 --- a/Examples/Modern UI/ioB.ini +++ b/Examples/Modern UI/ioB.ini @@ -4,8 +4,8 @@ BackEnabled=1 [Field 1] Type=label -text=Install Options Page B -left=0 -right=350 -top=0 -bottom=25 \ No newline at end of file +Text=Install Options Page B +Left=0 +Right=110 +Top=0 +Bottom=15 \ No newline at end of file diff --git a/Examples/Modern UI/ioC.ini b/Examples/Modern UI/ioC.ini index 51e47015..91b71ff6 100644 --- a/Examples/Modern UI/ioC.ini +++ b/Examples/Modern UI/ioC.ini @@ -1,11 +1,20 @@ [Settings] -NumFields=1 +NumFields=2 BackEnabled=1 [Field 1] Type=label -text=Instal Options Page C -left=0 -right=350 -top=0 -bottom=25 \ No newline at end of file +Text=Instal Options Page C +Left=0 +Right=110 +Top=0 +Bottom=15 + +[Field 2] +Type=checkbox +Text=Display a MessageBox +Left=0 +Right=125 +Top=40 +Bottom=55 +State=1 \ No newline at end of file