From f806c7ce4c3cb04ad768ff207a578f17868e72ff Mon Sep 17 00:00:00 2001
From: joostverburg
If you are using solid compression (by default, solid compression is enabled for BZip2 and +
If you are using solid compression (by default, solid compression is enabled for BZIP2 and LZMA), it's important that files which are being extracted in init- or page functions function are located before other files in the data block, because this will make your installer faster.
If there are File commands in your sections or functions above the init- or page functions, add @@ -668,15 +668,7 @@ LangString DESC_Section2 ${LANG_ENGLISH} "Description of section 2." !insertmacro MUI_FUNCTION_DESCRIPTION_END
For the uninstaller, use the MUI_UNFUNCTION_DESCRIPTION_BEGIN and -MUI_UNFUNCTIONS_DESCRIPTION_END macros:
--ReserveFile "ioFile.ini" ;Your own InstallOptions INI files -ReserveFile "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ;Your header bitmap - -!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ;InstallOptions -!insertmacro MUI_RESERVEFILE_LANGDLL ;LangDLL (language selection dialog) -!insertmacro MUI_RESERVEFILE_STARTMENU ;Start Menu Folder page -+MUI_UNFUNCTIONS_DESCRIPTION_END macros.
If you want add custom pages to your installer, you should insert your own page commands between @@ -823,14 +815,10 @@ inner dialog
-Copyright © 2002-2003 Joost Verburg +Copyright © 2002-2004 Joost Verburg This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh index 519aca36..2d3246d0 100644 --- a/Contrib/Modern UI/System.nsh +++ b/Contrib/Modern UI/System.nsh @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.68 +;NSIS Modern User Interface version 1.69 ;Macro System ;Written by Joost Verburg @@ -8,7 +8,7 @@ ;License: License.txt ;Examples: Examples\Modern UI -!echo "NSIS Modern User Interface version 1.68 - © 2002-2003 Joost Verburg" +!echo "NSIS Modern User Interface version 1.69 - © 2002-2004 Joost Verburg" ;-------------------------------- @@ -32,7 +32,7 @@ !include "WinMessages.nsh" !verbose pop -!define MUI_SYSVERSION "1.68" +!define MUI_SYSVERSION "1.69" Var MUI_TEMP1 Var MUI_TEMP2 @@ -691,7 +691,7 @@ Var MUI_TEMP2 !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}LICENSEPAGE - !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_TEXT_TOP "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_TOP)" + !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_TEXT_TOP "$(MUI_INNERTEXT_LICENSE_TOP)" !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_BUTTON "" !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_CHECKBOX_TEXT "" !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT "" @@ -924,8 +924,10 @@ Var MUI_TEMP2 !define MUI_VAR_HWND !endif - !ifndef MUI_FINISHPAGE_NOAUTOCLOSE - AutoCloseWindow true + !ifndef MUI_PAGE_UNINSTALLER + !ifndef MUI_FINISHPAGE_NOAUTOCLOSE + AutoCloseWindow true + !endif !endif !ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME @@ -2091,9 +2093,23 @@ Var MUI_TEMP2 !macroend -!macro MUI_LANGUAGEFILE_LANGSTRING_NOUNDEF NAME +!macro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE PAGE NAME - LangString "${NAME}" 0 "${${NAME}}" + !ifdef MUI_${PAGE}PAGE | MUI_UN${PAGE}PAGE + LangString "${NAME}" 0 "${${NAME}}" + !undef "${NAME}" + !else + !undef "${NAME}" + !endif + +!macroend + +!macro MUI_LANGUAGEFILE_LANGSTRING_DEFINE DEFINE NAME + + !ifdef "${DEFINE}" + LangString "${NAME}" 0 "${${NAME}}" + !endif + !undef "${NAME}" !macroend @@ -2126,25 +2142,22 @@ Var MUI_TEMP2 !undef MUI_LANGDLL_PUSHLIST !define MUI_LANGDLL_PUSHLIST "'${MUI_${LANGUAGE}_LANGNAME}' ${LANG_${LANGUAGE}} ${MUI_LANGDLL_PUSHLIST_TEMP}" !endif - - !insertmacro MUI_LANGUAGEFILE_LANGSTRING_NOUNDEF "MUI_BGCOLOR" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE WELCOME "MUI_TEXT_WELCOME_INFO_TITLE" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE WELCOME "MUI_TEXT_WELCOME_INFO_TEXT" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE LICENSE "MUI_TEXT_LICENSE_TITLE" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE LICENSE "MUI_TEXT_LICENSE_SUBTITLE" - !ifdef MUI_LICENSEPAGE - !insertmacro MUI_LANGUAGEFILE_LANGSTRING_NOUNDEF "MUI_INNERTEXT_LICENSE_TOP" - !endif + !insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE LICENSE "MUI_INNERTEXT_LICENSE_TOP" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE LICENSE "MUI_INNERTEXT_LICENSE_BOTTOM" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE LICENSE "MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE LICENSE "MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE COMPONENTS "MUI_TEXT_COMPONENTS_TITLE" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE COMPONENTS "MUI_TEXT_COMPONENTS_SUBTITLE" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE COMPONENTS "MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE COMPONENTS "MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO" + !insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE COMPONENTS "MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE" + !insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE COMPONENTS "MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE DIRECTORY "MUI_TEXT_DIRECTORY_TITLE" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE DIRECTORY "MUI_TEXT_DIRECTORY_SUBTITLE" @@ -2163,20 +2176,17 @@ Var MUI_TEMP2 !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_ABORT_TITLE" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_ABORT_SUBTITLE" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_BUTTONTEXT_FINISH" + !insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE FINISH "MUI_BUTTONTEXT_FINISH" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_INFO_TITLE" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_INFO_TEXT" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_INFO_REBOOT" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_REBOOTNOW" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_REBOOTLATER" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_RUN" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_SHOWREADME" + !insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_REBOOTNOW" + !insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_REBOOTLATER" + !insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_RUN" + !insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_SHOWREADME" - !ifdef MUI_ABORTWARNING - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_ABORTWARNING" - !else - !undef MUI_TEXT_ABORTWARNING - !endif + !insertmacro MUI_LANGUAGEFILE_LANGSTRING_DEFINE MUI_ABORTWARNING "MUI_TEXT_ABORTWARNING" + !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE WELCOME "MUI_UNTEXT_WELCOME_INFO_TITLE" !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE WELCOME "MUI_UNTEXT_WELCOME_INFO_TEXT" @@ -2186,11 +2196,7 @@ Var MUI_TEMP2 !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE LICENSE "MUI_UNTEXT_LICENSE_TITLE" !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE LICENSE "MUI_UNTEXT_LICENSE_SUBTITLE" - !ifndef MUI_LICENSEPAGE - !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_INNERTEXT_LICENSE_TOP" - !else - !undef MUI_INNERTEXT_LICENSE_TOP - !endif + !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE LICENSE "MUI_UNINNERTEXT_LICENSE_BOTTOM" !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE LICENSE "MUI_UNINNERTEXT_LICENSE_BOTTOM_CHECKBOX" !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE LICENSE "MUI_UNINNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS" @@ -2214,11 +2220,7 @@ Var MUI_TEMP2 !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE FINISH "MUI_UNTEXT_FINISH_INFO_TEXT" !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE FINISH "MUI_UNTEXT_FINISH_INFO_REBOOT" - !ifdef MUI_UNABORTWARNING - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_ABORTWARNING" - !else - !undef MUI_UNTEXT_ABORTWARNING - !endif + !insertmacro MUI_LANGUAGEFILE_LANGSTRING_DEFINE MUI_UNABORTWARNING "MUI_UNTEXT_ABORTWARNING" !macroend diff --git a/Examples/Modern UI/Basic.nsi b/Examples/Modern UI/Basic.nsi index 803b2c56..381e9acd 100644 --- a/Examples/Modern UI/Basic.nsi +++ b/Examples/Modern UI/Basic.nsi @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.68 +;NSIS Modern User Interface version 1.69 ;Basic Example Script ;Written by Joost Verburg @@ -11,13 +11,13 @@ ;Configuration ;General - Name "Modern UI Test 1.68" + Name "Modern UI Test 1.69" OutFile "Basic.exe" - ;Folder selection page + ;Default installation folder InstallDir "$PROGRAMFILES\Modern UI Test" - ;Get install folder from registry if available + ;Get installation folder from registry if available InstallDirRegKey HKCU "Software\Modern UI Test" "" ;-------------------------------- @@ -50,7 +50,7 @@ Section "Dummy Section" SecDummy ;ADD YOUR OWN STUFF HERE! - ;Store install folder + ;Store installation folder WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR ;Create uninstaller @@ -61,12 +61,14 @@ SectionEnd ;-------------------------------- ;Descriptions + ;Language strings LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + ;Assign language strings to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) !insertmacro MUI_FUNCTION_DESCRIPTION_END - + ;-------------------------------- ;Uninstaller Section diff --git a/Examples/Modern UI/HeaderBitmap.nsi b/Examples/Modern UI/HeaderBitmap.nsi index c59a80a2..8c404daf 100644 --- a/Examples/Modern UI/HeaderBitmap.nsi +++ b/Examples/Modern UI/HeaderBitmap.nsi @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.68 +;NSIS Modern User Interface version 1.69 ;Header Bitmap Example Script ;Written by Joost Verburg @@ -11,13 +11,13 @@ ;Configuration ;General - Name "Modern UI Test 1.68" + Name "Modern UI Test 1.69" OutFile "HeaderBitmap.exe" - ;Folder selection page + ;Default installation folder InstallDir "$PROGRAMFILES\Modern UI Test" - ;Get install folder from registry if available + ;Get installation folder from registry if available InstallDirRegKey HKCU "Software\Modern UI Test" "" ;-------------------------------- @@ -51,7 +51,7 @@ Section "Dummy Section" SecDummy ;ADD YOUR OWN STUFF HERE! - ;Store install folder + ;Store installation folder WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR ;Create uninstaller @@ -62,8 +62,10 @@ SectionEnd ;-------------------------------- ;Descriptions + ;Language strings LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + ;Assign language strings to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) !insertmacro MUI_FUNCTION_DESCRIPTION_END diff --git a/Examples/Modern UI/InstallOptions.nsi b/Examples/Modern UI/InstallOptions.nsi index d7e0f5fe..759127ab 100644 --- a/Examples/Modern UI/InstallOptions.nsi +++ b/Examples/Modern UI/InstallOptions.nsi @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.68 +;NSIS Modern User Interface version 1.69 ;InstallOptions Example Script ;Written by Joost Verburg @@ -11,13 +11,13 @@ ;Configuration ;General - Name "Modern UI Test 1.68" + Name "Modern UI Test 1.69" OutFile "InstallOptions.exe" - ;Folder selection page + ;Default installation folder InstallDir "$PROGRAMFILES\Modern UI Test" - ;Get install folder from registry if available + ;Get installation folder from registry if available InstallDirRegKey HKCU "Software\Modern UI Test" "" ;-------------------------------- @@ -49,7 +49,7 @@ ;These files should be inserted before other files in the data block ;Keep these lines before any File command - ;Only for solid compression (by default, solid compression is enabled for BZip2 and LZMA) + ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA) ReserveFile "ioA.ini" ReserveFile "ioB.ini" @@ -70,7 +70,7 @@ Section "Dummy Section" SecDummy ;ADD YOUR OWN STUFF HERE! - ;Store install folder + ;Store installation folder WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR ;Create uninstaller @@ -124,8 +124,10 @@ FunctionEnd ;-------------------------------- ;Descriptions + ;Language strings LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + ;Assign language strings to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) !insertmacro MUI_FUNCTION_DESCRIPTION_END diff --git a/Examples/Modern UI/MultiLanguage.nsi b/Examples/Modern UI/MultiLanguage.nsi index d72e370d..74258974 100644 --- a/Examples/Modern UI/MultiLanguage.nsi +++ b/Examples/Modern UI/MultiLanguage.nsi @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.68 +;NSIS Modern User Interface version 1.69 ;Multilingual Example Script ;Written by Joost Verburg @@ -11,13 +11,13 @@ ;Configuration ;General - Name "Modern UI Test 1.68" + Name "Modern UI Test 1.69" OutFile "MultiLanguage.exe" - ;Folder selection page + ;Default installation folder InstallDir "$PROGRAMFILES\Modern UI Test" - ;Get install folder from registry if available + ;Get installation folder from registry if available InstallDirRegKey HKCU "Software\Modern UI Test" "" ;-------------------------------- @@ -89,7 +89,8 @@ ;These files should be inserted before other files in the data block ;Keep these lines before any File command - ;Only for BZIP2 (solid) compression + ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA) + !insertmacro MUI_RESERVEFILE_LANGDLL ;-------------------------------- @@ -101,7 +102,7 @@ Section "Dummy Section" SecDummy ;ADD YOUR OWN STUFF HERE! - ;Store install folder + ;Store installation folder WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR ;Create uninstaller @@ -121,11 +122,13 @@ FunctionEnd ;-------------------------------- ;Descriptions - ;USE A LANGSTRING IF YOU WANT A DESCRIPTION TO BE LANGUAGE SPECIFIC + ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC + ;Assign descriptions to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} "A test section." !insertmacro MUI_FUNCTION_DESCRIPTION_END + ;-------------------------------- ;Uninstaller Section diff --git a/Examples/Modern UI/StartMenu.nsi b/Examples/Modern UI/StartMenu.nsi index 9672a711..c3801718 100644 --- a/Examples/Modern UI/StartMenu.nsi +++ b/Examples/Modern UI/StartMenu.nsi @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.68 +;NSIS Modern User Interface version 1.69 ;Start Menu Folder Selection Example Script ;Written by Joost Verburg @@ -11,13 +11,13 @@ ;Configuration ;General - Name "Modern UI Test 1.68" + Name "Modern UI Test 1.69" OutFile "StartMenu.exe" - ;Folder selection page + ;Default installation folder InstallDir "$PROGRAMFILES\Modern UI Test" - ;Get install folder from registry if available + ;Get installation folder from registry if available InstallDirRegKey HKCU "Software\Modern UI Test" "" ;-------------------------------- @@ -64,7 +64,7 @@ Section "Dummy Section" SecDummy ;ADD YOUR OWN STUFF HERE! - ;Store install folder + ;Store installation folder WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR ;Create uninstaller @@ -83,8 +83,10 @@ SectionEnd ;-------------------------------- ;Descriptions + ;Language strings LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + ;Assign language strings to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) !insertmacro MUI_FUNCTION_DESCRIPTION_END diff --git a/Examples/Modern UI/WelcomeFinish.nsi b/Examples/Modern UI/WelcomeFinish.nsi index 43dd8386..508f5546 100644 --- a/Examples/Modern UI/WelcomeFinish.nsi +++ b/Examples/Modern UI/WelcomeFinish.nsi @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.68 +;NSIS Modern User Interface version 1.69 ;Welcome/Finish Page Example Script ;Written by Joost Verburg @@ -11,13 +11,13 @@ ;Configuration ;General - Name "Modern UI Test 1.68" + Name "Modern UI Test 1.69" OutFile "WelcomeFinish.exe" - ;Folder selection page + ;Default installation folder InstallDir "$PROGRAMFILES\Modern UI Test" - ;Get install folder from registry if available + ;Get installation folder from registry if available InstallDirRegKey HKCU "Software\Modern UI Test" "" ;-------------------------------- @@ -54,7 +54,7 @@ Section "Dummy Section" SecDummy ;ADD YOUR OWN STUFF HERE! - ;Store install folder + ;Store installation folder WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR ;Create uninstaller @@ -65,8 +65,10 @@ SectionEnd ;-------------------------------- ;Descriptions + ;Language strings LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + ;Assign language strings to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) !insertmacro MUI_FUNCTION_DESCRIPTION_END