diff --git a/Contrib/Modern UI/Changelog.txt b/Contrib/Modern UI/Changelog.txt index edd4d53a..3238e72d 100644 --- a/Contrib/Modern UI/Changelog.txt +++ b/Contrib/Modern UI/Changelog.txt @@ -1,17 +1,22 @@ NSIS Modern User Interface - VERSION HISTORY -1.65 - June 16, 2003 +1.65 - July 16, 2003 * New page configuration system, no different system for installers with custom pages * Default windows color for the license text background -* New format for example scripts +* Example script updates (new format, user variables) * Improved registry storage for Start Menu folder * ReserveFile macro for StartMenu plug-in * Option to always show the language selection dialog (even if a language has been stored in the registry) * Checkboxes on Finish page can be used to call a function +* Support for custom leave functions for Start Menu Folder, + Welcome and Finish pages * Support for a link on the Finish page +* New macro to get Start Menu folder in uninstaller * Options to disable bitmap stretching +* Components page description box info text: always displayed + when mouse is outside box, disabled style 1.64 - April 27, 2003 * Support for license page with checkbox or radiobuttons to let the diff --git a/Contrib/Modern UI/Readme.html b/Contrib/Modern UI/Readme.html index 0bf245dc..104ffa93 100644 --- a/Contrib/Modern UI/Readme.html +++ b/Contrib/Modern UI/Readme.html @@ -224,7 +224,7 @@ follow these steps:

!insertmacro MUI_STARTMENU_WRITE_END

MUI_STARTMENUPAGE_VARIABLE variable
- Variable to store the current Start Menu Folder. Default is $9. + Variable to store the current Start Menu Folder. Default is $MUI_STARTMENU_FOLDER. You cannot use this variable in your script (or you should Push/Pop it).

MUI_STARTMENUPAGE_DEFAULTFOLDER folder
The default Start Menu Folder. For installers with multiple languages, you can use a language string as value.

@@ -238,11 +238,10 @@ follow these steps:

remember the users preference. You should also use it in the uninstaller to remove the Start Menu folders. Don't forget to remove this key in the uninstaller.

-

In the uninstaller, these macro to get the Start Menu folder:

+

In the uninstaller, use the MUI_STARTMENU_GETFOLDER macro to get the Start Menu folder:

-!insertmacro MUI_STARTMENU_DELETE_BEGIN $R0 ;You can also use another variable
+!insertmacro MUI_STARTMENU_GETFOLDER $R0 ;You can also use another variable
   Delete "$SMPROGRAMS\$R0\Your Shortcut.lnk"
-!insertmacro MUI_STARTMENU_DELETE_END
 

Finish Page Settings

@@ -505,6 +504,10 @@ FunctionEnd

For custom fonts and colors, macro's for the initDialog and show functions of InstallOptions are also available:

+Var HWND
+Var DLGITEM
+Var FONT
+
 LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page Title"
 LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "A subtitle"
 
@@ -512,24 +515,16 @@ Function FunctionName ;FunctionName defined with Page command
 
   !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
 
-  Push $R0
-  Push $R1
-  Push $R2
-
-    !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioFile.ini"
-    Pop $R0 ;HWND of dialog
+  !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioFile.ini"
+  Pop $HWND ;HWND of dialog
     
-    GetDlgItem $R1 $R0 1200 ;1200 + Field number - 1
+  GetDlgItem $DLGITEM $HWND 1200 ;1200 + Field number - 1
     
-    ;$R1 contains the HWND of the first field
-    CreateFont $R2 "Tahoma" 10 700 
-    SendMessage $R1 ${WM_SETFONT} $R2 0
+  ;$DLGITEM contains the HWND of the first field
+  CreateFont $FONT "Tahoma" 10 700 
+  SendMessage $DLGITEM ${WM_SETFONT} $FONT 0
 	
-    !insertmacro MUI_INSTALLOPTIONS_SHOW
-	
-  Pop $R2
-  Pop $R1
-  Pop $R0
+  !insertmacro MUI_INSTALLOPTIONS_SHOW
 
 FunctionEnd
 
@@ -608,7 +603,8 @@ MUI_CUSTOMFUNCTION_UNGUIINIT

Welcome Page
MUI_CUSTOMFUNCTION_WELCOME_PRE - You can write to the IO INI file of the page (ioSpecial.ini)
-MUI_CUSTOMFUNCTION_WELCOME_SHOW - ${MUI_HWND} contains HWND of Welcome dialog +MUI_CUSTOMFUNCTION_WELCOME_SHOW - $MUI_HWND contains HWND of Welcome dialog +MUI_CUSTOMFUNCTION_WELCOME_LEAVE

License Page
@@ -642,7 +638,8 @@ MUI_CUSTOMFUNCTION_INSTFILES_LEAVE

Finish Page
MUI_CUSTOMFUNCTION_FINISH_PRE - You can write to the IO INI file of the page (ioSpecial.ini)
-MUI_CUSTOMFUNCTION_FINISH_SHOW - ${MUI_HWND} contains HWND of Finish dialog +MUI_CUSTOMFUNCTION_FINISH_SHOW - $MUI_HWND contains HWND of Finish dialog +MUI_CUSTOMFUNCTION_FINISH_LEAVE

Installer Abort
@@ -662,19 +659,24 @@ MUI_UNCUSTOMFUNCTION_INSTFILES_LEAVE

Version history

@@ -694,29 +696,6 @@ MUI_UNCUSTOMFUNCTION_INSTFILES_LEAVE
  • Language files have to be updated
  • -

    -

    Complete version history

    Credits

    Made by Joost Verburg.
    diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh index 2cc36338..00bf3ba3 100644 --- a/Contrib/Modern UI/System.nsh +++ b/Contrib/Modern UI/System.nsh @@ -22,14 +22,19 @@ !include "WinMessages.nsh" -!define MUI_TEMP1 $R0 -!define MUI_TEMP2 $R1 -!define MUI_TEMP3 $R2 -!define MUI_HWND ${MUI_TEMP1} +!macro MUI_DEFINEVARS + + Var MUI_TEMP1 + Var MUI_TEMP2 + + !ifdef MUI_WELCOMEPAGE | MUI_FINISHPAGE + Var MUI_TEMP3 + Var MUI_HWND + !endif + +!macroend !macro MUI_INTERFACE - - ;User interface !ifndef MUI_UI !define MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe" @@ -154,14 +159,9 @@ !verbose 3 !endif - ;Set text on inner dialogs component - Push ${MUI_TEMP1} - - FindWindow ${MUI_TEMP1} "#32770" "" $HWNDPARENT - GetDlgItem ${MUI_TEMP1} ${MUI_TEMP1} ${CONTROL} - SendMessage ${MUI_TEMP1} ${WM_SETTEXT} 0 "STR:${TEXT}" - - Pop ${MUI_TEMP1} + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${CONTROL} + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}" !ifndef MUI_MANUALVERBOSE !verbose 4 @@ -175,15 +175,10 @@ !verbose 3 !endif - ;Set text on the white rectangle - Push ${MUI_TEMP1} - - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1037 - SendMessage ${MUI_TEMP1} ${WM_SETTEXT} 0 "STR:${TEXT}" - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1038 - SendMessage ${MUI_TEMP1} ${WM_SETTEXT} 0 "STR:${SUBTEXT}" - - Pop ${MUI_TEMP1} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}" + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${SUBTEXT}" !ifndef MUI_MANUALVERBOSE !verbose 4 @@ -193,14 +188,15 @@ !macro MUI_DESCRIPTION_BEGIN - Push ${MUI_TEMP1} + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043 - FindWindow ${MUI_TEMP1} "#32770" "" $HWNDPARENT - GetDlgItem ${MUI_TEMP1} ${MUI_TEMP1} 1043 - - StrCmp $0 -1 0 +3 - SendMessage ${MUI_TEMP1} ${WM_SETTEXT} 0 "STR:" + StrCmp $0 -1 0 mui.description_begin_done + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:" + EnableWindow $MUI_TEMP1 0 + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO)" Goto mui.description_done + mui.description_begin_done: !macroend @@ -210,11 +206,12 @@ !verbose 3 !endif - ;Set text on the Description frame - - StrCmp $0 ${VAR} 0 +3 - SendMessage ${MUI_TEMP1} ${WM_SETTEXT} 0 "STR:${TEXT}" + StrCmp $0 ${VAR} 0 mui.description_${VAR}_done + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:" + EnableWindow $MUI_TEMP1 1 + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}" Goto mui.description_done + mui.description_${VAR}_done: !ifndef MUI_MANUALVERBOSE !verbose 4 @@ -229,7 +226,6 @@ !endif mui.description_done: - Pop ${MUI_TEMP1} !ifndef MUI_MANUALVERBOSE !verbose 4 @@ -272,8 +268,6 @@ !macro MUI_ABORTWARNING - ;Warning when Cancel button is pressed - MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(MUI_TEXT_ABORTWARNING)" IDYES quit Abort quit: @@ -299,63 +293,51 @@ !macro MUI_GUIINIT_BASIC - Push ${MUI_TEMP1} - Push ${MUI_TEMP2} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + CreateFont $MUI_TEMP2 "$(MUI_FONT_HEADER)" "$(MUI_FONTSIZE_HEADER)" "$(MUI_FONTSTYLE_HEADER)" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 + SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1037 - CreateFont ${MUI_TEMP2} "$(MUI_FONT_HEADER)" "$(MUI_FONTSIZE_HEADER)" "$(MUI_FONTSTYLE_HEADER)" - SendMessage ${MUI_TEMP1} ${WM_SETFONT} ${MUI_TEMP2} 0 - SetBkColor ${MUI_TEMP1} "${MUI_BGCOLOR}" + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1038 - SetBkColor ${MUI_TEMP1} "${MUI_BGCOLOR}" + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034 + SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1034 - SetBkColor ${MUI_TEMP1} "${MUI_BGCOLOR}" + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 + SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1039 - SetBkColor ${MUI_TEMP1} "${MUI_BGCOLOR}" - - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1028 - SetBkColor ${MUI_TEMP1} -1 - GetWindowText ${MUI_TEMP2} ${MUI_TEMP1} - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1256 - SetBkColor ${MUI_TEMP1} -1 - SendMessage ${MUI_TEMP1} ${WM_SETTEXT} ${NSIS_MAX_STRLEN} "STR:${MUI_TEMP2}" - - Pop ${MUI_TEMP2} - Pop ${MUI_TEMP1} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + SetBkColor $MUI_TEMP1 -1 + GetWindowText $MUI_TEMP2 $MUI_TEMP1 + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + SetBkColor $MUI_TEMP1 -1 + SendMessage $MUI_TEMP1 ${WM_SETTEXT} ${NSIS_MAX_STRLEN} "STR:$MUI_TEMP2" !macroend !macro MUI_UNGUIINIT_BASIC - Push ${MUI_TEMP1} - Push ${MUI_TEMP2} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + CreateFont $MUI_TEMP2 "$(un.MUI_FONT_HEADER)" "$(un.MUI_FONTSIZE_HEADER)" "$(un.MUI_FONTSTYLE_HEADER)" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 + SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1037 - CreateFont ${MUI_TEMP2} "$(un.MUI_FONT_HEADER)" "$(un.MUI_FONTSIZE_HEADER)" "$(un.MUI_FONTSTYLE_HEADER)" - SendMessage ${MUI_TEMP1} ${WM_SETFONT} ${MUI_TEMP2} 0 - SetBkColor ${MUI_TEMP1} "${MUI_BGCOLOR}" + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1038 - SetBkColor ${MUI_TEMP1} "${MUI_BGCOLOR}" + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034 + SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1034 - SetBkColor ${MUI_TEMP1} "${MUI_BGCOLOR}" + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 + SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1039 - SetBkColor ${MUI_TEMP1} "${MUI_BGCOLOR}" - - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1028 - SetBkColor ${MUI_TEMP1} -1 - GetWindowText ${MUI_TEMP2} ${MUI_TEMP1} - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1256 - SetBkColor ${MUI_TEMP1} -1 - SendMessage ${MUI_TEMP1} ${WM_SETTEXT} ${NSIS_MAX_STRLEN} "STR:${MUI_TEMP2}" - - Pop ${MUI_TEMP2} - Pop ${MUI_TEMP1} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + SetBkColor $MUI_TEMP1 -1 + GetWindowText $MUI_TEMP2 $MUI_TEMP1 + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + SetBkColor $MUI_TEMP1 -1 + SendMessage $MUI_TEMP1 ${WM_SETTEXT} ${NSIS_MAX_STRLEN} "STR:$MUI_TEMP2" !macroend @@ -363,20 +345,16 @@ !ifdef MUI_WELCOMEPAGE | MUI_FINISHPAGE - ;Extract InstallOptions INI Files !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "${MUI_SPECIALINI}" "ioSpecial.ini" !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "${MUI_SPECIALBITMAP}" "modern-wizard.bmp" - - ;Write bitmap location + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Text" "$PLUGINSDIR\modern-wizard.bmp" - ;Write Welcome text !ifdef MUI_WELCOMEPAGE !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Text" "$(MUI_TEXT_WELCOME_INFO_TITLE)" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "$(MUI_TEXT_WELCOME_INFO_TEXT)" !endif - ;Set stretching option !ifdef MUI_SPECIALBITMAP_NOSTRETCH !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Flags" "" !endif @@ -415,9 +393,9 @@ !macro MUI_STARTMENU_INITDEFINES - ;Check defines !ifndef MUI_STARTMENUPAGE_VARIABLE - !define MUI_STARTMENUPAGE_VARIABLE "$9" + Var MUI_STARTMENU_FOLDER + !define MUI_STARTMENUPAGE_VARIABLE "$MUI_STARTMENU_FOLDER" !endif !ifndef MUI_STARTMENUPAGE_DEFAULTFOLDER @@ -430,9 +408,9 @@ !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME - ReadRegStr ${MUI_TEMP1} "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" - StrCmp ${MUI_TEMP1} "" +3 - StrCpy "${VAR}" ${MUI_TEMP1} + ReadRegStr $MUI_TEMP1 "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" + StrCmp $MUI_TEMP1 "" +3 + StrCpy "${VAR}" $MUI_TEMP1 Goto +2 StrCpy "${VAR}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" @@ -460,13 +438,11 @@ !ifndef MUI_MANUALVERBOSE !verbose 3 !endif - - Push ${MUI_TEMP1} - StrCpy ${MUI_TEMP1} ${MUI_STARTMENUPAGE_VARIABLE} 1 - StrCmp ${MUI_TEMP1} ">" mui.startmenu_write_done + StrCpy $MUI_TEMP1 ${MUI_STARTMENUPAGE_VARIABLE} 1 + StrCmp $MUI_TEMP1 ">" mui.startmenu_write_done - !insertmacro MUI_STARTMENU_GETFOLDER_IFEMPTY ${MUI_STARTMENUPAGE_VARIABLE} + !insertmacro MUI_STARTMENU_GETFOLDER_IFEMPTY ${MUI_STARTMENUPAGE_VARIABLE} !ifndef MUI_MANUALVERBOSE !verbose 4 @@ -486,28 +462,12 @@ mui.startmenu_write_done: - Pop ${MUI_TEMP1} - !ifndef MUI_MANUALVERBOSE !verbose 4 !endif !macroend -!macro MUI_STARTMENU_DELETE_BEGIN VAR - - Push ${MUI_TEMP1} - - !insertmacro MUI_STARTMENU_GETFOLDER ${VAR} - -!macroend - -!macro MUI_STARTMENU_DELETE_END - - Pop ${MUI_TEMP1} - -!macroend - !macro MUI_LANGDLL_DISPLAY !ifndef MUI_MANUALVERBOSE @@ -523,17 +483,15 @@ !endif !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME - Push ${MUI_TEMP1} - ReadRegStr ${MUI_TEMP1} "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}" - StrCmp ${MUI_TEMP1} "" showlangdialog - StrCpy $LANGUAGE ${MUI_TEMP1} - !ifndef MUI_LANGDLL_ALWAYSSHOW - Goto mui.langdll_done - !endif - showlangdialog: - - Pop ${MUI_TEMP1} + ReadRegStr $MUI_TEMP1 "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}" + StrCmp $MUI_TEMP1 "" showlangdialog + StrCpy $LANGUAGE $MUI_TEMP1 + !ifndef MUI_LANGDLL_ALWAYSSHOW + Goto mui.langdll_done + !endif + showlangdialog: + !endif LangDLL::LangDialog "${MUI_TEXT_LANGDLL_WINDOWTITLE}" "${MUI_TEXT_LANGDLL_INFO}" A ${MUI_LANGDLL_PUSHLIST} "" @@ -569,11 +527,9 @@ !endif !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME - - Push ${MUI_TEMP1} - ReadRegStr ${MUI_TEMP1} "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}" - StrCmp ${MUI_TEMP1} "" 0 mui.ungetlanguage_setlang + ReadRegStr $MUI_TEMP1 "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}" + StrCmp $MUI_TEMP1 "" 0 mui.ungetlanguage_setlang !endif @@ -581,15 +537,13 @@ !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME - Goto mui.ungetlanguage_done - - mui.ungetlanguage_setlang: - StrCpy $LANGUAGE ${MUI_TEMP1} + Goto mui.ungetlanguage_done + + mui.ungetlanguage_setlang: + StrCpy $LANGUAGE $MUI_TEMP1 - mui.ungetlanguage_done: - - Pop ${MUI_TEMP1} - + mui.ungetlanguage_done: + !endif !ifndef MUI_MANUALVERBOSE @@ -611,7 +565,7 @@ !define MUI_WELCOMEPAGE !endif - Page custom mui.Welcome "" "" "MUI_INSTALLBUTTON_WELCOME" + Page custom mui.WelcomePre mui.WelcomeLeave "" "MUI_INSTALLBUTTON_WELCOME" !ifndef MUI_MANUALVERBOSE !verbose 4 @@ -715,7 +669,7 @@ !define MUI_FINISHPAGE !endif - Page custom mui.Finish + Page custom mui.FinishPre mui.FinishLeave !ifndef MUI_MANUALVERBOSE !verbose 4 @@ -772,7 +726,6 @@ !verbose 3 !endif - ;Init plugin system InitPluginsDir File "/oname=$PLUGINSDIR\${FILE}" "${FILE}" @@ -789,7 +742,6 @@ !verbose 3 !endif - ;Init plugin system InitPluginsDir File "/oname=$PLUGINSDIR\${FILENAME}" "${FILE}" @@ -806,12 +758,8 @@ !verbose 3 !endif - Push ${MUI_TEMP1} - InstallOptions::dialog "$PLUGINSDIR\${FILE}" - Pop ${MUI_TEMP1} - - Pop ${MUI_TEMP1} + Pop $MUI_TEMP1 !ifndef MUI_MANUALVERBOSE !verbose 4 @@ -852,13 +800,9 @@ !ifndef MUI_MANUALVERBOSE !verbose 3 !endif - - Push ${MUI_TEMP1} InstallOptions::show - Pop ${MUI_TEMP1} - - Pop ${MUI_TEMP1} + Pop $MUI_TEMP1 !ifndef MUI_MANUALVERBOSE !verbose 4 @@ -928,7 +872,7 @@ !macro MUI_FUNCTIONS_PAGES !ifdef MUI_WELCOMEPAGE - !insertmacro MUI_FUNCTIONS_WELCOMEPAGE mui.Welcome + !insertmacro MUI_FUNCTIONS_WELCOMEPAGE mui.WelcomePre mui.WelcomeLeave !endif !ifdef MUI_LICENSEPAGE @@ -950,74 +894,73 @@ !insertmacro MUI_FUNCTIONS_INSTFILESPAGE mui.InstFilesPre mui.InstFilesShow mui.InstFilesLeave !ifdef MUI_FINISHPAGE - !insertmacro MUI_FUNCTIONS_FINISHPAGE mui.Finish + !insertmacro MUI_FUNCTIONS_FINISHPAGE mui.FinishPre mui.FinishLeave !endif !macroend -!macro MUI_FUNCTIONS_WELCOMEPAGE FUNCTION +!macro MUI_FUNCTIONS_WELCOMEPAGE PRE LEAVE - Function "${FUNCTION}" + Function "${PRE}" - Push ${MUI_TEMP1} - Push ${MUI_TEMP2} - Push ${MUI_TEMP3} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1028 - ShowWindow ${MUI_TEMP1} ${SW_HIDE} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1256 - ShowWindow ${MUI_TEMP1} ${SW_HIDE} - - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1035 - ShowWindow ${MUI_TEMP1} ${SW_HIDE} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1045 - ShowWindow ${MUI_TEMP1} ${SW_NORMAL} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} - !ifdef MUI_CUSTOMFUNCTION_WELCOME_PRE - Call "${MUI_CUSTOMFUNCTION_WELCOME_PRE}" - !endif + !ifdef MUI_CUSTOMFUNCTION_WELCOME_PRE + Call "${MUI_CUSTOMFUNCTION_WELCOME_PRE}" + !endif - !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioSpecial.ini" - - Pop ${MUI_TEMP1} + !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioSpecial.ini" + Pop $MUI_HWND - SetBkColor ${MUI_TEMP1} "${MUI_BGCOLOR}" + SetBkColor $MUI_HWND "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1201 - SetBkColor ${MUI_TEMP2} "${MUI_BGCOLOR}" - CreateFont ${MUI_TEMP3} "$(MUI_FONT_TITLE)" "$(MUI_FONTSIZE_TITLE)" "$(MUI_FONTSTYLE_TITLE)" - SendMessage ${MUI_TEMP2} ${WM_SETFONT} ${MUI_TEMP3} 0 + GetDlgItem $MUI_TEMP2 $MUI_HWND 1201 + SetBkColor $MUI_TEMP2 "${MUI_BGCOLOR}" + CreateFont $MUI_TEMP3 "$(MUI_FONT_TITLE)" "$(MUI_FONTSIZE_TITLE)" "$(MUI_FONTSTYLE_TITLE)" + SendMessage $MUI_TEMP2 ${WM_SETFONT} $MUI_TEMP3 0 - GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1202 - SetBkColor ${MUI_TEMP2} "${MUI_BGCOLOR}" + GetDlgItem $MUI_TEMP2 $MUI_HWND 1202 + SetBkColor $MUI_TEMP2 "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1200 - SetBkColor ${MUI_TEMP2} "${MUI_BGCOLOR}" + GetDlgItem $MUI_TEMP2 $MUI_HWND 1200 + SetBkColor $MUI_TEMP2 "${MUI_BGCOLOR}" - !ifdef MUI_CUSTOMFUNCTION_WELCOME_SHOW - Call "${MUI_CUSTOMFUNCTION_WELCOME_SHOW}" - !endif + !ifdef MUI_CUSTOMFUNCTION_WELCOME_SHOW + Call "${MUI_CUSTOMFUNCTION_WELCOME_SHOW}" + !endif - !insertmacro MUI_INSTALLOPTIONS_SHOW + !insertmacro MUI_INSTALLOPTIONS_SHOW + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1028 - ShowWindow ${MUI_TEMP1} ${SW_NORMAL} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1256 - ShowWindow ${MUI_TEMP1} ${SW_NORMAL} - - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1035 - ShowWindow ${MUI_TEMP1} ${SW_NORMAL} - - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1045 - ShowWindow ${MUI_TEMP1} ${SW_HIDE} - - Pop ${MUI_TEMP3} - Pop ${MUI_TEMP2} - Pop ${MUI_TEMP1} - + FunctionEnd + + Function "${LEAVE}" + + !ifdef MUI_CUSTOMFUNCTION_WELCOME_LEAVE + Call "${MUI_CUSTOMFUNCTION_WELCOME_LEAVE}" + !endif + FunctionEnd !macroend @@ -1057,6 +1000,9 @@ Function "${SHOW}" !insertmacro MUI_INNERDIALOG_TEXT 1042 $(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE) + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043 + EnableWindow $MUI_TEMP1 0 !insertmacro MUI_INNERDIALOG_TEXT 1043 $(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO) !ifdef MUI_CUSTOMFUNCTION_COMPONENTS_SHOW Call "${MUI_CUSTOMFUNCTION_COMPONENTS_SHOW}" @@ -1103,32 +1049,26 @@ Call "${MUI_CUSTOMFUNCTION_STARTMENU_PRE}" !endif - Push ${MUI_TEMP1} + !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME - !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME - - StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 +4 + StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 +4 - ReadRegStr ${MUI_TEMP1} "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" - StrCmp ${MUI_TEMP1} "" +2 - StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" ${MUI_TEMP1} + ReadRegStr $MUI_TEMP1 "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" + StrCmp $MUI_TEMP1 "" +2 + StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" $MUI_TEMP1 - !endif + !endif - !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE) + !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE) - !ifndef MUI_STARTMENUPAGE_NODISABLE - StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - !else - StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - !endif + !ifndef MUI_STARTMENUPAGE_NODISABLE + StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !else + StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !endif - Pop ${MUI_TEMP1} - - StrCmp ${MUI_TEMP1} "success" 0 +2 - Pop "${MUI_STARTMENUPAGE_VARIABLE}" - - Pop ${MUI_TEMP1} + StrCmp $MUI_TEMP1 "success" 0 +2 + Pop "${MUI_STARTMENUPAGE_VARIABLE}" FunctionEnd @@ -1169,27 +1109,22 @@ !macroend -!macro MUI_FUNCTIONS_FINISHPAGE FUNCTION +!macro MUI_FUNCTIONS_FINISHPAGE PRE LEAVE - Function "${FUNCTION}" - - Push ${MUI_TEMP1} - Push ${MUI_TEMP2} - Push ${MUI_TEMP3} + Function "${PRE}" - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1028 - ShowWindow ${MUI_TEMP1} ${SW_HIDE} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1256 - ShowWindow ${MUI_TEMP1} ${SW_HIDE} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1035 - ShowWindow ${MUI_TEMP1} ${SW_HIDE} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1045 - ShowWindow ${MUI_TEMP1} ${SW_NORMAL} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} - ;Write Finish text !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Text" "$(MUI_TEXT_FINISH_INFO_TITLE)" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Top" "45" @@ -1309,133 +1244,126 @@ !endif !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioSpecial.ini" - - Pop ${MUI_TEMP1} - - SetBkColor ${MUI_TEMP1} "${MUI_BGCOLOR}" + Pop $MUI_HWND - GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1201 - SetBkColor ${MUI_TEMP2} "${MUI_BGCOLOR}" - CreateFont ${MUI_TEMP3} "$(MUI_FONT_TITLE)" "$(MUI_FONTSIZE_TITLE)" "$(MUI_FONTSTYLE_TITLE)" - SendMessage ${MUI_TEMP2} ${WM_SETFONT} ${MUI_TEMP3} 0 - - GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1202 - SetBkColor ${MUI_TEMP2} "${MUI_BGCOLOR}" - - !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT + SetBkColor $MUI_HWND "${MUI_BGCOLOR}" + + GetDlgItem $MUI_TEMP2 $MUI_HWND 1201 + SetBkColor $MUI_TEMP2 "${MUI_BGCOLOR}" + CreateFont $MUI_TEMP3 "$(MUI_FONT_TITLE)" "$(MUI_FONTSIZE_TITLE)" "$(MUI_FONTSTYLE_TITLE)" + SendMessage $MUI_TEMP2 ${WM_SETFONT} $MUI_TEMP3 0 + + GetDlgItem $MUI_TEMP2 $MUI_HWND 1202 + SetBkColor $MUI_TEMP2 "${MUI_BGCOLOR}" + + !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT - IfRebootFlag "" mui.finish_noreboot_show - - GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1203 - SetBkColor ${MUI_TEMP2} "${MUI_BGCOLOR}" + IfRebootFlag "" mui.finish_noreboot_show + + GetDlgItem $MUI_TEMP2 $MUI_TEMP1 1203 + SetBkColor $MUI_TEMP2 "${MUI_BGCOLOR}" + + GetDlgItem $MUI_TEMP2 $MUI_TEMP1 1204 + SetBkColor $MUI_TEMP2 "${MUI_BGCOLOR}" - GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1204 - SetBkColor ${MUI_TEMP2} "${MUI_BGCOLOR}" - - Goto mui.finish_show + Goto mui.finish_show - mui.finish_noreboot_show: - - !endif + mui.finish_noreboot_show: - !ifdef MUI_FINISHPAGE_RUN - GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1203 - SetBkColor ${MUI_TEMP2} "${MUI_BGCOLOR}" - !endif + !endif + + !ifdef MUI_FINISHPAGE_RUN + GetDlgItem $MUI_TEMP2 $MUI_HWND 1203 + SetBkColor $MUI_TEMP2 "${MUI_BGCOLOR}" + !endif - !ifdef MUI_FINISHPAGE_SHOWREADME - !ifndef MUI_FINISHPAGE_RUN - GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1203 - !else - GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1204 - !endif - SetBkColor ${MUI_TEMP2} "${MUI_BGCOLOR}" + !ifdef MUI_FINISHPAGE_SHOWREADME + !ifndef MUI_FINISHPAGE_RUN + GetDlgItem $MUI_TEMP2 $MUI_HWND 1203 + !else + GetDlgItem $MUI_TEMP2 $MUI_HWND 1204 !endif + SetBkColor $MUI_TEMP2 "${MUI_BGCOLOR}" + !endif + + !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT + mui.finish_show: + !endif + + !ifdef MUI_CUSTOMFUNCTION_FINISH_SHOW + Call "${MUI_CUSTOMFUNCTION_FINISH_SHOW}" + !endif + + !insertmacro MUI_INSTALLOPTIONS_SHOW_RETURN + StrCmp $MUI_TEMP1 "success" 0 mui.finish_done + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT + + IfRebootFlag "" mui.finish_noreboot_end + + !insertmacro MUI_INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field 4" "State" - !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT - mui.finish_show: - !endif - - !ifdef MUI_CUSTOMFUNCTION_FINISH_SHOW - Call "${MUI_CUSTOMFUNCTION_FINISH_SHOW}" - !endif - - !insertmacro MUI_INSTALLOPTIONS_SHOW_RETURN - - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1028 - ShowWindow ${MUI_TEMP1} ${SW_NORMAL} - - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1256 - ShowWindow ${MUI_TEMP1} ${SW_NORMAL} - - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1035 - ShowWindow ${MUI_TEMP1} ${SW_NORMAL} - - GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1045 - ShowWindow ${MUI_TEMP1} ${SW_HIDE} - - Pop ${MUI_TEMP1} - StrCmp ${MUI_TEMP1} "success" 0 mui.finish_done - - !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT - - IfRebootFlag "" mui.finish_noreboot_end - - !insertmacro MUI_INSTALLOPTIONS_READ ${MUI_TEMP1} "ioSpecial.ini" "Field 4" "State" - - StrCmp ${MUI_TEMP1} "1" 0 +2 - Reboot + StrCmp $MUI_TEMP1 "1" 0 +2 + Reboot - Goto mui.finish_done + Goto mui.finish_done - mui.finish_noreboot_end: + mui.finish_noreboot_end: - !endif + !endif - !ifdef MUI_FINISHPAGE_RUN - - !insertmacro MUI_INSTALLOPTIONS_READ ${MUI_TEMP1} "ioSpecial.ini" "Field 4" "State" + !ifdef MUI_FINISHPAGE_RUN + + !insertmacro MUI_INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field 4" "State" - StrCmp ${MUI_TEMP1} "1" 0 mui.finish_norun - !ifndef MUI_FINISHPAGE_RUN_FUNCTION - !ifndef MUI_FINISHPAGE_RUN_PARAMETERS - StrCpy ${MUI_TEMP1} "$\"${MUI_FINISHPAGE_RUN}$\"" - !else - StrCpy ${MUI_TEMP1} "$\"${MUI_FINISHPAGE_RUN}$\" ${MUI_FINISHPAGE_RUN_PARAMETERS}" - !endif - Exec "${MUI_TEMP1}" + StrCmp $MUI_TEMP1 "1" 0 mui.finish_norun + !ifndef MUI_FINISHPAGE_RUN_FUNCTION + !ifndef MUI_FINISHPAGE_RUN_PARAMETERS + StrCpy $MUI_TEMP1 "$\"${MUI_FINISHPAGE_RUN}$\"" !else - Call "${MUI_FINISHPAGE_RUN_FUNCTION}" + StrCpy $MUI_TEMP1 "$\"${MUI_FINISHPAGE_RUN}$\" ${MUI_FINISHPAGE_RUN_PARAMETERS}" !endif + Exec "$MUI_TEMP1" + !else + Call "${MUI_FINISHPAGE_RUN_FUNCTION}" + !endif - mui.finish_norun: + mui.finish_norun: - !endif + !endif - !ifdef MUI_FINISHPAGE_SHOWREADME - - !ifndef MUI_FINISHPAGE_RUN - !insertmacro MUI_INSTALLOPTIONS_READ ${MUI_TEMP1} "ioSpecial.ini" "Field 4" "State" - !else - !insertmacro MUI_INSTALLOPTIONS_READ ${MUI_TEMP1} "ioSpecial.ini" "Field 5" "State" - !endif + !ifdef MUI_FINISHPAGE_SHOWREADME + + !ifndef MUI_FINISHPAGE_RUN + !insertmacro MUI_INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field 4" "State" + !else + !insertmacro MUI_INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field 5" "State" + !endif - StrCmp ${MUI_TEMP1} "1" 0 mui.finish_noshowreadme - !ifndef MUI_FINISHPAGE_SHOWREADME_FUNCTION - ExecShell "open" "${MUI_FINISHPAGE_SHOWREADME}" - !else - Call "${MUI_FINISHPAGE_SHOWREADME_FUNCTION}" - !endif - - mui.finish_noshowreadme: - - !endif + StrCmp $MUI_TEMP1 "1" 0 mui.finish_noshowreadme + !ifndef MUI_FINISHPAGE_SHOWREADME_FUNCTION + ExecShell "open" "${MUI_FINISHPAGE_SHOWREADME}" + !else + Call "${MUI_FINISHPAGE_SHOWREADME_FUNCTION}" + !endif - mui.finish_done: - - Pop ${MUI_TEMP3} - Pop ${MUI_TEMP2} - Pop ${MUI_TEMP1} + mui.finish_noshowreadme: + + !endif + + mui.finish_done: !ifdef MUI_CUSTOMFUNCTION_FINISH Call "${MUI_CUSTOMFUNCTION_FINISH}" @@ -1443,6 +1371,14 @@ FunctionEnd + Function "${LEAVE}" + + !ifdef MUI_CUSTOMFUNCTION_FINISH_LEAVE + Call "${MUI_CUSTOMFUNCTION_FINISH_LEAVE}" + !endif + + FunctionEnd + !macroend !macro MUI_FUNCTIONS_DESCRIPTION_BEGIN @@ -1665,6 +1601,8 @@ !define MUI_MANUALVERBOSE_SET !define MUI_MANUALVERBOSE !endif + + !insertmacro MUI_DEFINEVARS !ifdef MUI_STARTMENUPAGE !insertmacro MUI_STARTMENU_INITDEFINES diff --git a/Examples/Modern UI/InstallOptions.nsi b/Examples/Modern UI/InstallOptions.nsi index e0c77f99..40f7ab70 100644 --- a/Examples/Modern UI/InstallOptions.nsi +++ b/Examples/Modern UI/InstallOptions.nsi @@ -2,9 +2,7 @@ ;InstallOptions Example Script ;Written by Joost Verburg -!define TEMP $R0 - -;-------------------------------- +--------------------- ;Include Modern UI !include "MUI.nsh" @@ -27,6 +25,11 @@ ;Get install folder from registry if available InstallDirRegKey HKCU "Software\${MUI_PRODUCT}" "" +;-------------------------------- +;Variables + + Var TEMP + ;-------------------------------- ;Pages @@ -83,10 +86,10 @@ Section "Dummy Section" SecDummy WriteUninstaller "$INSTDIR\Uninstall.exe" ;Read a value from an InstallOptions INI file - !insertmacro MUI_INSTALLOPTIONS_READ ${TEMP} "ioC.ini" "Field 2" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $TEMP "ioC.ini" "Field 2" "State" ;Display a messagebox if check box was checked - StrCmp ${TEMP} "1" "" +2 + StrCmp $TEMP "1" "" +2 MessageBox MB_OK "You checked the check box, here is the MessageBox..." SectionEnd diff --git a/Examples/Modern UI/StartMenu.nsi b/Examples/Modern UI/StartMenu.nsi index 1f0987e1..5882da37 100644 --- a/Examples/Modern UI/StartMenu.nsi +++ b/Examples/Modern UI/StartMenu.nsi @@ -2,8 +2,6 @@ ;Start Menu Folder Selection Example Script ;Written by Joost Verburg -!define TEMP $R0 - ;-------------------------------- ;Include Modern UI @@ -27,6 +25,11 @@ ;Get install folder from registry if available InstallDirRegKey HKCU "Software\${MUI_PRODUCT}" "" +;-------------------------------- +;Variables + + Var TEMP + ;-------------------------------- ;Pages @@ -44,13 +47,6 @@ !define MUI_ABORTWARNING - ;$9 is being used to store the Start Menu Folder. - ;Do not use this variable in your script! - - ;To change this variable, use MUI_STARTMENUPAGE_VARIABLE. - ;Have a look at the Readme for info about other options (default folder, - ;registry). - ;Remember the Start Menu Folder !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${MUI_PRODUCT}" @@ -91,8 +87,8 @@ Section "Dummy Section" SecDummy !insertmacro MUI_STARTMENU_WRITE_BEGIN ;Create shortcuts - CreateDirectory "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}" - CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + CreateDirectory "$SMPROGRAMS\$MUI_STARTMENU_FOLDER" + CreateShortCut "$SMPROGRAMS\$MUI_STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" !insertmacro MUI_STARTMENU_WRITE_END @@ -118,17 +114,21 @@ Section "Uninstall" RMDir "$INSTDIR" - !insertmacro MUI_STARTMENU_DELETE_BEGIN ${TEMP} - Delete "$SMPROGRAMS\${TEMP}\Uninstall.lnk" - ; Only if empty, so it won't delete other shortcuts - StrCpy ${TEMP} "$SMPROGRAMS\${TEMP}" - startMenuDeleteLoop: - RMDir ${TEMP} - GetFullPathName ${TEMP} "${TEMP}\.." - IfErrors startMenuDeleteLoopDone - StrCmp ${TEMP} $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop - startMenuDeleteLoopDone: - !insertmacro MUI_STARTMENU_DELETE_END + !insertmacro MUI_STARTMENU_GETFOLDER $TEMP + + Delete "$SMPROGRAMS\$TEMP\Uninstall.lnk" + + ;Delete empty start menu parent diretories + StrCpy $TEMP "$SMPROGRAMS\$TEMP" + + startMenuDeleteLoop: + RMDir ${TEMP} + GetFullPathName $TEMP "$TEMP\.." + + IfErrors startMenuDeleteLoopDone + + StrCmp ${TEMP} $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop + startMenuDeleteLoopDone: DeleteRegKey /ifempty HKCU "Software\${MUI_PRODUCT}"