diff --git a/Contrib/Icons/modern-header.bmp b/Contrib/Icons/modern-header.bmp
new file mode 100644
index 00000000..e5e563e3
Binary files /dev/null and b/Contrib/Icons/modern-header.bmp differ
diff --git a/Contrib/Modern UI/Changelog.txt b/Contrib/Modern UI/Changelog.txt
index 3296189e..bf1b7066 100644
--- a/Contrib/Modern UI/Changelog.txt
+++ b/Contrib/Modern UI/Changelog.txt
@@ -1,6 +1,10 @@
NSIS Modern User Interface - VERSION HISTORY
-1.62b - March 6, 2003
+1.63 - March 9, 2003
+* Support for a bitmap in the wizard header
+* New defines to change the description area
+* MUI_SYSTEM inserted automatically
+* Easier to customize resouce files
* New system for custom functions
* New InstallOptions macro's that do not remove the return value from
the stack
diff --git a/Contrib/Modern UI/Readme.html b/Contrib/Modern UI/Readme.html
index d54d4510..3a673cf5 100644
--- a/Contrib/Modern UI/Readme.html
+++ b/Contrib/Modern UI/Readme.html
@@ -152,6 +152,13 @@ follow these steps:
Show the license page.
MUI_COMPONENTSPAGE
Show the component selection page.
+
+
MUI_COMPONENTSPAGE_SMALLDESC
+ A small description area on the bottom of the page. Use this layout
+ if you have a lot of sections and don't need large descriptions.
+
MUI_COMPONENTSPAGE_NODESC
+ No description area.
+
MUI_DIRECTORYPAGE
Show the directory selection page.
MUI_STARTMENUPAGE
@@ -230,11 +237,11 @@ follow these steps:
You can also change the settings of the interface by using defines:
- !define MUI_UI "${NSISDIR}\Contrib\UIs\modern2.exe"
+ !define MUI_ICON "myicon.ico"
If you don't define a setting, the default will be used.
The following settings are available: (default values)
MUI_UI (${NSISDIR}\Contrib\UIs\modern.exe)
- The interface file with the dialog resources.
+ The interface file with the dialog resources. Change this if you have made your own customized UI.
MUI_ICON (${NSISDIR}\Contrib\Icons\modern-install.ico)
The icon of the installer.
MUI_UNICON (${NSISDIR}\Contrib\Icons\modern-uninstall.ico)
@@ -252,7 +259,16 @@ follow these steps:
MUI_INSTALLCOLORS (/windows)
The colors of the details screen, hexadecimal RRGGBB. ("foreground" "background")
MUI_PROGRESSBAR (smooth)
- The style of the progress bar ("colored" to use the MUI_INSTALLCOLORS or "" for a old-school windows look).
+ The style of the progress bar ("colored" to use the MUI_INSTALLCOLORS or "" for an old-school
+ windows look).
+ MUI_HEADERBITMAP (not defined)
+ Bitmap to display in the white header. With the default DPI, a bitmap with a size 150x57 won't have to be resized.
+ An example of a header bitmap is ${NSISDIR}\Contrib\Icons\modern-header.bmp, but can also make one with your own
+ logo.
+
+
MUI_HEADERBITMAP_RIGHT (not defined)
+ Put the header bitmap on the right side of the header instead of the left side.
+
MUI_SPECIALINI (${NSISDIR}\Contrib\Modern UI\ioSpecial.ini)
Install Options INI File for the Welcome and Finish page.
MUI_SPECIALBITMAP (${NSISDIR}\Contrib\Icons\modern-wizard.bmp)
@@ -266,13 +282,11 @@ follow these steps:
Modern UI, such as the .onGUIInit function and the Page function, create your
own function and let the Modern UI functions call them..
More info...
-
- !insertmacro MUI_SYSTEM
-
+
If you want to use custom pages (define MUI_CUSTOMPAGECOMMANDS
or MUI_UNCUSTOMPAGECOMMANDS), insert them before inserting the language files.
More info...
-
+
Insert the Modern UI language files for the languages you are using:
!insertmacro MUI_LANGUAGE "English"
The Modern UI language files load the NLF language files,
@@ -291,7 +305,7 @@ follow these steps:
language (in the language itself) to the stack:
!insertmacro MUI_LANGDLL_PUSH "English" ;Parameter = Language file name in English
-
+
If you are not using a Finish page without defining
MUI_FINISHPAGE_NOAUTOCLOSEWINDOW and have not set AutoCloseWindow
to true, you should insert the MUI_SECTIONS_FINISHHEADER
@@ -446,23 +460,17 @@ ReserveFile "ioFile.ini" ;Your own InstallOptions INI files
Start Menu Folder selection: StartMenu.nsi
Welcome/Finish page: WelcomeFinish.nsi
-
-
- There are three different versions of the Modern UI.
- Modern.exe contains the dialogs of the standard interface.
- If you have an installer with a lot of subsections or long section
- names, use modern2.exe, which has a different component selection page.
- Use modern3.exe if you are not using descriptions.
-
- To change elements on the dialogs, modify modern?.exe
+
+ To change elements on the dialogs, modify modern.exe
in the Contrib\UIs directory using a resource editor such as
- Resource Hacker.
+ Resource Hacker
+ and use the MUI_UI define to use your customized UI.
The 'Please wait while Setup is loading...' text
on the splash screen which is being displayed when the installer
is starting (Verifying installer, Unpacking data) cannot be changed
by the script, because the installer is not started yet when this
dialog is being displayed. If you want to change this text, modify
- dialog 111 of modern?.exe.
+ dialog 111 of modern.exe.
The 'Verifying installer' and 'Unpacking data' texts are defined in
the language header file of the NSIS exehead (Source\exehead\lang.h).
To change them, you need to edit this file and recompile NSIS.
@@ -544,8 +552,12 @@ FunctionEnd
-- 1.62b - March 6, 2003
+
- 1.63 - March 9, 2003
+ - Support for a bitmap in the wizard header
+ - New defines to change the description area
+ - MUI_SYSTEM inserted automatically
+ - Easier to customize resouce files
- New system for custom functions
- New InstallOptions macro's that do not remove the return value from
the stack
diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh
index 8ead1c75..dc3c0d72 100644
--- a/Contrib/Modern UI/System.nsh
+++ b/Contrib/Modern UI/System.nsh
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.62
+;NSIS Modern User Interface version 1.63
;Macro System
;Written by Joost Verburg
@@ -108,10 +108,33 @@
XPStyle On
!ifndef MUI_RTL_UI
- ChangeUI all "${MUI_UI}"
+ ChangeUI all "${MUI_UI}"
+ !ifdef MUI_HEADERBITMAP
+ !ifndef MUI_HEADERBITMAP_RIGHT
+ ChangeUI IDD_INST "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe"
+ !else
+ ChangeUI IDD_INST "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe"
+ !endif
+ !endif
+ !ifdef MUI_COMPONENTSPAGE_SMALLDESC
+ ChangeUI IDD_SELCOM "${NSISDIR}\Contrib\UIs\modern_smalldesc.exe"
+ !else ifdef MUI_COMPONENTSPAGE_NODESC
+ ChangeUI IDD_SELCOM "${NSISDIR}\Contrib\UIs\modern_nodesc.exe"
+ !endif
!else
ChangeUI /RTL all "${MUI_UI}"
+ !ifndef MUI_HEADERBITMAP_RIGHT
+ ChangeUI /RTL IDD_INST "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe"
+ !else
+ ChangeUI /RTL IDD_INST "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe"
+ !endif
+ !ifdef MUI_COMPONENTSPAGE_SMALLDESC
+ ChangeUI /RTL IDD_SELCOM "${NSISDIR}\Contrib\UIs\modern_smalldesc.exe"
+ !else ifdef MUI_COMPONENTSPAGE_NODESC
+ ChangeUI /RTL IDD_SELCOM "${NSISDIR}\Contrib\UIs\modern_nodesc.exe"
+ !endif
!endif
+
Icon "${MUI_ICON}"
!ifdef MUI_UNINSTALLER
@@ -308,13 +331,11 @@
!ifdef MUI_WELCOMEPAGE
!insertmacro MUI_WELCOMEFINISHPAGE_INIT
+ !else ifdef MUI_FINISHPAGE
+ !insertmacro MUI_WELCOMEFINISHPAGE_INIT
!endif
- !ifndef MUI_WELCOMEPAGE
- !ifdef MUI_FINISHPAGE
- !insertmacro MUI_WELCOMEFINISHPAGE_INIT
- !endif
- !endif
+ !insertmacro MUI_HEADERBITMAP_INIT
!insertmacro MUI_GUIINIT_BASIC
@@ -322,6 +343,8 @@
!macro MUI_UNGUIINIT
+ !insertmacro MUI_HEADERBITMAP_INIT
+
!insertmacro MUI_GUIINIT_BASIC
!macroend
@@ -374,6 +397,16 @@
!macroend
+!macro MUI_HEADERBITMAP_INIT
+
+ !ifdef MUI_HEADERBITMAP
+ InitPluginsDir
+ File "/oname=$PLUGINSDIR\modern-header.bmp" "${MUI_HEADERBITMAP}"
+ SetBrandingImage /IMGID=1046 /RESIZETOFIT "$PLUGINSDIR\modern-header.bmp"
+ !endif
+
+!macroend
+
!macro MUI_LANGUAGE LANGUAGE
!ifndef MUI_MANUALVERBOSE
@@ -1751,13 +1784,28 @@
!verbose 3
!endif
- !define MUI_NOVERBOSE
-
- !insertmacro MUI_INTERFACE
- !insertmacro MUI_BASIC
- !insertmacro MUI_UNBASIC
+ !ifndef MUI_SYSTEM_INSERTED
- !undef MUI_NOVERBOSE
+ !define MUI_SYSTEM_INSERTED
+
+ ;1.62 compatibility
+ !ifdef MUI_STARTMENU_VARIABLE || MUI_STARTMENU_DEFAULTFOLDER || MUI_STARTMENU_REGISTRY_ROOT
+ !error "The Start Menu Folder page defines have been renamed from MUI_STARTMENU_??? to MUI_STARTMENUPAGE_???. Please change this in your script."
+ !endif
+
+ !define MUI_NOVERBOSE
+
+ !insertmacro MUI_INTERFACE
+ !insertmacro MUI_BASIC
+ !insertmacro MUI_UNBASIC
+
+ !undef MUI_NOVERBOSE
+
+ !else
+
+ !warning "The MUI_SYSTEM macro is now being inserted automatically. You can remove '!insertmacro MUI_SYSTEM' from your script."
+
+ !endif
!ifndef MUI_MANUALVERBOSE
!verbose 4
@@ -1814,6 +1862,13 @@
;LANGUAGE FILES
!macro MUI_LANGUAGEFILE_BEGIN LANGUAGE
+
+ !ifndef MUI_SYSTEM_INSERT
+
+ !define MUI_SYSTEM_INSERT
+ !insertmacro MUI_SYSTEM
+
+ !endif
!ifndef "MUI_LANGUAGEFILE_${LANGUAGE}_USED"
diff --git a/Contrib/UIs/modern2.exe b/Contrib/UIs/modern2.exe
deleted file mode 100644
index 0f6d4179..00000000
Binary files a/Contrib/UIs/modern2.exe and /dev/null differ
diff --git a/Contrib/UIs/modern3.exe b/Contrib/UIs/modern3.exe
deleted file mode 100644
index 7358f398..00000000
Binary files a/Contrib/UIs/modern3.exe and /dev/null differ
diff --git a/Contrib/UIs/modern_headerbmp.exe b/Contrib/UIs/modern_headerbmp.exe
new file mode 100644
index 00000000..3a37af38
Binary files /dev/null and b/Contrib/UIs/modern_headerbmp.exe differ
diff --git a/Contrib/UIs/modern_headerbmpr.exe b/Contrib/UIs/modern_headerbmpr.exe
new file mode 100644
index 00000000..d1858607
Binary files /dev/null and b/Contrib/UIs/modern_headerbmpr.exe differ
diff --git a/Contrib/UIs/modern_nodesc.exe b/Contrib/UIs/modern_nodesc.exe
new file mode 100644
index 00000000..d8a5458e
Binary files /dev/null and b/Contrib/UIs/modern_nodesc.exe differ
diff --git a/Contrib/UIs/modern_smalldesc.exe b/Contrib/UIs/modern_smalldesc.exe
new file mode 100644
index 00000000..22f88ba2
Binary files /dev/null and b/Contrib/UIs/modern_smalldesc.exe differ
diff --git a/Contrib/UIs/modern_topbmp.exe b/Contrib/UIs/modern_topbmp.exe
new file mode 100644
index 00000000..598efefc
Binary files /dev/null and b/Contrib/UIs/modern_topbmp.exe differ
diff --git a/Examples/Modern UI/Basic.nsi b/Examples/Modern UI/Basic.nsi
index 6e228abb..fd13ec10 100644
--- a/Examples/Modern UI/Basic.nsi
+++ b/Examples/Modern UI/Basic.nsi
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.62
+;NSIS Modern User Interface version 1.63
;Basic Example Script
;Written by Joost Verburg
@@ -28,9 +28,6 @@
!define MUI_UNINSTALLER
!define MUI_UNCONFIRMPAGE
- ;Modern UI System
- !insertmacro MUI_SYSTEM
-
;--------------------------------
;Languages
diff --git a/Examples/Modern UI/HeaderBitmap.nsi b/Examples/Modern UI/HeaderBitmap.nsi
new file mode 100644
index 00000000..a67dfe55
--- /dev/null
+++ b/Examples/Modern UI/HeaderBitmap.nsi
@@ -0,0 +1,90 @@
+;NSIS Modern User Interface version 1.63
+;Header Bitmap Example Script
+;Written by Joost Verburg
+
+!define MUI_PRODUCT "Test Software" ;Define your own software name here
+!define MUI_VERSION "1.0" ;Define your own software version here
+
+!include "MUI.nsh"
+
+;--------------------------------
+;Configuration
+
+ ;General
+ OutFile "HeaderBitmap.exe"
+
+ ;Folder selection page
+ InstallDir "$PROGRAMFILES\${MUI_PRODUCT}"
+
+;--------------------------------
+;Modern UI Configuration
+
+ !define MUI_LICENSEPAGE
+ !define MUI_COMPONENTSPAGE
+ !define MUI_DIRECTORYPAGE
+
+ !define MUI_ABORTWARNING
+
+ !define MUI_UNINSTALLER
+ !define MUI_UNCONFIRMPAGE
+
+ !define MUI_HEADERBITMAP "${NSISDIR}\Contrib\Icons\modern-header.bmp"
+
+;--------------------------------
+;Languages
+
+ !insertmacro MUI_LANGUAGE "English"
+
+;--------------------------------
+;Language Strings
+
+ ;Description
+ LangString DESC_SecCopyUI ${LANG_ENGLISH} "Copy the modern.exe file to the application folder."
+
+;--------------------------------
+;Data
+
+ LicenseData "${NSISDIR}\Contrib\Modern UI\License.txt"
+
+;--------------------------------
+;Installer Sections
+
+Section "modern.exe" SecCopyUI
+
+ ;ADD YOUR OWN STUFF HERE!
+
+ SetOutPath "$INSTDIR"
+ File "${NSISDIR}\Contrib\UIs\modern.exe"
+
+ ;Create uninstaller
+ WriteUninstaller "$INSTDIR\Uninstall.exe"
+
+SectionEnd
+
+;Display the Finish header
+;Insert this macro after the sections if you are not using a finish page
+!insertmacro MUI_SECTIONS_FINISHHEADER
+
+;--------------------------------
+;Descriptions
+
+!insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI)
+!insertmacro MUI_FUNCTIONS_DESCRIPTION_END
+
+;--------------------------------
+;Uninstaller Section
+
+Section "Uninstall"
+
+ ;ADD YOUR OWN STUFF HERE!
+
+ Delete "$INSTDIR\modern.exe"
+ Delete "$INSTDIR\Uninstall.exe"
+
+ RMDir "$INSTDIR"
+
+ ;Display the Finish header
+ !insertmacro MUI_UNFINISHHEADER
+
+SectionEnd
\ No newline at end of file
diff --git a/Examples/Modern UI/InstallOptions.nsi b/Examples/Modern UI/InstallOptions.nsi
index d4b3f6a5..f15f02e6 100644
--- a/Examples/Modern UI/InstallOptions.nsi
+++ b/Examples/Modern UI/InstallOptions.nsi
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.62
+;NSIS Modern User Interface version 1.63
;InstallOptions Example Script
;Written by Joost Verburg
@@ -31,9 +31,6 @@
!define MUI_UNINSTALLER
!define MUI_UNCONFIRMPAGE
-
- ;Modern UI System
- !insertmacro MUI_SYSTEM
;--------------------------------
;Pages
diff --git a/Examples/Modern UI/MultiLanguage.nsi b/Examples/Modern UI/MultiLanguage.nsi
index 4db0fa3f..e1d3a8a4 100644
--- a/Examples/Modern UI/MultiLanguage.nsi
+++ b/Examples/Modern UI/MultiLanguage.nsi
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.62
+;NSIS Modern User Interface version 1.63
;MultiLanguage Example Script
;Written by Joost Verburg
@@ -27,9 +27,6 @@
!define MUI_UNINSTALLER
!define MUI_UNCONFIRMPAGE
-
- ;Modern UI System
- !insertmacro MUI_SYSTEM
;--------------------------------
;Languages
@@ -40,7 +37,8 @@
!insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "TradChinese"
- !insertmacro MUI_LANGUAGE "Japanese"
+ !insertmacro MUI_LANGUAGE "Japanese"
+ !insertmacro MUI_LANGUAGE "Korean"
!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Danish"
@@ -69,6 +67,7 @@
LangString DESC_SecCopyUI ${LANG_SIMPCHINESE} "modern.exe: Simplified Chinese description"
LangString DESC_SecCopyUI ${LANG_TRADCHINESE} "modern.exe: Traditional Chinese description"
LangString DESC_SecCopyUI ${LANG_JAPANESE} "modern.exe: Japanese description"
+ LangString DESC_SecCopyUI ${LANG_JAPANESE} "modern.exe: Korean description"
LangString DESC_SecCopyUI ${LANG_ITALIAN} "modern.exe: Italian description"
LangString DESC_SecCopyUI ${LANG_DUTCH} "modern.exe: Dutch description"
LangString DESC_SecCopyUI ${LANG_DANISH} "modern.exe: Danish description"
@@ -96,6 +95,7 @@
LicenseData /LANG=${LANG_SIMPCHINESE} "${NSISDIR}\Contrib\Modern UI\License.txt"
LicenseData /LANG=${LANG_TRADCHINESE} "${NSISDIR}\Contrib\Modern UI\License.txt"
LicenseData /LANG=${LANG_JAPANESE} "${NSISDIR}\Contrib\Modern UI\License.txt"
+ LicenseData /LANG=${LANG_KOREAN} "${NSISDIR}\Contrib\Modern UI\License.txt"
LicenseData /LANG=${LANG_ITALIAN} "${NSISDIR}\Contrib\Modern UI\License.txt"
LicenseData /LANG=${LANG_DUTCH} "${NSISDIR}\Contrib\Modern UI\License.txt"
LicenseData /LANG=${LANG_DANISH} "${NSISDIR}\Contrib\Modern UI\License.txt"
@@ -159,7 +159,8 @@ Function .onInit
!insertmacro MUI_LANGDLL_PUSH "Spanish"
!insertmacro MUI_LANGDLL_PUSH "SimpChinese"
!insertmacro MUI_LANGDLL_PUSH "TradChinese"
- !insertmacro MUI_LANGDLL_PUSH "Japanese"
+ !insertmacro MUI_LANGDLL_PUSH "Japanese"
+ !insertmacro MUI_LANGDLL_PUSH "Korean"
!insertmacro MUI_LANGDLL_PUSH "Italian"
!insertmacro MUI_LANGDLL_PUSH "Dutch"
!insertmacro MUI_LANGDLL_PUSH "Danish"
@@ -177,7 +178,7 @@ Function .onInit
!insertmacro MUI_LANGDLL_PUSH "Macedonian"
!insertmacro MUI_LANGDLL_PUSH "Turkish"
- Push 23F ;22 = number of languages, F = change font
+ Push 24F ;24 = number of languages, F = change font
LangDLL::LangDialog "Installer Language" "Please select a language."
diff --git a/Examples/Modern UI/StartMenu.nsi b/Examples/Modern UI/StartMenu.nsi
index ae141894..c63f09e7 100644
--- a/Examples/Modern UI/StartMenu.nsi
+++ b/Examples/Modern UI/StartMenu.nsi
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.62
+;NSIS Modern User Interface version 1.63
;Start Menu Folder Selection Example Script
;Written by Joost Verburg
@@ -43,9 +43,6 @@
!define MUI_UNINSTALLER
!define MUI_UNCONFIRMPAGE
- ;Modern UI System
- !insertmacro MUI_SYSTEM
-
;--------------------------------
;Languages
diff --git a/Examples/Modern UI/WelcomeFinish.nsi b/Examples/Modern UI/WelcomeFinish.nsi
index 38bcc648..569a3fff 100644
--- a/Examples/Modern UI/WelcomeFinish.nsi
+++ b/Examples/Modern UI/WelcomeFinish.nsi
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.62
+;NSIS Modern User Interface version 1.63
;Welcome/Finish Page Example Script
;Written by Joost Verburg
@@ -31,9 +31,6 @@
!define MUI_UNINSTALLER
!define MUI_UNCONFIRMPAGE
- ;Modern UI System
- !insertmacro MUI_SYSTEM
-
;--------------------------------
;Languages
diff --git a/Examples/makensis.nsi b/Examples/makensis.nsi
index 2dd6f835..27151c8e 100644
--- a/Examples/makensis.nsi
+++ b/Examples/makensis.nsi
@@ -43,6 +43,7 @@ InstallDirRegKey HKLM SOFTWARE\NSIS ""
!define MUI_WELCOMEPAGE
!define MUI_LICENSEPAGE
!define MUI_COMPONENTSPAGE
+ !define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_DIRECTORYPAGE
!define MUI_FINISHPAGE
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Docs\index.html"
@@ -53,11 +54,8 @@ InstallDirRegKey HKLM SOFTWARE\NSIS ""
!define MUI_UNINSTALLER
!define MUI_UNCONFIRMPAGE
+ !define MUI_HEADERBITMAP "${NSISDIR}\Contrib\Icons\modern-header.bmp"
!define MUI_SPECIALBITMAP "${NSISDIR}\Contrib\Icons\modern-wizard nsis llama.bmp"
- !define MUI_UI "${NSISDIR}\Contrib\UIs\modern2.exe"
-
- ;Modern UI System
- !insertmacro MUI_SYSTEM
;--------------------------------
;Languages