diff --git a/Contrib/Modern UI/Changelog.txt b/Contrib/Modern UI/Changelog.txt index 5d5df68c..54d723e3 100644 --- a/Contrib/Modern UI/Changelog.txt +++ b/Contrib/Modern UI/Changelog.txt @@ -1,7 +1,9 @@ NSIS Modern User Interface - VERSION HISTORY -1.67 - November 7, 2003 +1.67 - November 9, 2003 * Support for uninstaller Welcome- and Finish pages +* Improved and changed text settings +* ID for Start Menu Folder pages, easier to use multiple pages * Renamed a few settings * Default header image * Support for uninstaller abort warning diff --git a/Contrib/Modern UI/Readme.html b/Contrib/Modern UI/Readme.html index 580037d4..0cdc4e78 100644 --- a/Contrib/Modern UI/Readme.html +++ b/Contrib/Modern UI/Readme.html @@ -1,552 +1,565 @@ - - + + - NSIS Modern User Interface - - - + - - -
- + + +
+
- + - - - - - - + + + + + +
+
+

Introduction

-

NSIS 2 makes it is possible to create installers - with a custom user interface. The Modern UI is an interface with a - style like the wizards of recent Windows versions.

-

This new interface also features new pages -(Welcome, Finish, Start Menu) and a description area on the components - page. The interface and the graphics can be customized using the - provided settings.

-

Using the Modern UI macros and language files, -writing scripts with a modern interface is easy. This document contains -information about writing Modern UI scripts and a reference of all +

NSIS 2 makes it is possible to create installers with a custom user interface. The Modern UI is +an interface with a style like the wizards of recent Windows versions.

+

This new interface also features new pages (Welcome, Finish, Start Menu) and a description area +on the components page. The interface and the graphics can be customized using the provided settings.

-

Important: Because the Modern -UI has its own macro system, its own default settings and a lot of -new features, the interface configuration works differently. So you -should not use commands like Icon, CheckBitmap, InstallColors etc.

+

Using the Modern UI macros and language files, writing scripts with a modern interface is easy. +This document contains information about writing Modern UI scripts and a reference of all +settings.

+

Important: Because the Modern UI has its own macro system, its own default +settings and a lot of new features, the interface configuration works differently. So you should +not use commands like LicenseText, Icon, CheckBitmap, InstallColors etc.

Screenshots

How to use

-

The Modern UI has a macro system, so all the code to -control the interface has already been written for you.

-

If you want to start a new Modern UI script or upgrade -an older script with the Classic UI, follow the steps below.

-

Taking a look at the example scripts -will also help you to learn more about the Modern UI.

-

Syntax

-

Some defines (i.e. MUI_COMPONENTSPAGE_SMALLDESC) don't need a value, they are true/false settings. - Others (i.e. MUI_UI) can be used to define a specific value.

-

Parameters are specified in this format: - required (option1 | option2) - [optional]

-

You should put all parameters in one string.

+

The Modern UI has a macro system, so all the code to control the interface has already been +written for you.

+

If you want to start a new Modern UI script or upgrade an older script with the Classic UI, +follow the steps below.

+

Taking a look at the example scripts will also help you to learn more +about the Modern UI.

+

Syntax

+

Some defines (e.g. MUI_COMPONENTSPAGE_SMALLDESC) don't need a value, they are true/false +settings. Others (e.g. MUI_UI) can be used to define a specific value.

+

Parameters are specified in this format: required (option1 | option2) +[optional]

+

You should put all parameters in one string.

-!define MUI_STARTMENUPAGE_NODISABLE ;No value
-!define MUI_FINISHPAGE_RUN "$INSTDIR\Application.exe" ;Value
-!define MUI_LICENSEPAGE_TEXT '"Text"' ;Text
-!define MUI_LICENSEPAGE_TEXT '"Text" "Buttontext"' ;Multiple texts
+!define MUI_COMPONENTSPAGE_SMALLDESC ;No value
+!define MUI_UI "myUI.exe" ;Value
 !define MUI_INSTFILESPAGE_COLORS "FFFFFF 000000" ;Multiple settings
 
-

If you want a certain value (i.e. a text) to be language-specific, set a language string (using LangString) - and define $(STRINGNAME) as value. Use a license language string (LicenseLangString) for the license text.

-

When adding " to a Modern UI string, you should always escape it ($\"), - because the Modern UI macros use " to separate parameters. If you want to set texts like above you have to - escape both " and ' (using $\" and $\').

-

1. Header file

-
!include "MUI.nsh"
-

MUI.nsh is in the Include directory, so you don't have - to specify a path.

-

2. Interface Settings

-

Page interface settings apply to all pages of a certain type.

-

General Interface Settings

-
-

For UI elements that are enabled by default, the default value will be used when a setting - has not been defined.

-

MUI_ICON icon_file
- The icon of the installer.
Default: ${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico

-

MUI_UNICON icon_file
- The icon of the uninstaller.
Default: ${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico

-

MUI_HEADERIMAGE
- Display an image on the header of a page.

-
-

MUI_HEADERIMAGE_BITMAP bmp_file
- Bitmap image to display on the header of installers pages (recommended size: 150x57 pixels).
- Default: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp

-

MUI_HEADERIMAGE_UNBITMAP bmp_file
- Bitmap image to display on the header of uninstaller pages (recommended size: 150x57 pixels).
- Default: Installer header bitmap

-

MUI_HEADERIMAGE_NOSTRETCH
- Do not stretch the installer header bitmap to fit the size of the field. Use this option only if you have an - image that does not use the whole space. If you have a full size bitmap that fits exactly, you should - not use this option because the size of the field will be different if the user has a custom DPI setting.

-

MUI_HEADERIMAGE_UNNOSTRETCH
- Do not stretch the uninstaller header bitmap to fit the size of the field. Use this option only if you have an - image that does not use the whole space. If you have a full size bitmap that fits exactly, you should - not use this option because the size of the field will be different if the user has a custom DPI setting.

-

MUI_HEADERIMAGE_RIGHT
- Display the header image on the right side instead of the left side.

-
-

MUI_BGCOLOR (color: RRGGBBR hexadecimal)
- Background color for the header, Welcome- and Finish page.
Default: FFFFFF

-
-

Interface Resource Settings

-
-

MUI_UI ui_file
- The interface file with the dialog resources. Change this if you have made your own customized UI.
- Default: ${NSISDIR}\Contrib\UIs\modern.exe

-

MUI_UI_HEADERIMAGE ui_file
- The interface files with the dialog resource IDD_INST that contains a bitmap control and space for - the header bitmap.
- Default: ${NSISDIR}\Contrib\UIs\modern-headerbmp.exe

-

MUI_UI_HEADERIMAGE_RIGHT ui_file
- The interface files with the dialog resource IDD_INST that contains a bitmap control and space for - the header bitmap on the right side.
- Default: ${NSISDIR}\Contrib\UIs\modern-headerbmpr.exe

-

MUI_UI_COMPONENTSPAGE_SMALLDESC ui_file
- The interface files with a customized dialog resource IDD_SELCOM with a small description area.
- Default: {NSISDIR}\Contrib\UIs\modern-smalldesc.exe

-

MUI_UI_COMPONENTSPAGE_NODESC ui_file
- The interface files with a customized dialog resource IDD_SELCOM without a description area.
- Default: {NSISDIR}\Contrib\UIs\modern-nodesc.exe

-
-

Welcome/Finish Page Interface Settings

-
-

MUI_WELCOMEFINISHPAGE_3LINES
- Create a bigger area for the title on the Welcome- and Finish page, to allow displaying 3 lines of text - (with the default font).

-

MUI_WELCOMEFINISHPAGE_BITMAP bmp_file
- Bitmap for the Welcome- and Finish page (recommended size: 164x314 pixels).
- Default: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

-
-

MUI_WELCOMEFINISHPAGE_NOSTRETCH
- Do not stretch the bitmap for the Welcome and Finish page to fit the size of the field. - Use this option only if you have an image that does not use the whole space. If you have a full size - bitmap that fits exactly, you should not use this option because the size of the field will be different - if the user has a custom DPI setting.

-
-
-

Welcome/Finish Page InstallOptions INI Settings

-
-

MUI_WELCOMEFINISHPAGE_INI ini_file
- InstallOptions INI file for the Welcome- and Finish page.
- Default: ${NSISDIR}\Contrib\Modern UI\ioSpecial.ini

-

MUI_WELCOMEFINISHPAGE_INI_3LINES ini_file
- InstallOptions INI file for the Welcome- and Finish page with space for 3 lines of title text (with the default font).
- Default: ${NSISDIR}\Contrib\Modern UI\ioSpecial3.ini

-
-

Uninstaller Welcome/Finish Page InstallOptions INI Settings

-
-

MUI_UNWELCOMEFINISHPAGE_3LINES
- Create a bigger area for the title on the uninstaller Welcome- and Finish page, to allow displaying 3 lines of text - (with the default font).

-

MUI_UNWELCOMEFINISHPAGE_BITMAP bmp_file
- Bitmap for the Welcome- and Finish page (recommended size: 164x314 pixels).
- Default: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

-
-

MUI_UNWELCOMEFINISHPAGE_NOSTRETCH
- Do not stretch the bitmap for the Welcome and Finish page to fit the size of the field. - Use this option only if you have an image that does not use the whole space. If you have a full size - bitmap that fits exactly, you should not use this option because the size of the field will be different - if the user has a custom DPI setting.

-
-
-

Uninstaller Welcome/Finish Page Interface INI File Settings

-
-

MUI_UNWELCOMEFINISHPAGE_INI ini_file
- InstallOptions INI file for the uninstaller Welcome- and Finish page.
- Default: ${NSISDIR}\Contrib\Modern UI\ioSpecial.ini

-

MUI_WELCOMEFINISHPAGE_INI_3LINES ini_file
- InstallOptions INI file for the Welcome- and Finish page with space for 3 lines of title text (with the default font).
- Default: ${NSISDIR}\Contrib\Modern UI\ioSpecial3.ini

-
-

License Page Interface Settings

-
-

MUI_LICENSEPAGE_BGCOLOR - (/windows | /grey | (color: RRGGBB hexadecimal))
- The background color for the license textbox. Use /windows for the default text background (usually white). - Use the /grey for the standard window background (usually grey).
Default: /windows

-
-

Components Page Interface Settings

-
-

MUI_COMPONENTSPAGE_CHECKBITMAPbitmap_file
- The bitmap with images for the checks of the component select treeview.
- Default: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp

-

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.

-
-

Installation Page Interface Settings

-
-

MUI_INSTFILESPAGE_COLORS (/windows | - (foreground color: RRGGBB hexadecimal) (background color: RRGGBB hexadecimal))
- The colors of the details screen.
- Default: /windows

-

MUI_INSTFILESPAGE_PROGRESSBAR ("" | colored | smooth)
- The style of the progress bar. Colored makes it use the MUI_INSTALLCOLORS.
- Default: smooth

-
-

Installer Finish Page Interface Settings

-
-

MUI_FINISHPAGE_NOAUTOCLOSE
- Do not automatically jump to the finish page, to allow the user to - check the install log.

-
-

Uninstaller Finish Page Interface Settings

-
-

MUI_UNFINISHPAGE_NOAUTOCLOSE
- Do not automatically jump to the finish page, to allow the user to - check the uninstall log.

-
-

Abort Warning Settings

-
-

MUI_ABORTWARNING
- Show a message box with a warning when the user wants to close the installer.

-
-

MUI_ABORTWARNING_TEXT text
- Texts to display on the abort warning messagebox.

-
-
-

Uninstaller Abort Warning Settings

-
-

MUI_UNABORTWARNING
- Show a message box with a warning when the user wants to close the uninstaller.

-
-

MUI_UNABORTWARNING_TEXT text
- Texts to display on the abort warning messagebox.

-
-
-

3. Pages

-

Insert the following macros to set the pages you want to use. - The pages will appear in the order you insert them in your script. - You can also insert custom Page commands between the macros to add custom pages. - More info about custom pages...

-

You can add multiple pages of certain types (for example, if you - want the user to specify multiple folders).

-

Examples:

-
-!insertmacro MUI_PAGE_LICENSE "License.rtf"
-!insertmacro MUI_PAGE_COMPONENTS
-

- Installer Pages
- MUI_PAGE_WELCOME
- MUI_PAGE_LICENSE text/rtf_file
- MUI_PAGE_COMPONENTS
- MUI_PAGE_DIRECTORY
- MUI_PAGE_STARTMENU
- MUI_PAGE_INSTFILES
- MUI_PAGE_FINISH -

-

- Uninstaller Pages
- MUI_UNPAGE_WELCOME
- MUI_UNPAGE_CONFIRM
- MUI_UNPAGE_LICENSE text/rtf_file
- MUI_UNPAGE_COMPONENTS
- MUI_UNPAGE_DIRECTORY
- MUI_UNPAGE_INSTFILES
- MUI_UNPAGE_FINISH
-

-

Page Settings

-
-

To configure a page, you can define the page settings before inserting a page macro.

-

General Page Settings

-
-

MUI_PAGE_HEADER_TEXT text
- Text to display on the header of the page.

-

MUI_PAGE_HEADER_SUBTEXT text
- Subtext to display on the header of the page.

-
-

Welcome Page Settings

-
-

MUI_WELCOMEPAGE_TITLE title
- Title to display on the welcome page.

-

MUI_WELCOMEPAGE_TEXT text
- Texts to display on the welcome page. Use \r\n for a newline.

-
-

License Page Settings

-
-

MUI_LICENSEPAGE_TEXT text [buttontext]
- Texts to display on the license page. See syntax information about setting multiple texts.

-

MUI_LICENSEPAGE_TEXT_TOP text
- Text to display on the top of the license page.

-

MUI_LICENSEPAGE_CHECKBOX
- Display a checkbox the user has to check to agree with the license terms.

-
-

MUI_LICENSEPAGE_CHECKBOX_TEXT text
- Text to display next to the checkbox to agree with the license terms.

-
-

MUI_LICENSEPAGE_RADIOBUTTONS
- Display two radiobuttons to allow the user to choose between accepting the - license terms or not.

-
-

MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT text
- Text to display next to the checkbox to accept the license terms.

-

MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE text
- Text to display next to the checkbox to dicline the license terms.

-
-
-

Components Page Settings

-
-

MUI_COMPONENTSPAGE_TEXT text [subtext] [subtext2]
- Texts to display on the components page. See syntax information about setting multiple texts.

-

MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE text
- Text to display on the of the top of the description box.

-

MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO text
- Text to display inside the description box when no section is selected.

-
-

Directory Page Settings

-
-

MUI_DIRECTORYPAGE_TEXT text [subtext]
- Texts to display on the directory page. See syntax information about setting multiple texts.

-

MUI_DIRECTORYPAGE_VARIABLE variable
- Variable in which to store the selected folder
- Default: $INSTDIR

-
-

Start Menu Folder Page Settings

-
-

Put the code to write the shortcuts (using CreateShortcut) between this macros:

+

If you want a certain value (e.g. a text) to be language-specific, set a language string (using +LangString) and define $(STRINGNAME) as value. Use a license language string (LicenseLangString) +for the license text.

+

When adding " or ` to a Modern UI string, you should always escape ($\" or $\`), because the +Modern UI macros use " and ` to separate parameters.

+

1. Header file

-!insertmacro MUI_STARTMENU_WRITE_BEGIN
-  ...create the shortcuts...
+!include "MUI.nsh"
+
+

MUI.nsh is in the Include directory, so you don't have to specify a path.

+

2. Interface Settings

+

Interface settings should be set before inserting page macros. Page interface settings apply to +all pages of a certain type.

+

General Interface Settings

+
+

MUI_ICON icon_file
+The icon of the installer.
+Default: ${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico

+

MUI_UNICON icon_file
+The icon of the uninstaller.
+Default: ${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico

+

MUI_HEADERIMAGE
+Display an image on the header of a page.

+
+

MUI_HEADERIMAGE_BITMAP bmp_file
+Bitmap image to display on the header of installers pages (recommended size: 150x57 pixels).
+Default: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp

+

MUI_HEADERIMAGE_UNBITMAP bmp_file
+Bitmap image to display on the header of uninstaller pages (recommended size: 150x57 pixels).
+Default: Installer header bitmap

+

MUI_HEADERIMAGE_NOSTRETCH
+Do not stretch the installer header bitmap to fit the size of the field. Use this option only if +you have an image that does not use the whole space. If you have a full size bitmap that fits +exactly, you should not use this option because the size of the field will be different if the user +has a custom DPI setting.

+

MUI_HEADERIMAGE_UNNOSTRETCH
+Do not stretch the uninstaller header bitmap to fit the size of the field. Use this option only if +you have an image that does not use the whole space. If you have a full size bitmap that fits +exactly, you should not use this option because the size of the field will be different if the user +has a custom DPI setting.

+

MUI_HEADERIMAGE_RIGHT
+Display the header image on the right side instead of the left side.

+
+

MUI_BGCOLOR (color: RRGGBBR hexadecimal)
+Background color for the header, Welcome- and Finish page.
+Default: FFFFFF

+
+

Interface Resource Settings

+
+

MUI_UI ui_file
+The interface file with the dialog resources. Change this if you have made your own customized +UI.
+Default: ${NSISDIR}\Contrib\UIs\modern.exe

+

MUI_UI_HEADERIMAGE ui_file
+The interface files with the dialog resource IDD_INST that contains a bitmap control and space for +the header bitmap.
+Default: ${NSISDIR}\Contrib\UIs\modern-headerbmp.exe

+

MUI_UI_HEADERIMAGE_RIGHT ui_file
+The interface files with the dialog resource IDD_INST that contains a bitmap control and space for +the header bitmap on the right side.
+Default: ${NSISDIR}\Contrib\UIs\modern-headerbmpr.exe

+

MUI_UI_COMPONENTSPAGE_SMALLDESC ui_file
+The interface files with a customized dialog resource IDD_SELCOM with a small description +area.
+Default: {NSISDIR}\Contrib\UIs\modern-smalldesc.exe

+

MUI_UI_COMPONENTSPAGE_NODESC ui_file
+The interface files with a customized dialog resource IDD_SELCOM without a description area.
+Default: {NSISDIR}\Contrib\UIs\modern-nodesc.exe

+
+

Welcome/Finish Page Interface Settings

+
+

MUI_WELCOMEFINISHPAGE_3LINES
+Create a bigger area for the title on the Welcome- and Finish page, to allow displaying 3 lines of +text (with the default font).

+

MUI_WELCOMEFINISHPAGE_BITMAP bmp_file
+Bitmap for the Welcome- and Finish page (recommended size: 164x314 pixels).
+Default: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

+
+

MUI_WELCOMEFINISHPAGE_NOSTRETCH
+Do not stretch the bitmap for the Welcome and Finish page to fit the size of the field. Use this +option only if you have an image that does not use the whole space. If you have a full size bitmap +that fits exactly, you should not use this option because the size of the field will be different +if the user has a custom DPI setting.

+
+
+

Welcome/Finish Page InstallOptions INI Settings

+
+

MUI_WELCOMEFINISHPAGE_INI ini_file
+InstallOptions INI file for the Welcome- and Finish page.
+Default: ${NSISDIR}\Contrib\Modern UI\ioSpecial.ini

+

MUI_WELCOMEFINISHPAGE_INI_3LINES ini_file
+InstallOptions INI file for the Welcome- and Finish page with space for 3 lines of title text (with +the default font).
+Default: ${NSISDIR}\Contrib\Modern UI\ioSpecial3.ini

+
+

Uninstaller Welcome/Finish Page InstallOptions INI Settings

+
+

MUI_UNWELCOMEFINISHPAGE_3LINES
+Create a bigger area for the title on the uninstaller Welcome- and Finish page, to allow displaying +3 lines of text (with the default font).

+

MUI_UNWELCOMEFINISHPAGE_BITMAP bmp_file
+Bitmap for the Welcome- and Finish page (recommended size: 164x314 pixels).
+Default: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

+
+

MUI_UNWELCOMEFINISHPAGE_NOSTRETCH
+Do not stretch the bitmap for the Welcome and Finish page to fit the size of the field. Use this +option only if you have an image that does not use the whole space. If you have a full size bitmap +that fits exactly, you should not use this option because the size of the field will be different +if the user has a custom DPI setting.

+
+
+

Uninstaller Welcome/Finish Page Interface INI File Settings

+
+

MUI_UNWELCOMEFINISHPAGE_INI ini_file
+InstallOptions INI file for the uninstaller Welcome- and Finish page.
+Default: ${NSISDIR}\Contrib\Modern UI\ioSpecial.ini

+

MUI_WELCOMEFINISHPAGE_INI_3LINES ini_file
+InstallOptions INI file for the Welcome- and Finish page with space for 3 lines of title text (with +the default font).
+Default: ${NSISDIR}\Contrib\Modern UI\ioSpecial3.ini

+
+

License Page Interface Settings

+
+

MUI_LICENSEPAGE_BGCOLOR (/windows | /grey | (color: +RRGGBB hexadecimal))
+The background color for the license textbox. Use /windows for the Windows text background color +(usually white). Use the /grey for the window background color (usually grey).
+Default: /windows

+
+

Components Page Interface Settings

+
+

MUI_COMPONENTSPAGE_CHECKBITMAP bitmap_file
+The bitmap with images for the checks of the component select treeview.
+Default: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp

+

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.

+
+

Installation Page Interface Settings

+
+

MUI_INSTFILESPAGE_COLORS (/windows | (foreground color: +RRGGBB hexadecimal) (background color: RRGGBB hexadecimal))
+The colors of the details screen. Use /windows for the default Windows colors.
+Default: /windows

+

MUI_INSTFILESPAGE_PROGRESSBAR ("" | colored | +smooth)
+The style of the progress bar. Colored makes it use the MUI_INSTALLCOLORS.
+Default: smooth

+
+

Installer Finish Page Interface Settings

+
+

MUI_FINISHPAGE_NOAUTOCLOSE
+Do not automatically jump to the finish page, to allow the user to check the install log.

+
+

Uninstaller Finish Page Interface Settings

+
+

MUI_UNFINISHPAGE_NOAUTOCLOSE
+Do not automatically jump to the finish page, to allow the user to check the uninstall log.

+
+

Abort Warning Settings

+
+

MUI_ABORTWARNING
+Show a message box with a warning when the user wants to close the installer.

+
+

MUI_ABORTWARNING_TEXT text
+Texts to display on the abort warning messagebox.

+
+
+

Uninstaller Abort Warning Settings

+
+

MUI_UNABORTWARNING
+Show a message box with a warning when the user wants to close the uninstaller.

+
+

MUI_UNABORTWARNING_TEXT text
+Texts to display on the abort warning messagebox.

+
+
+

3. Pages

+

Insert the following macros to set the pages you want to use. The pages will appear in the order +you insert them in your script. You can also insert custom Page commands between the macros to add +custom pages. More info about custom pages...

+

You can add multiple pages of certain types (for example, if you want the user to specify +multiple folders).

+

Examples:

+
+!insertmacro MUI_PAGE_LICENSE "License.rtf"
+!insertmacro MUI_PAGE_COMPONENTS
+!insertmacro MUI_PAGE_STARTMENU "Application" ;Unique ID for page
+
+

You need the page ID for the Start Menu Folder page when using the Start Menu Folder macros.

+

Installer Pages
+MUI_PAGE_WELCOME
+MUI_PAGE_LICENSE text/rtf_file
+MUI_PAGE_COMPONENTS
+MUI_PAGE_DIRECTORY
+MUI_PAGE_STARTMENU page_id
+MUI_PAGE_INSTFILES
+MUI_PAGE_FINISH

+

Uninstaller Pages
+MUI_UNPAGE_WELCOME
+MUI_UNPAGE_CONFIRM
+MUI_UNPAGE_LICENSE text/rtf_file
+MUI_UNPAGE_COMPONENTS
+MUI_UNPAGE_DIRECTORY
+MUI_UNPAGE_INSTFILES
+MUI_UNPAGE_FINISH

+

Page Settings

+
+

Page Settings apply to a single page and should be set before inserting a page macro.

+

General Page Settings

+
+

MUI_PAGE_HEADER_TEXT text
+Text to display on the header of the page.

+

MUI_PAGE_HEADER_SUBTEXT text
+Subtext to display on the header of the page.

+
+

Welcome Page Settings

+
+

MUI_WELCOMEPAGE_TITLE title
+Title to display on the top of the page.

+

MUI_WELCOMEPAGE_TEXT text
+Text to display on the page. Use \r\n for a newline.

+
+

License Page Settings

+
+

MUI_LICENSEPAGE_TEXT_TOP text
+Text to display on the top of the page.

+

MUI_LICENSEPAGE_TEXT_BOTTOM text
+Text to display on the bottom of the page.

+

MUI_LICENSEPAGE_BUTTON button_text
+Text to display on the 'I Agree' button.

+

MUI_LICENSEPAGE_CHECKBOX
+Display a checkbox the user has to check to agree with the license terms.

+
+

MUI_LICENSEPAGE_CHECKBOX_TEXT text
+Text to display next to the checkbox to agree with the license terms.

+
+

MUI_LICENSEPAGE_RADIOBUTTONS
+Display two radiobuttons to allow the user to choose between accepting the license terms or +not.

+
+

MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT text
+Text to display next to the checkbox to accept the license terms.

+

MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE text
+Text to display next to the checkbox to dicline the license terms.

+
+
+

Components Page Settings

+
+

MUI_COMPONENTSPAGE_TEXT_TOP text
+Text to display on the top of the page.

+

MUI_COMPONENTSPAGE_TEXT_COMPLIST text
+Text to display on next to the components list.

+

MUI_COMPONENTSPAGE_TEXT_INSTTYPE text
+Text to display on next to the installation type combo box.

+

MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE text
+Text to display on the of the top of the description box.

+

MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO text
+Text to display inside the description box when no section is selected.

+
+

Directory Page Settings

+
+

MUI_DIRECTORYPAGE_TEXT_TOP text
+Text to display on top of the page.

+

MUI_DIRECTORYPAGE_TEXT_DESTINATION text
+Text to display on the destination folder frame.

+

MUI_DIRECTORYPAGE_VARIABLE variable
+Variable in which to store the selected folder.
+Default: $INSTDIR

+
+

Start Menu Folder Page Settings

+
+

Put the code to write the shortcuts (using CreateShortcut) between the MUI_STARTMENU_WRITE_BEGIN +and MUI_STARTMENU_WRITE_END macros:

+
+!insertmacro MUI_STARTMENU_WRITE_BEGIN page_id
+  ...create shortcuts...
 !insertmacro MUI_STARTMENU_WRITE_END
 
-

When using multiple Start Menu Folder pages, you should also undefine previous StartMenu page - defines and define the values of the page of which you want to write the value, before inserting the - MUI_STARTMENU_WRITE_BEGIN macro.

-

MUI_STARTMENUPAGE_TEXT text
- Text to display on the Start Menu folder page.

-

MUI_STARTMENUPAGE_TEXT_CHECKBOX text
- Text to display next to the checkbox to disable the Start Menu folder creation.

-

MUI_STARTMENUPAGE_VARIABLE variable
- 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.

-

MUI_STARTMENUPAGE_NODISABLE
- Do not display the checkbox to disable the creation of Start Menu - shortcuts.

-

MUI_STARTMENUPAGE_REGISTRY_ROOT root
- MUI_STARTMENUPAGE_REGISTRY_KEY key
- MUI_STARTMENUPAGE_REGISTRY_VALUENAME value_name
- The registry key to store the Start Menu folder. The page will use it to - 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, use the MUI_STARTMENU_GETFOLDER macro to get the Start Menu folder:

+

The page ID should be the ID of the page on which the user has selected the folder for the +shortcuts you want to write.

+

MUI_STARTMENUPAGE_TEXT_TOP text
+Text to display on the top of the page.

+

MUI_STARTMENUPAGE_TEXT_CHECKBOX text
+Text to display next to the checkbox to disable the Start Menu folder creation.

+

MUI_STARTMENUPAGE_VARIABLE variable
+Variable to store the current Start Menu Folder. You cannot use this variable in your script (or +you should Push/Pop it), therefore using a user variable is recommended.

+

MUI_STARTMENUPAGE_DEFAULTFOLDER folder
+The default Start Menu Folder.

+

MUI_STARTMENUPAGE_NODISABLE
+Do not display the checkbox to disable the creation of Start Menu shortcuts.

+

MUI_STARTMENUPAGE_REGISTRY_ROOT root
+MUI_STARTMENUPAGE_REGISTRY_KEY key
+MUI_STARTMENUPAGE_REGISTRY_VALUENAME value_name
+The registry key to store the Start Menu folder. The page will use it to 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, use the MUI_STARTMENU_GETFOLDER macro to get the Start Menu folder:

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

Installation Page Settings

+
+

MUI_INSTFILESPAGE_FINISHHEADER_TEXT text
+Text to display on the header of the installation page when the installation has been completed +(won't be displayed when using a Finish page without MUI_(UN)FINISHPAGE_NOAUTOCLOSE).

+

MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT text
+Subext to display on the header of the installation page when the installation has been completed +(won't be displayed when using a Finish page without MUI_(UN)FINISHPAGE_NOAUTOCLOSE).

+

MUI_INSTFILESPAGE_ABORTHEADER_TEXT text
+Text to display on the header of the installation page when the installation has been aborted.

+

MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT text
+Subext to display on the header of the installation page when the installation has been +aborted.

+
+

Finish Page Settings

+
+

MUI_FINISHPAGE_TITLE title
+Title to display on the top of the page.

+

MUI_FINISHPAGE_TEXT text
+Text to display on the page. Use \r\n for a newline.

+

MUI_FINISHPAGE_BUTTON text
+Text to display on the Finish button.

+

MUI_FINISHPAGE_TEXT_REBOOT text
+Text to display on the finish page when asking for a sytem reboot. Use \r\n for a newline.

+

MUI_FINISHPAGE_TEXT_REBOOTNOW text
+Text to display next to the 'Reboot now' option button.

+

MUI_FINISHPAGE_TEXT_REBOOTLATER text
+Text to display next to the 'Reboot later' option button.

+

MUI_FINISHPAGE_RUN exe_file
+Application which the user can select to run using a checkbox. You don't need to put quotes around +the filename when it contains spaces.

+
+

MUI_FINISHPAGE_RUN_TEXT text
+Texts to display next to the 'Run program' checkbox.

+

MUI_FINISHPAGE_RUN_PARAMETERS parameters
+Parameters for the application to run. Don't forget to escape double quotes in the value (use +$\").

+

MUI_FINISHPAGE_RUN_NOTCHECKED
+Do not check the 'Run program' checkbox by default

+

MUI_FINISHPAGE_RUN_FUNCTION function_name
+Call a function instead of executing an application (define MUI_FINISHPAGE_RUN without parameters). +You can use the function to exectute multiple applications or you can change the checkbox name and +use it for other things.

+
+

MUI_FINISHPAGE_SHOWREADME file/url
+File or website which the user can select to view using a checkbox. You don't need to put quotes +around the filename when it contains spaces.

+
+

MUI_FINISHPAGE_SHOWREADME_TEXT text
+Texts to display next to the 'Show Readme' checkbox.

+

MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
+Do not check the 'Show Readme' checkbox by default

+

MUI_FINISHPAGE_SHOWREADME_FUNCTION function_name
+Call a function instead of showing a file (define MUI_FINISHPAGE_SHOWREADME without parameters). +You can use the function to show multiple files or you can change the checkbox name and use it for +other things.

+
+

MUI_FINISHPAGE_LINK link_text
+Text for a link on the which the user can click to view a website or file.

+
+

MUI_FINISHPAGE_LINK_LOCATION file/url
+Website or file which the user can select to view using the link. You don't need to put quotes +around the filename when it contains spaces.

+

MUI_FINISHPAGE_LINK_COLOR (color: 0xBBGGRR +hexadecimal)
+Text color for the link on the Finish page.
+Default: 0x800000

+
+

MUI_FINISHPAGE_NOREBOOTSUPPORT
+Disables support for the page that allows the user to reboot the system. Define this option to save +some space if you are not using the /REBOOTOK flag or SetRebootFlag.

+
+

Uninstall Confirm Page Settings

+
+

MUI_UNCONFIRMPAGE_TEXT_TOP text
+Text to display on the top of the page.

+

MUI_UNCONFIRMPAGE_TEXT_LOCATION text
+Text to display next to the uninstall location text box.

+
+

Advanced Page Settings

+
+

You can add custom code to the page functions of your Modern UI pages. More info...

+
+
+

4. Custom functions

+

If you want add your own code to functions inserted by the Modern UI (e.g. the .onGUIInit +function and the page functions), create your own function and let the Modern UI functions call +them.

+

More info...

+

5. Language files

+

Insert the Modern UI language files for the languages to want to include.

+
+!insertmacro MUI_LANGUAGE "English"
 
-

When using multiple Start Menu Folder pages, you should also undefine previous StartMenu page - defines and define the values of the page of which you want to get the value, before inserting the - MUI_STARTMENU_GETFOLDER macro.

-
-

Installation Page Settings

-
-

MUI_INSTFILESPAGE_FINISHHEADER_TEXT text
- Text to display on the header of the installation page when the installation has been completed (won't be displayed when using - a Finish page without MUI_FINISHPAGE_NOAUTOCLOSE).

-

MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT text
- Subext to display on the header of the installation page when the installation has been completed (won't be displayed when using - a Finish page without MUI_FINISHPAGE_NOAUTOCLOSE).

-

MUI_INSTFILESPAGE_ABORTHEADER_TEXT text
- Text to display on the header of the installation page when the installation has been aborted.

-

MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT text
- Subext to display on the header of the installation page when the installation has been aborted.

-
-

Finish Page Settings

-
-

MUI_FINISHPAGE_TITLE title
- Title to display on the finish page.

-

MUI_FINISHPAGE_TEXT text
- Texts to display on the finish page. Use \r\n for a newline.

-

MUI_FINISHPAGE_BUTTON text
- Text to display on the Finish button.

-

MUI_FINISHPAGE_TEXT_REBOOT text
- Text to display on the finish page when asking for a sytem reboot. Use \r\n for a newline.

-

MUI_FINISHPAGE_TEXT_REBOOTNOW text
- Text to display next to the 'Reboot now' option button.

-

MUI_FINISHPAGE_TEXT_REBOOTLATER text
- Text to display next to the 'Reboot later' option button.

-

MUI_FINISHPAGE_RUN exe_file
- Application which the user can select to run using a checkbox. - You don't need to put quotes around the filename when it contains spaces.

-
-

MUI_FINISHPAGE_RUN_TEXT text
- Texts to display next to the 'Run program' checkbox.

-

MUI_FINISHPAGE_RUN_PARAMETERS parameters
- Parameters for the application to run. Don't forget to escape double - quotes in the value (use $\").

-

MUI_FINISHPAGE_RUN_NOTCHECKED
- Do not check the 'Run program' checkbox by default

-

MUI_FINISHPAGE_RUN_FUNCTION function_name
- Call a function instead of executing an application (define MUI_FINISHPAGE_RUN without parameters). - You can use the function to exectute multiple applications or you can change the checkbox name and - use it for other things.

-
-

MUI_FINISHPAGE_SHOWREADME file/url
- File or website which the user can select to view using a checkbox. - You don't need to put quotes around the filename when it contains spaces.

-
-

MUI_FINISHPAGE_SHOWREADME_TEXT text
- Texts to display next to the 'Show Readme' checkbox.

-

MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
- Do not check the 'Show Readme' checkbox by default

-

MUI_FINISHPAGE_SHOWREADME_FUNCTION function_name
- Call a function instead of showing a file (define MUI_FINISHPAGE_SHOWREADME without parameters). - You can use the function to show multiple files or you can change the checkbox name and - use it for other things.

-
-

MUI_FINISHPAGE_LINK link_text
- Text for a link on the which the user can click to view a website or file.

-
-

MUI_FINISHPAGE_LINK_LOCATION file/url
- Website or file which the user can select to view using the link. - You don't need to put quotes around the filename when it contains spaces.

-

MUI_FINISHPAGE_LINK_COLOR (color: 0xBBGGRR hexadecimal)
- Text color for the link on the Finish page.
Default: 0x800000

-
-

MUI_FINISHPAGE_NOREBOOTSUPPORT
- Disables support for the page that allows the user to reboot the system. - Define this option to save some space if you are not using the /REBOOTOK - flag or SetRebootFlag.

-
-

Uninstall Confirm Page Settings

-
-

MUI_UNCONFIRMPAGE_TEXT text [subtext]
- Texts to display on the uninstall confirm page. See syntax information about setting multiple texts.

-
-

Advanced Page Settings

-
-

You can add custom code to the page functions of your Modern UI pages. - More info...

-
-
-

4. Custom functions

-

If you want add your own code to functions inserted by the - Modern UI (i.e. the .onGUIInit function and the page functions), create your - own function and let the Modern UI functions call them.

-

More info...

-

5. Language files

-

Insert the Modern UI language files for the languages to want to include.

-
!insertmacro MUI_LANGUAGE "English"
-

The Modern UI language files load the NLF language files, - so you should not use LoadLanguageFile.

-

Language Selection Dialog

-
-

If you want the installer to display a language selection dialog - (have a look at the - MultiLanguage.nsi example), insert the MUI_LANGDLL_DISPLAY macro in the .onInit function.

+

The Modern UI language files load the NLF language files, so you should not use +LoadLanguageFile.

+

Language Selection Dialog

+
+

If you want the installer to display a language selection dialog (have a look at the MultiLanguage.nsi example), insert the +MUI_LANGDLL_DISPLAY macro in the .onInit function.

 Function .onInit
 
@@ -554,61 +567,59 @@ Function .onInit
 
 FunctionEnd
 
-

Language Selection Dialog Settings

-
-

To remember to users preference, you can define a registry key.
- Note: These defines should be set before inserting the instfiles page macro.

-

MUI_LANGDLL_REGISTRY_ROOT root
- MUI_LANGDLL_REGISTRY_KEY key
- MUI_LANGDLL_REGISTRY_VALUENAME value_name
- The registry key to store the language. The users preference will be remembered. - You can also use it in the uninstaller to display the right language. Don't forget - to remove this key in the uninstaller.

-

In the uninstaller, insert the MUI_UNGETLANGUAGE macro in un.onInit to get the stored language - preference.

+

Language Selection Dialog Settings

+
+

To remember to users preference, you can define a registry key.
+Note: These defines should be set before inserting the instfiles page macro.

+

MUI_LANGDLL_REGISTRY_ROOT root
+MUI_LANGDLL_REGISTRY_KEY key
+MUI_LANGDLL_REGISTRY_VALUENAME value_name
+The registry key to store the language. The users preference will be remembered. You can also use +it in the uninstaller to display the right language. Don't forget to remove this key in the +uninstaller.

+

In the uninstaller, insert the MUI_UNGETLANGUAGE macro in un.onInit to get the stored language +preference.

 Function un.onInit
 
   !insertmacro MUI_UNGETLANGUAGE
 
 FunctionEnd
-
-
-

Language Selection Dialog Interface Settings

-
-

To customize the language selection dialog interface, use these defines before inserting - the MUI_LANGDLL_DISPLAY macro.

-

MUI_LANGDLL_WINDOWTITLE text
- The window title of the language selection dialog.

-

MUI_LANGDLL_INFO text
- The text to display on the language selection dialog.

-

MUI_LANGDLL_ALWAYSSHOW
- Always show the language selection dialog, even if a language has been stored in the registry. - The language stored in the registry will be selected by default.

-
-
-

6. Reserve files

-

If you are using BZIP2 (solid) compression, 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 the reserve file macros above your sections and -functions.

-
ReserveFile "ioFile.ini" ;Your own InstallOptions INI files
+
+

Language Selection Dialog Interface Settings

+
+

To customize the language selection dialog interface, use these defines before inserting the +MUI_LANGDLL_DISPLAY macro.

+

MUI_LANGDLL_WINDOWTITLE text
+The window title of the language selection dialog.

+

MUI_LANGDLL_INFO text
+The text to display on the language selection dialog.

+

MUI_LANGDLL_ALWAYSSHOW
+Always show the language selection dialog, even if a language has been stored in the registry. The +language stored in the registry will be selected by default.

+
+
+

6. Reserve files

+

If you are using BZIP2 (solid) compression, 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 +the reserve file macros above your sections and functions.

+
+ReserveFile "ioFile.ini" ;Your own InstallOptions INI files
 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ;InstallOptions plug-in
 !insertmacro MUI_RESERVEFILE_LANGDLL ;Language selection dialog
 
-

7. Your own sections and functions

-

Add your installer sections and functions. - See the NSIS Users Manual for details.

-

8. Descriptions for the sections

-

The descriptions of sections will be displayed on the - components page, when the user hovers the mouse over a section. - If you don't want to use descriptions, use the MUI_COMPONENTSPAGE_NODESC - setting.

-

To set a description for a section, you have to add an - additional parameter to the Section commmand with a name for the define - that should contain the section number.

+

7. Your own sections and functions

+

Add your installer sections and functions. See the NSIS Users Manual for details.

+

Information about section- and function code for Start Menu shortcut creation and language +selection can be found above.

+

8. Descriptions for the sections

+

The descriptions of sections will be displayed on the components page, when the user hovers the +mouse over a section. If you don't want to use descriptions, use the MUI_COMPONENTSPAGE_NODESC +interface setting.

+

To set a description for a section, you have to add an additional parameter to the Section +commmand with a name for the define that should contain the section number.

 Section "Section Name 1" Section1
    ...
@@ -624,8 +635,8 @@ LangString DESC_Section2 ${LANG_ENGLISH} "Description of section 2."
   !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
 !insertmacro MUI_FUNCTION_DESCRIPTION_END
 
-

For the uninstaller, use the MUI_UNFUNCTION_DESCRIPTION_BEGIN -and MUI_UNFUNCTIONS_DESCRIPTION_END macros

+

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
@@ -634,10 +645,10 @@ ReserveFile "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ;Your header bitmap
 !insertmacro MUI_RESERVEFILE_LANGDLL ;LangDLL (language selection dialog)
 !insertmacro MUI_RESERVEFILE_STARTMENU ;Start Menu Folder page
 
-

Custom pages

+

Custom pages

Custom page commands

-

If you want add custom pages to your installer, you should insert your -own page commands between the page macros.

+

If you want add custom pages to your installer, you should insert your own page commands between +the page macros.

 !insertmacro MUI_PAGE_WELCOME
 Page custom FunctionName ;Custom page
@@ -649,28 +660,27 @@ UninstPage custom un.FunctionName ;Custom page
 !insertmacro MUI_UNPAGE_INSTFILES
 

Call InstallOptions

-

InstallOptions is a plug-in that displays custom pages that you can create -using INI files.

-

Have a look at the -InstallOptions documentation for info about creating InstallOptions INI files.

-

First, you have to extract your InstallOptions INI File in the .onInit function -(un.onInit for the uninstaller) using the MUI_INSTALLOPTIONS_EXTRACT macro.

+

InstallOptions is a plug-in that displays custom pages that you can create using INI files.

+

Have a look at the InstallOptions documentation for +info about creating InstallOptions INI files.

+

First, you have to extract your InstallOptions INI File in the .onInit function (un.onInit for +the uninstaller) using the MUI_INSTALLOPTIONS_EXTRACT macro.

 Function .onInit
   !insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioFile.ini"
 FunctionEnd
 
-

If your INI File is located in another directory, use MUI_INSTALLOPTIONS_EXTRACT_AS. -The second parameter is the filename for the temporary plug-ins directory, use this filename as -parameter for the other InstallOptions macros.

+

If your INI File is located in another directory, use MUI_INSTALLOPTIONS_EXTRACT_AS. The second +parameter is the filename for the temporary plug-ins directory, use this filename as parameter for +the other InstallOptions macros.

 Function .onInit
   !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "..\ioFile.ini" "ioFile.ini"
 FunctionEnd
 
-

You can call Instal Options in the function defined with the Page -or UninstPage command using the MUI_INSTALLOPTIONS_DISPLAY macro. -Use the MUI_HEADER_TEXT macro to set the text in the white box.

+

You can call Instal Options in the function defined with the Page or UninstPage command using +the MUI_INSTALLOPTIONS_DISPLAY macro. Use the MUI_HEADER_TEXT macro to set the text in the white +box.

 LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page Title"
 LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "A subtitle"
@@ -680,8 +690,8 @@ Function FunctionName ;FunctionName defined with Page command
   !insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioFile.ini"
 FunctionEnd
 
-

For custom fonts and colors, macros for the initDialog and show -functions of InstallOptions are also available.

+

For custom fonts and colors, macros for the initDialog and show functions of InstallOptions are +also available.

 Var HWND
 Var DLGITEM
@@ -702,52 +712,52 @@ Function FunctionName ;FunctionName defined with Page command
   ;$DLGITEM contains the HWND of the first field
   CreateFont $FONT "Tahoma" 10 700 
   SendMessage $DLGITEM ${WM_SETFONT} $FONT 0
-	
+        
   !insertmacro MUI_INSTALLOPTIONS_SHOW
 
 FunctionEnd
 
-

If you need the InstallOptions return value (success, back, cancel, error), -use the MUI_INSTALLOPTIONS_DISPLAY_RETURN or MUI_INSTALLOPTIONS_SHOW_RETURN macro. The -return value will be added to the stack, so you can use the Pop command to get it.

+

If you need the InstallOptions return value (success, back, cancel, error), use the +MUI_INSTALLOPTIONS_DISPLAY_RETURN or MUI_INSTALLOPTIONS_SHOW_RETURN macro. The return value will be +added to the stack, so you can use the Pop command to get it.

Use these macros to read or write INI file values.

 !insertmacro MUI_INSTALLOPTIONS_READ $VAR "ioFile.ini" "Field #" "Value Name"
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioFile.ini" "Field #" "Value Name" "Value"
 
-

For example, you can use the MUI_INSTALLOPTIONS_READ macro in a section -to get the user input:

-
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "ioFile.ini" "Field 1" "State"
-

For more details about InstallOptions, validation of user input etc., check the -InstallOptions documentation.

-

Examples

-

Basic: Basic.nsi
- Welcome/Finish page: WelcomeFinish.nsi
- Multilanguage: MultiLanguage.nsi
- Header image: HeaderBitmap.nsi
- Custom pages: InstallOptions.nsi
- Start Menu Folder page: StartMenu.nsi
-

+

For example, you can use the MUI_INSTALLOPTIONS_READ macro in a section to get the user +input:

+
+!insertmacro MUI_INSTALLOPTIONS_READ $R0 "ioFile.ini" "Field 1" "State"
+
+

For more details about InstallOptions, validation of user input etc., check the InstallOptions documentation.

+

Examples

+

Basic: Basic.nsi
+Welcome/Finish page: WelcomeFinish.nsi
+Multiple languages: MultiLanguage.nsi
+Header image: HeaderBitmap.nsi
+Custom pages: InstallOptions.nsi
+Start Menu Folder page: StartMenu.nsi

Customize the dialogs

-

To change elements on the dialogs, use customized UI resource files - (see Interface settings). You can change your copies of the original files (in the - Contrib\UIs folder) by using an application such as - Resource Hacker.

-

The 'Please wait while Setup is loading...' text on the splash - screen that is being displayed while the installer is starting (Verifying installer, - Unpacking data) can be changed by using a customized UI resource file (MUI_UI setting) - with a modified dialog 111.
- 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 have to edit this - file and recompile NSIS.

-

To modify the Welcome- and Finish dialog, use a custom INI file - (MUI_SPECIALINI setting) or write to the INI file in the custom page functions.

-

Customize Modern UI Functions

-

If you want add your own code to functions - inserted by the Modern UI, such as the .onGUIInit function and the Page functions, - create your own function and let the Modern UI functions call them. Use the defines - to define the name of your functions.

-

Example:

+

To change elements on the dialogs, use customized UI resource files (see Interface settings). +You can change your copies of the original files (in the Contrib\UIs folder) by using an +application such as Resource +Hacker.

+

The 'Please wait while Setup is loading...' text on the splash screen that is being displayed +while the installer is starting (Verifying installer, Unpacking data) can be changed by using a +customized UI resource file (MUI_UI setting) with a modified dialog 111.
+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 have to edit this file and recompile +NSIS.

+

To modify the Welcome- and Finish dialog, use a custom INI file (MUI_SPECIALINI setting) or +write to the INI file in the custom page functions.

+

Customize Modern UI Functions

+

If you want add your own code to functions inserted by the Modern UI, such as the .onGUIInit +function and the Page functions, create your own function and let the Modern UI functions call +them. Use the defines to define the name of your functions.

+

Example:

 !define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit
 
@@ -755,104 +765,108 @@ Function myGUIInit
   ...your own code...
 FunctionEnd
 
-

General Custom Functions

-
-

These defines should be set before inserting a the language macros.

-

MUI_CUSTOMFUNCTION_GUIINIT function
- MUI_CUSTOMFUNCTION_UNGUIINIT function
- MUI_CUSTOMFUNCTION_ABORT function
- MUI_CUSTOMFUNCTION_UNABORT function

-
-

Page Custom Functions

-
-

These defines should be set before inserting a page macro.

-

MUI_PAGE_CUSTOMFUNCTION_PRE function
- MUI_PAGE_CUSTOMFUNCTION_SHOW function
- MUI_PAGE_CUSTOMFUNCTION_LEAVE function

-

Notes:

-
    -
  • The StartMenu page does not have a Show function
  • -
  • In the Pre function of the Welcome- and Finish page, you can write to the InstallOptions INI file - of the page (ioSpecial.ini)
  • -
  • In the Show function of Welcome- and Finish page, $MUI_HWND contains the HWND of the inner dialog
  • -
-
+

General Custom Functions

+
+

These defines should be set before inserting a the language macros.

+

MUI_CUSTOMFUNCTION_GUIINIT function
+MUI_CUSTOMFUNCTION_UNGUIINIT function
+MUI_CUSTOMFUNCTION_ABORT function
+MUI_CUSTOMFUNCTION_UNABORT function

+
+

Page Custom Functions

+
+

These defines should be set before inserting a page macro.

+

MUI_PAGE_CUSTOMFUNCTION_PRE function
+MUI_PAGE_CUSTOMFUNCTION_SHOW function
+MUI_PAGE_CUSTOMFUNCTION_LEAVE function

+

Notes:

+
    +
  • The StartMenu page does not have a Show function
  • +
  • In the Pre function of the Welcome- and Finish page, you can write to the InstallOptions INI +file of the page (ioSpecial.ini)
  • +
  • In the Show function of Welcome- and Finish page, $MUI_HWND contains the HWND of the inner +dialog
  • +
+

Version history

    -
  • 1.67 - November 7, 2003 -
      -
    • Support for uninstaller Welcome- and Finish pages
    • -
    • Renamed a few settings
    • -
    • Default header image
    • -
    • Support for uninstaller abort warning
    • -
    • Setting for 3 line text on Welcome- and Finish page
    • -
    • Langauge file backwards compatibility: English for missing strings
    • -
    • Support for different uninstaller header image
    • -
    • Language selection dialog not displayed if installer is silent
    • -
    • Cancel button on Finish page when there are options
    • -
  • +
  • 1.67 - November 9, 2003 +
      +
    • Support for uninstaller Welcome- and Finish pages
    • +
    • Improved and changed text settings
    • +
    • ID for Start Menu Folder pages, easier to use multiple pages
    • +
    • Renamed a few settings
    • +
    • Default header image
    • +
    • Support for uninstaller abort warning
    • +
    • Setting for 3 line text on Welcome- and Finish page
    • +
    • Langauge file backwards compatibility: English for missing strings
    • +
    • Support for different uninstaller header image
    • +
    • Language selection dialog not displayed if installer is silent
    • +
    • Cancel button on Finish page when there are options
    • +
    +
  • 1.66 - October 7, 2003 -
      -
    • New system for page settings and custom pages
    • -
    • Support for uninstaller components page
    • -
    • Support for multiple pages of the same type
    • -
    • New possition for interface settings
    • -
    • Changed macro, setting names
    • -
    • Updated langauge system, new language files and settings
    • -
    • Removed MUI_PRODUCT and MUI VERSION. Use Name command now.
    • -
    • Removed MUI_BRANDINGTEXT. Use BrandingText command now.
    • -
  • +
      +
    • New system for page settings and custom pages
    • +
    • Support for uninstaller components page
    • +
    • Support for multiple pages of the same type
    • +
    • New possition for interface settings
    • +
    • Changed macro, setting names
    • +
    • Updated langauge system, new language files and settings
    • +
    • Removed MUI_PRODUCT and MUI VERSION. Use Name command now.
    • +
    • Removed MUI_BRANDINGTEXT. Use BrandingText command now.
    • +
    +
  • 1.65 - August 12, 2003 -
      -
    • New page configuration system, no different system for installers - with custom pages
    • -
    • Default windows color for the license text background
    • -
    • 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
    • -
  • +
      +
    • New page configuration system, no different system for installers with custom pages
    • +
    • Default windows color for the license text background
    • +
    • 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 user accept the agreement or not
    • -
    • Macros for finish headers don't have to be inserted anymore
    • -
    • Language preference stored when installation has completed, - no problems anymore when the users selects the wrong language
    • -
    • Header text for aborted installation
    • -
    • New macros: get language for uninstaller, delete shortcuts
    • -
    • Language specific fonts
    • -
    • Welcome/Finish page INI files can be modified in pre functions
    • -
    • More texts can be customized
    • -
  • +
      +
    • Support for license page with checkbox or radiobuttons to let the user accept the agreement or +not
    • +
    • Macros for finish headers don't have to be inserted anymore
    • +
    • Language preference stored when installation has completed, no problems anymore when the users +selects the wrong language
    • +
    • Header text for aborted installation
    • +
    • New macros: get language for uninstaller, delete shortcuts
    • +
    • Language specific fonts
    • +
    • Welcome/Finish page INI files can be modified in pre functions
    • +
    • More texts can be customized
    -

    Complete version history

    + +
+

Complete version history

Credits

-

Made by Joost Verburg.
- Icons designed by Nikos Adamamas, aka adni18.
- Thanks to Amir Szekely, aka KiCHiK, for his work on NSIS - to make this possible.

+

Made by Joost Verburg.
+Icons designed by Nikos Adamamas, aka adni18.
+Thanks to Amir Szekely, aka KiCHiK, for his work on NSIS to make this possible.

Help

-

Please post questions at the - NSIS Forum.

+

Please post questions at the NSIS +Forum.

License

-
Copyright © 2002-2003 Joost Verburg
+
+Copyright © 2002-2003 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
@@ -869,16 +883,18 @@ it freely, subject to the following restrictions:
 2. Altered versions must be plainly marked as such,
    and must not be misrepresented as being the original software.
 3. This notice may not be removed or altered from any distribution.
-
-
+ +
-
- - \ No newline at end of file + diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh index 3d190fa6..8cef421d 100644 --- a/Contrib/Modern UI/System.nsh +++ b/Contrib/Modern UI/System.nsh @@ -30,7 +30,7 @@ Var MUI_TEMP2 ;INSERT CODE !macro MUI_INSERT - + !ifdef MUI_PRODUCT | MUI_VERSION !warning "The MUI_PRODUCT and MUI_VERSION defines have been removed. Use a normal Name command now." !endif @@ -47,94 +47,66 @@ Var MUI_TEMP2 !insertmacro MUI_UNFUNCTION_GUIINIT !insertmacro MUI_FUNCTION_UNABORTWARNING !endif + +!macroend + +;-------------------------------- +;GENERAL + +!macro MUI_DEFAULT SYMBOL CONTENT + !ifndef "${SYMBOL}" + !define "${SYMBOL}" "${CONTENT}" + !endif + +!macroend + +!macro MUI_SET SYMBOL + + !ifndef "${SYMBOL}" + !define "${SYMBOL}" + !endif + +!macroend + +!macro MUI_UNSET SYMBOL + + !ifdef "${SYMBOL}" + !undef "${SYMBOL}" + !endif + !macroend ;-------------------------------- ;INTERFACE - COMPILE TIME SETTINGS !macro MUI_INTERFACE - + !ifdef MUI_INSERT_NSISCONF !insertmacro MUI_NSISCONF !endif - !ifndef MUI_UI - !define MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe" - !endif - - !ifndef MUI_UI_HEADERIMAGE - !define MUI_UI_HEADERIMAGE "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe" - !endif - - !ifndef MUI_UI_HEADERIMAGE_RIGHT - !define MUI_UI_HEADERIMAGE_RIGHT "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe" - !endif - - !ifndef MUI_UI_COMPONENTSPAGE_SMALLDESC - !define MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISDIR}\Contrib\UIs\modern_smalldesc.exe" - !endif - - !ifndef MUI_UI_COMPONENTSPAGE_NODESC - !define MUI_UI_COMPONENTSPAGE_NODESC "${NSISDIR}\Contrib\UIs\modern_nodesc.exe" - !endif - - !ifndef MUI_ICON - !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" - !endif - - !ifndef MUI_UNICON - !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" - !endif - - !ifndef MUI_COMPONENTSPAGE_CHECKBITMAP - !define MUI_COMPONENTSPAGE_CHECKBITMAP "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp" - !endif - - !ifndef MUI_LICENSEPAGE_BGCOLOR - !define MUI_LICENSEPAGE_BGCOLOR "/windows" - !endif - - !ifndef MUI_INSTFILESPAGE_COLORS - !define MUI_INSTFILESPAGE_COLORS "/windows" - !endif - - !ifndef MUI_INSTFILESPAGE_PROGRESSBAR - !define MUI_INSTFILESPAGE_PROGRESSBAR "smooth" - !endif - - !ifndef MUI_BGCOLOR - !define MUI_BGCOLOR "FFFFFF" - !endif - - !ifndef MUI_WELCOMEFINISHPAGE_INI - !define MUI_WELCOMEFINISHPAGE_INI "${NSISDIR}\Contrib\Modern UI\ioSpecial.ini" - !endif - - !ifndef MUI_WELCOMEFINISHPAGE_INI_3LINES - !define MUI_WELCOMEFINISHPAGE_INI_3LINES "${NSISDIR}\Contrib\Modern UI\ioSpecial3.ini" - !endif - - !ifndef MUI_UNWELCOMEFINISHPAGE_INI - !define MUI_UNWELCOMEFINISHPAGE_INI "${NSISDIR}\Contrib\Modern UI\ioSpecial.ini" - !endif - - !ifndef MUI_UNWELCOMEFINISHPAGE_INI_3LINES - !define MUI_UNWELCOMEFINISHPAGE_INI_3LINES "${NSISDIR}\Contrib\Modern UI\ioSpecial3.ini" - !endif - - !ifndef MUI_WELCOMEFINISHPAGE_BITMAP - !define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" - !endif - - !ifndef MUI_UNWELCOMEFINISHPAGE_BITMAP - !define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" - !endif + !insertmacro MUI_DEFAULT MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe" + !insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe" + !insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE_RIGHT "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe" + !insertmacro MUI_DEFAULT MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISDIR}\Contrib\UIs\modern_smalldesc.exe" + !insertmacro MUI_DEFAULT MUI_UI_COMPONENTSPAGE_NODESC "${NSISDIR}\Contrib\UIs\modern_nodesc.exe" + !insertmacro MUI_DEFAULT MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" + !insertmacro MUI_DEFAULT MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" + !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_CHECKBITMAP "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp" + !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_BGCOLOR "/windows" + !insertmacro MUI_DEFAULT MUI_INSTFILESPAGE_COLORS "/windows" + !insertmacro MUI_DEFAULT MUI_INSTFILESPAGE_PROGRESSBAR "smooth" + !insertmacro MUI_DEFAULT MUI_BGCOLOR "FFFFFF" + !insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_INI "${NSISDIR}\Contrib\Modern UI\ioSpecial.ini" + !insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_INI_3LINES "${NSISDIR}\Contrib\Modern UI\ioSpecial3.ini" + !insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_INI "${NSISDIR}\Contrib\Modern UI\ioSpecial.ini" + !insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_INI_3LINES "${NSISDIR}\Contrib\Modern UI\ioSpecial3.ini" + !insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" + !insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" !ifdef MUI_HEADERIMAGE - !ifndef MUI_HEADERIMAGE_BITMAP - !define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" - !endif + !insertmacro MUI_DEFAULT MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" !ifndef MUI_HEADERIMAGE_UNBITMAP !define MUI_HEADERIMAGE_UNBITMAP "${MUI_HEADERIMAGE_BITMAP}" !ifdef MUI_HEADERIMAGE_NOSTRETCH @@ -168,7 +140,10 @@ Var MUI_TEMP2 LicenseBkColor "${MUI_LICENSEPAGE_BGCOLOR}" InstallColors ${MUI_INSTFILESPAGE_COLORS} InstProgressFlags ${MUI_INSTFILESPAGE_PROGRESSBAR} - + + !insertmacro MUI_DEFAULT MUI_ABORTWARNING_TEXT "$(MUI_TEXT_ABORTWARNING)" + !insertmacro MUI_DEFAULT MUI_UNABORTWARNING_TEXT "$(MUI_UNTEXT_ABORTWARNING)" + !macroend ;-------------------------------- @@ -205,14 +180,10 @@ Var MUI_TEMP2 !ifdef MUI_PAGE_HEADER_TEXT & MUI_PAGE_HEADER_SUBTEXT !insertmacro MUI_HEADER_TEXT "${MUI_PAGE_HEADER_TEXT}" "${MUI_PAGE_HEADER_SUBTEXT}" - !undef MUI_PAGE_HEADER_TEXT - !undef MUI_PAGE_HEADER_SUBTEXT !else ifdef MUI_PAGE_HEADER_TEXT !insertmacro MUI_HEADER_TEXT "${MUI_PAGE_HEADER_TEXT}" "${SUBTEXT}" - !undef MUI_PAGE_HEADER_TEXT !else ifdef MUI_PAGE_HEADER_SUBTEXT !insertmacro MUI_HEADER_TEXT "${TEXT}" "${MUI_PAGE_HEADER_SUBTEXT}" - !undef MUI_PAGE_HEADER_SUBTEXT !else !insertmacro MUI_HEADER_TEXT "${TEXT}" "${SUBTEXT}" !endif @@ -267,14 +238,11 @@ Var MUI_TEMP2 !ifdef MUI_INSTFILESPAGE_FINISHHEADER_TEXT !ifdef MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_FINISHHEADER_TEXT}" "${MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT}" - !undef MUI_INSTFILESPAGE_FINISHHEADER_TEXT - !undef MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT !else - !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_FINISHHEADER_TEXT}" "$(MUI_${MUI_PAGE_UNINSTALLER}TEXT_FINISH_SUBTITLE)" - !undef MUI_INSTFILESPAGE_FINISHHEADER_TEXT + !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_FINISHHEADER_TEXT}" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SUBTITLE)" !endif !else - !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER}TEXT_FINISH_TITLE)" "$(MUI_${MUI_PAGE_UNINSTALLER}TEXT_FINISH_SUBTITLE)" + !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_TITLE)" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SUBTITLE)" !endif Goto mui.finishheader_done @@ -285,14 +253,14 @@ Var MUI_TEMP2 !ifdef MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_ABORTHEADER_TEXT}" "${MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT}" !else - !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_ABORTHEADER_TEXT}" "$(MUI_${MUI_PAGE_UNINSTALLER}TEXT_FINISH_SUBTITLE)" + !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_ABORTHEADER_TEXT}" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SUBTITLE)" !endif !else - !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER}TEXT_ABORT_TITLE)" "$(MUI_${MUI_PAGE_UNINSTALLER}TEXT_FINISH_SUBTITLE)" + !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_TITLE)" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SUBTITLE)" !endif mui.finishheader_done: - + !macroend !macro MUI_ABORTWARNING @@ -300,13 +268,9 @@ Var MUI_TEMP2 !ifdef MUI_FINISHPAGE_ABORTWARNINGCHECK StrCmp $MUI_NOABORTWARNING "1" mui.quit !endif - - !ifdef MUI_ABORTWARNING_TEXT - MessageBox MB_YESNO|MB_ICONEXCLAMATION "${MUI_ABORTWARNING_TEXT}" IDYES mui.quit - !else - MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(MUI_TEXT_ABORTWARNING)" IDYES mui.quit - !endif - + + MessageBox MB_YESNO|MB_ICONEXCLAMATION "${MUI_ABORTWARNING_TEXT}" IDYES mui.quit + Abort mui.quit: @@ -314,24 +278,20 @@ Var MUI_TEMP2 !macro MUI_UNABORTWARNING - !ifdef MUI_UNABORTWARNING_TEXT - MessageBox MB_YESNO|MB_ICONEXCLAMATION "${MUI_UNABORTWARNING_TEXT}" IDYES mui.quit - !else - MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(MUI_UNTEXT_ABORTWARNING)" IDYES mui.quit - !endif - + MessageBox MB_YESNO|MB_ICONEXCLAMATION "${MUI_UNABORTWARNING_TEXT}" IDYES mui.quit + Abort mui.quit: !macroend !macro MUI_GUIINIT - + !insertmacro MUI_WELCOMEFINISHPAGE_INIT "" !insertmacro MUI_HEADERIMAGE_INIT "" !insertmacro MUI_GUIINIT_BASIC - + !macroend !macro MUI_UNGUIINIT @@ -341,10 +301,12 @@ Var MUI_TEMP2 !insertmacro MUI_GUIINIT_BASIC - !ifndef MUI_UNFINISHPAGE_NOAUTOCLOSE - SetAutoClose true + !ifdef MUI_UNFINISHPAGE + !ifndef MUI_UNFINISHPAGE_NOAUTOCLOSE + SetAutoClose true + !endif !endif - + !macroend !macro MUI_GUIINIT_BASIC @@ -542,44 +504,40 @@ Var MUI_TEMP2 ;-------------------------------- ;START MENU FOLDER -!macro MUI_STARTMENU_GETFOLDER VAR +!macro MUI_STARTMENU_GETFOLDER ID VAR - !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}" + !ifdef MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT & MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY & MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME + + ReadRegStr $MUI_TEMP1 "${MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME}" StrCmp $MUI_TEMP1 "" +3 StrCpy "${VAR}" $MUI_TEMP1 Goto +2 - StrCpy "${VAR}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + StrCpy "${VAR}" "${MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER}" !else - StrCpy "${VAR}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + StrCpy "${VAR}" "${MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER}" !endif !macroend -!macro MUI_STARTMENU_GETFOLDER_IFEMPTY VAR - - StrCmp ${VAR} "" 0 mui.startmenu_writebegin_notempty - - !insertmacro MUI_STARTMENU_GETFOLDER ${VAR} - - mui.startmenu_writebegin_notempty: - -!macroend - -!macro MUI_STARTMENU_WRITE_BEGIN +!macro MUI_STARTMENU_WRITE_BEGIN ID !verbose push !verbose 3 - StrCpy $MUI_TEMP1 "${MUI_STARTMENUPAGE_VARIABLE}" 1 - StrCmp $MUI_TEMP1 ">" mui.startmenu_write_done + !define MUI_STARTMENUPAGE_CURRENT_ID "${ID}" + + StrCpy $MUI_TEMP1 "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" 1 + StrCmp $MUI_TEMP1 ">" mui.startmenu_write_${MUI_STARTMENUPAGE_CURRENT_ID}_done - !insertmacro MUI_STARTMENU_GETFOLDER_IFEMPTY "${MUI_STARTMENUPAGE_VARIABLE}" + StrCmp "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" "" 0 mui.startmenu_writebegin_${MUI_STARTMENUPAGE_CURRENT_ID}_notempty + + !insertmacro MUI_STARTMENU_GETFOLDER "${MUI_STARTMENUPAGE_CURRENT_ID}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" + + mui.startmenu_writebegin_${MUI_STARTMENUPAGE_CURRENT_ID}_notempty: !verbose pop @@ -590,11 +548,13 @@ Var MUI_TEMP2 !verbose push !verbose 3 - !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME - WriteRegStr "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" "${MUI_STARTMENUPAGE_VARIABLE}" + !ifdef MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_ROOT & MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_KEY & MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_VALUENAME + WriteRegStr "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_VALUENAME}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" !endif - mui.startmenu_write_done: + mui.startmenu_write_${MUI_STARTMENUPAGE_CURRENT_ID}_done: + + !undef MUI_STARTMENUPAGE_CURRENT_ID !verbose pop @@ -610,17 +570,13 @@ Var MUI_TEMP2 !define MUI_INSERT_INTERFACE !endif - !ifndef MUI_PAGE_UNINSTALLER - !define MUI_PAGE_UNINSTALLER "" - !endif + !insertmacro MUI_DEFAULT MUI_PAGE_UNINSTALLER_PREFIX "" + !insertmacro MUI_DEFAULT MUI_PAGE_UNINSTALLER_FUNCPREFIX "" - !ifndef MUI_PAGE_UNINSTALLER_PREFIX - !define MUI_PAGE_UNINSTALLER_PREFIX "" - !endif + !insertmacro MUI_UNSET MUI_UNIQUEID - !ifdef MUI_UNIQUEID - !undef MUI_UNIQUEID - !endif + !insertmacro MUI_UNSET MUI_PAGE_HEADER_TEXT + !insertmacro MUI_UNSET MUI_PAGE_HEADER_SUBTEXT !define MUI_UNIQUEID ${__LINE__} @@ -632,16 +588,13 @@ Var MUI_TEMP2 !define MUI_UNINSTALLER !endif - !ifdef MUI_PAGE_UNINSTALLER - !undef MUI_PAGE_UNINSTALLER - !endif + !define MUI_PAGE_UNINSTALLER - !ifdef MUI_PAGE_UNINSTALLER_PREFIX - !undef MUI_PAGE_UNINSTALLER_PREFIX - !endif + !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER_PREFIX + !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER_FUNCPREFIX - !define MUI_PAGE_UNINSTALLER "UN" - !define MUI_PAGE_UNINSTALLER_PREFIX "un." + !define MUI_PAGE_UNINSTALLER_PREFIX "UN" + !define MUI_PAGE_UNINSTALLER_FUNCPREFIX "un." !macroend @@ -649,6 +602,7 @@ Var MUI_TEMP2 !undef MUI_PAGE_UNINSTALLER !undef MUI_PAGE_UNINSTALLER_PREFIX + !undef MUI_PAGE_UNINSTALLER_FUNCPREFIX !macroend @@ -659,18 +613,27 @@ Var MUI_TEMP2 !insertmacro MUI_PAGE_INIT - !ifndef MUI_${MUI_PAGE_UNINSTALLER}WELCOMEPAGE - !define MUI_${MUI_PAGE_UNINSTALLER}WELCOMEPAGE + !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEPAGE + + !insertmacro MUI_DEFAULT MUI_WELCOMEPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TITLE)" + !insertmacro MUI_DEFAULT MUI_WELCOMEPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TEXT)" + + !ifndef MUI_VAR_HWND + Var MUI_HWND + !define MUI_VAR_HWND !endif - PageEx ${MUI_PAGE_UNINSTALLER_PREFIX}custom + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID} - PageCallbacks ${MUI_PAGE_UNINSTALLER_PREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.WelcomeLeave_${MUI_UNIQUEID} - PageExEnd - !insertmacro MUI_FUNCTION_WELCOMEPAGE ${MUI_PAGE_UNINSTALLER_PREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.WelcomeLeave_${MUI_UNIQUEID} - + !insertmacro MUI_FUNCTION_WELCOMEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE + !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TEXT + !verbose pop !macroend @@ -682,61 +645,52 @@ Var MUI_TEMP2 !insertmacro MUI_PAGE_INIT - !ifndef MUI_${MUI_PAGE_UNINSTALLER}LICENSEPAGE - !define MUI_${MUI_PAGE_UNINSTALLER}LICENSEPAGE - !endif + !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}LICENSEPAGE - PageEx ${MUI_PAGE_UNINSTALLER_PREFIX}license + !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_TEXT_TOP "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_TOP)" + !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_BUTTON "" + !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_CHECKBOX_TEXT "" + !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT "" + !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE "" - PageCallbacks ${MUI_PAGE_UNINSTALLER_PREFIX}mui.LicensePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.LicenseShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.LicenseLeave_${MUI_UNIQUEID} + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}license + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicensePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseLeave_${MUI_UNIQUEID} Caption " " LicenseData "${LICENSEDATA}" - !ifndef MUI_LICENSEPAGE_TEXT - !ifndef MUI_LICENSEPAGE_CHECKBOX & MUI_LICENSEPAGE_RADIOBUTTONS - LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER}INNERTEXT_LICENSE_BOTTOM)" + !ifndef MUI_LICENSEPAGE_TEXT_BOTTOM + !ifdef MUI_LICENSEPAGE_CHECKBOX & MUI_LICENSEPAGE_RADIOBUTTONS + LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM)" "${MUI_LICENSEPAGE_BUTTON}" !else ifdef MUI_LICENSEPAGE_CHECKBOX - LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER}INNERTEXT_LICENSE_BOTTOM_CHECKBOX)" + LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM_CHECKBOX)" "${MUI_LICENSEPAGE_BUTTON}" !else - LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER}INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS)" + LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS)" "${MUI_LICENSEPAGE_BUTTON}" !endif !else - LicenseText ${MUI_LICENSEPAGE_TEXT} - !undef MUI_LICENSEPAGE_TEXT + LicenseText "${MUI_LICENSEPAGE_TEXT_BOTTOM}" "${MUI_LICENSEPAGE_BUTTON}" !endif !ifdef MUI_LICENSEPAGE_CHECKBOX - !ifdef MUI_LICENSEPAGE_CHECKBOX_TEXT - LicenseForceSelection checkbox "${MUI_LICENSEPAGE_CHECKBOX_TEXT}" - !undef MUI_LICENSEPAGE_CHECKBOX_TEXT - !else - LicenseForceSelection checkbox - !endif - !undef MUI_LICENSEPAGE_CHECKBOX + LicenseForceSelection checkbox "${MUI_LICENSEPAGE_CHECKBOX_TEXT}" !else ifdef MUI_LICENSEPAGE_RADIOBUTTONS - !ifdef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT - !ifdef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE - LicenseForceSelection radiobuttons "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT}" "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE}" - !undef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT - !undef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE - !else - LicenseForceSelection radiobuttons "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT}" - !undef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT - !endif - !else ifdef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE - LicenseForceSelection radiobuttons "" "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE}" - !undef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE - !else - LicenseForceSelection radiobuttons - !endif - !undef MUI_LICENSEPAGE_RADIOBUTTONS + LicenseForceSelection radiobuttons "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT}" "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE}" !endif - + PageExEnd - !insertmacro MUI_FUNCTION_LICENSEPAGE ${MUI_PAGE_UNINSTALLER_PREFIX}mui.LicensePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.LicenseShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.LicenseLeave_${MUI_UNIQUEID} + !insertmacro MUI_FUNCTION_LICENSEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicensePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET MUI_LICENSEPAGE_TEXT_TOP + !insertmacro MUI_UNSET MUI_LICENSEPAGE_TEXT_BOTTOM + !insertmacro MUI_UNSET MUI_LICENSEPAGE_BUTTON + !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX + !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT + !insertmacro MUI_UNSET MUI_LICENSEPAGE_RADIOBUTTONS + !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT_ACCEPT + !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT_DECLINE !verbose pop @@ -749,24 +703,36 @@ Var MUI_TEMP2 !insertmacro MUI_PAGE_INIT - !ifndef MUI_${MUI_PAGE_UNINSTALLER}COMPONENTSPAGE - !define MUI_${MUI_PAGE_UNINSTALLER}COMPONENTSPAGE + !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}COMPONENTSPAGE + + !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_TEXT_TOP "" + !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_TEXT_COMPLIST "" + !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_TEXT_INSTTYPE "" + !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE)" + !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO)" + + !ifndef MUI_VAR_TEXT + Var MUI_TEXT + !define MUI_VAR_TEXT !endif - PageEx ${MUI_PAGE_UNINSTALLER_PREFIX}components + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}components - PageCallbacks ${MUI_PAGE_UNINSTALLER_PREFIX}mui.ComponentsPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.ComponentsShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.ComponentsLeave_${MUI_UNIQUEID} + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsLeave_${MUI_UNIQUEID} Caption " " - !ifdef MUI_COMPONENTSPAGE_TEXT - ComponentText ${MUI_COMPONENTSPAGE_TEXT} - !undef MUI_COMPONENTSPAGE_TEXT - !endif + ComponentText "${MUI_COMPONENTSPAGE_TEXT_TOP}" "${MUI_COMPONENTSPAGE_TEXT_INSTTYPE}" "${MUI_COMPONENTSPAGE_TEXT_COMPLIST}" PageExEnd - !insertmacro MUI_FUNCTION_COMPONENTSPAGE ${MUI_PAGE_UNINSTALLER_PREFIX}mui.ComponentsPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.ComponentsShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.ComponentsLeave_${MUI_UNIQUEID} + !insertmacro MUI_FUNCTION_COMPONENTSPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsLeave_${MUI_UNIQUEID} + + !undef MUI_COMPONENTSPAGE_TEXT_TOP + !undef MUI_COMPONENTSPAGE_TEXT_COMPLIST + !undef MUI_COMPONENTSPAGE_TEXT_INSTTYPE + !insertmacro MUI_UNSET MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE + !insertmacro MUI_UNSET MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO !verbose pop @@ -779,54 +745,83 @@ Var MUI_TEMP2 !insertmacro MUI_PAGE_INIT - !ifndef MUI_${MUI_PAGE_UNINSTALLER}DIRECTORYPAGE - !define MUI_${MUI_PAGE_UNINSTALLER}DIRECTORYPAGE - !endif + !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}DIRECTORYPAGE - PageEx ${MUI_PAGE_UNINSTALLER_PREFIX}directory + !insertmacro MUI_DEFAULT MUI_DIRECTORYPAGE_TEXT_TOP "" + !insertmacro MUI_DEFAULT MUI_DIRECTORYPAGE_TEXT_DESTINATION "" - PageCallbacks ${MUI_PAGE_UNINSTALLER_PREFIX}mui.DirectoryPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.DirectoryShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.DirectoryLeave_${MUI_UNIQUEID} + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}directory + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryLeave_${MUI_UNIQUEID} Caption " " - - !ifdef MUI_DIRECTORYPAGE_TEXT - DirText ${MUI_DIRECTORYPAGE_TEXT} - !undef MUI_DIRECTORYPAGE_TEXT - !endif + + DirText "${MUI_DIRECTORYPAGE_TEXT_TOP}" "${MUI_DIRECTORYPAGE_TEXT_DESTINATION}" !ifdef MUI_DIRECTORYPAGE_VARIABLE DirVar "${MUI_DIRECTORYPAGE_VARIABLE}" - !undef "MUI_DIRECTORYPAGE_VARIABLE" !endif - + PageExEnd - !insertmacro MUI_FUNCTION_DIRECTORYPAGE ${MUI_PAGE_UNINSTALLER_PREFIX}mui.DirectoryPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.DirectoryShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.DirectoryLeave_${MUI_UNIQUEID} + !insertmacro MUI_FUNCTION_DIRECTORYPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryLeave_${MUI_UNIQUEID} + + !undef MUI_DIRECTORYPAGE_TEXT_TOP + !undef MUI_DIRECTORYPAGE_TEXT_DESTINATION + !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_VARIABLE !verbose pop !macroend -!macro MUI_PAGE_STARTMENU +!macro MUI_PAGE_STARTMENU ID !verbose push !verbose 3 !insertmacro MUI_PAGE_INIT + + !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}STARTMENUPAGE + + !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_DEFAULTFOLDER "$(^Name)" + !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_TEXT_TOP "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_TOP)" + !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_TEXT_CHECKBOX "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_CHECKBOX)" + + !ifndef MUI_STARTMENUPAGE_VARIABLE + Var MUI_STARTMENU_FOLDER + !define MUI_STARTMENUPAGE_VARIABLE "$MUI_STARTMENU_FOLDER" + !endif - !ifndef MUI_${MUI_PAGE_UNINSTALLER}STARTMENUPAGE - !define MUI_${MUI_PAGE_UNINSTALLER}STARTMENUPAGE + !define "MUI_STARTMENUPAGE_${ID}_VARIABLE" "${MUI_STARTMENUPAGE_VARIABLE}" + !define "MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT" "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" + !endif + !ifdef MUI_STARTMENUPAGE_REGISTRY_KEY + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" + !endif + !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" !endif - PageEx ${MUI_PAGE_UNINSTALLER_PREFIX}custom + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - PageCallbacks ${MUI_PAGE_UNINSTALLER_PREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.StartmenuLeave_${MUI_UNIQUEID} + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuLeave_${MUI_UNIQUEID} Caption " " - + PageExEnd - !insertmacro MUI_FUNCTION_STARTMENUPAGE ${MUI_PAGE_UNINSTALLER_PREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.StartmenuLeave_${MUI_UNIQUEID} + !insertmacro MUI_FUNCTION_STARTMENUPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuLeave_${MUI_UNIQUEID} + + !undef MUI_STARTMENUPAGE_VARIABLE + !undef MUI_STARTMENUPAGE_TEXT_TOP + !undef MUI_STARTMENUPAGE_TEXT_CHECKBOX + !undef MUI_STARTMENUPAGE_DEFAULTFOLDER + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_NODISABLE + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_ROOT + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_KEY + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_VALUENAME !verbose pop @@ -839,18 +834,25 @@ Var MUI_TEMP2 !insertmacro MUI_PAGE_INIT - PageEx ${MUI_PAGE_UNINSTALLER_PREFIX}instfiles + !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INSTFILESPAGE - PageCallbacks ${MUI_PAGE_UNINSTALLER_PREFIX}mui.InstFilesPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.InstFilesShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.InstFilesLeave_${MUI_UNIQUEID} + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}instfiles + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesLeave_${MUI_UNIQUEID} Caption " " - + PageExEnd - !insertmacro MUI_FUNCTION_INSTFILESPAGE ${MUI_PAGE_UNINSTALLER_PREFIX}mui.InstFilesPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.InstFilesShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.InstFilesLeave_${MUI_UNIQUEID} - + !insertmacro MUI_FUNCTION_INSTFILESPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET MUI_INSTFILESPAGE_FINISHHEADER_TEXT + !insertmacro MUI_UNSET MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT + !insertmacro MUI_UNSET MUI_INSTFILESPAGE_ABORTWARNING_TEXT + !insertmacro MUI_UNSET MUI_INSTFILESPAGE_ABORTWARNING_SUBTEXT + !verbose pop - + !macroend !macro MUI_PAGE_FINISH @@ -860,20 +862,65 @@ Var MUI_TEMP2 !insertmacro MUI_PAGE_INIT - !ifndef MUI_${MUI_PAGE_UNINSTALLER}FINISHPAGE - !define MUI_${MUI_PAGE_UNINSTALLER}FINISHPAGE + !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE + + !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TITLE)" + !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TEXT)" + !insertmacro MUI_DEFAULT MUI_FINISHPAGE_BUTTON "$(MUI_BUTTONTEXT_FINISH)" + !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT_REBOOT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_REBOOT)" + !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT_REBOOTNOW "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_REBOOTNOW)" + !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT_REBOOTLATER "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_REBOOTLATER)" + !insertmacro MUI_DEFAULT MUI_FINISHPAGE_RUN_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_RUN)" + !insertmacro MUI_DEFAULT MUI_FINISHPAGE_SHOWREADME_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SHOWREADME)" + + !insertmacro MUI_DEFAULT MUI_FINISHPAGE_LINK_COLOR "0x800000" + + !ifndef MUI_VAR_HWND + Var MUI_HWND + !define MUI_VAR_HWND !endif + + !ifndef MUI_FINISHPAGE_NOAUTOCLOSE + AutoCloseWindow true + !endif + + !ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME + !ifndef MUI_FINISHPAGE_ABORTWARNINGCHECK + !define MUI_FINISHPAGE_ABORTWARNINGCHECK + Var MUI_NOABORTWARNING + !endif + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - PageEx ${MUI_PAGE_UNINSTALLER_PREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_PREFIX}mui.FinishPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.FinishLeave_${MUI_UNIQUEID} + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishLeave_${MUI_UNIQUEID} Caption " " - + PageExEnd - !insertmacro MUI_FUNCTION_FINISHPAGE ${MUI_PAGE_UNINSTALLER_PREFIX}mui.FinishPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_PREFIX}mui.FinishLeave_${MUI_UNIQUEID} + !insertmacro MUI_FUNCTION_FINISHPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishLeave_${MUI_UNIQUEID} + !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE + !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT + !insertmacro MUI_UNSET MUI_FINISHPAGE_BUTTON + !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOT + !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTNOW + !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTLATER + !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN + !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_TEXT + !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_PARAMETES + !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_NOTCHECKED + !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_FUNCTION + !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME + !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_TEXT + !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_NOTCHECKED + !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_FUNCTION + !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK + !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_LOCATION + !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_COLOR + !insertmacro MUI_UNSET MUI_FINISHPAGE_NOREBOOTSUPPORT + !verbose pop !macroend @@ -901,28 +948,29 @@ Var MUI_TEMP2 !ifndef MUI_UNINSTALLER !define MUI_UNINSTALLER !endif - - !ifndef MUI_UNCONFIRMPAGE - !define MUI_UNCONFIRMPAGE - !endif !insertmacro MUI_PAGE_INIT + !insertmacro MUI_SET MUI_UNCONFIRMPAGE + + !insertmacro MUI_DEFAULT MUI_UNCONFIRMPAGE_TEXT_TOP "" + !insertmacro MUI_DEFAULT MUI_UNCONFIRMPAGE_TEXT_LOCATION "" + PageEx un.uninstConfirm PageCallbacks un.mui.ConfirmPre_${MUI_UNIQUEID} un.mui.ConfirmShow_${MUI_UNIQUEID} un.mui.ConfirmLeave_${MUI_UNIQUEID} Caption " " - !ifdef MUI_UNCONFIRMPAGE_TEXT - UninstallText ${MUI_UNCONFIRMPAGE_TEXT} - !undef MUI_UNCONFIRMPAGE_TEXT - !endif - + UninstallText "${MUI_UNCONFIRMPAGE_TEXT_TOP}" "${MUI_UNCONFIRMPAGE_TEXT_LOCATION}" + PageExEnd !insertmacro MUI_UNFUNCTION_CONFIRMPAGE un.mui.ConfirmPre_${MUI_UNIQUEID} un.mui.ConfirmShow_${MUI_UNIQUEID} un.mui.ConfirmLeave_${MUI_UNIQUEID} + !insertmacro MUI_UNSET MUI_UNCONFIRMPAGE_TEXT_TOP + !insertmacro MUI_UNSET MUI_UNCONFIRMPAGE_TEXT_LOCATION + !verbose pop !macroend @@ -1016,29 +1064,14 @@ Var MUI_TEMP2 !macro MUI_FUNCTION_WELCOMEPAGE PRE LEAVE - !ifndef MUI_VAR_HWND - Var MUI_HWND - !define MUI_VAR_HWND - !endif - Function "${PRE}" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NextButtonText" "" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "CancelEnabled" "" - - !ifndef MUI_WELCOMEPAGE_TITLE - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Text" "$(MUI_${MUI_PAGE_UNINSTALLER}TEXT_WELCOME_INFO_TITLE)" - !else - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Text" "${MUI_WELCOMEPAGE_TITLE}" - !undef MUI_WELCOMEPAGE_TITLE - !endif - !ifndef MUI_WELCOMEPAGE_TEXT - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "$(MUI_${MUI_PAGE_UNINSTALLER}TEXT_WELCOME_INFO_TEXT)" - !else - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "${MUI_WELCOMEPAGE_TEXT}" - !undef MUI_WELCOMEPAGE_TEXT - !endif + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Text" "${MUI_WELCOMEPAGE_TITLE}" + + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "${MUI_WELCOMEPAGE_TEXT}" !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE @@ -1113,18 +1146,14 @@ Var MUI_TEMP2 Function "${PRE}" !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER}TEXT_LICENSE_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER}TEXT_LICENSE_SUBTITLE) + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_LICENSE_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_LICENSE_SUBTITLE) FunctionEnd Function "${SHOW}" - !ifndef MUI_LICENSEPAGE_TEXT_TOP - !insertmacro MUI_INNERDIALOG_TEXT 1040 $(MUI_INNERTEXT_LICENSE_TOP) - !else - !insertmacro MUI_INNERDIALOG_TEXT 1040 "${MUI_LICENSEPAGE_TEXT_TOP}" - !undef MUI_LICENSEPAGE_TEXT_TOP - !endif + !insertmacro MUI_INNERDIALOG_TEXT 1040 "${MUI_LICENSEPAGE_TEXT_TOP}" + !undef MUI_LICENSEPAGE_TEXT_TOP !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW FunctionEnd @@ -1139,39 +1168,23 @@ Var MUI_TEMP2 !macro MUI_FUNCTION_COMPONENTSPAGE PRE SHOW LEAVE - !ifndef MUI_VAR_TEXT - Var MUI_TEXT - !define MUI_VAR_TEXT - !endif - Function "${PRE}" !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER}TEXT_COMPONENTS_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER}TEXT_COMPONENTS_SUBTITLE) + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_COMPONENTS_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_COMPONENTS_SUBTITLE) FunctionEnd Function "${SHOW}" - !ifdef MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE - !insertmacro MUI_INNERDIALOG_TEXT 1042 "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE}" - !undef MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE - !else - !insertmacro MUI_INNERDIALOG_TEXT 1042 "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE)" - !endif + !insertmacro MUI_INNERDIALOG_TEXT 1042 "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE}" FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043 EnableWindow $MUI_TEMP1 0 - !ifdef MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO - !insertmacro MUI_INNERDIALOG_TEXT 1043 "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO}" - StrCpy $MUI_TEXT "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO}" - !undef MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO - !else - !insertmacro MUI_INNERDIALOG_TEXT 1043 "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO)" - StrCpy $MUI_TEXT "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO)" - !endif + !insertmacro MUI_INNERDIALOG_TEXT 1043 "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO}" + StrCpy $MUI_TEXT "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO}" !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - + FunctionEnd Function "${LEAVE}" @@ -1186,7 +1199,7 @@ Var MUI_TEMP2 Function "${PRE}" !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER}TEXT_DIRECTORY_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER}TEXT_DIRECTORY_SUBTITLE) + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_DIRECTORY_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_DIRECTORY_SUBTITLE) FunctionEnd Function "${SHOW}" @@ -1200,16 +1213,7 @@ Var MUI_TEMP2 !macroend !macro MUI_FUNCTION_STARTMENUPAGE PRE LEAVE - - !ifndef MUI_STARTMENUPAGE_VARIABLE - Var MUI_STARTMENU_FOLDER - !define MUI_STARTMENUPAGE_VARIABLE "$MUI_STARTMENU_FOLDER" - !endif - - !ifndef MUI_STARTMENUPAGE_DEFAULTFOLDER - !define MUI_STARTMENUPAGE_DEFAULTFOLDER "$(^Name)" - !endif - + Function "${PRE}" !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE @@ -1226,53 +1230,31 @@ Var MUI_TEMP2 !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE) - !ifdef MUI_TEMP_STARTMENUPAGE_TEXT - !undef MUI_TEMP_STARTMENUPAGE_TEXT - !endif - - !ifdef MUI_STARTMENUPAGE_TEXT - !define MUI_TEMP_STARTMENUPAGE_TEXT "${MUI_STARTMENUPAGE_TEXT}" - !undef MUI_STARTMENUPAGE_TEXT - !else - !define MUI_TEMP_STARTMENUPAGE_TEXT "$(MUI_INNERTEXT_STARTMENU_TOP)" - !endif - - !ifdef MUI_TEMP_STARTMENUPAGE_TEXT_CHECKBOX - !undef MUI_TEMP_STARTMENUPAGE_TEXT_CHECKBOX - !endif - - !ifdef MUI_STARTMENUPAGE_TEXT_CHECKBOX - !define MUI_TEMP_STARTMENUPAGE_TEXT_CHECKBOX "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" - !undef MUI_STARTMENUPAGE_TEXT_CHECKBOX - !else - !define MUI_TEMP_STARTMENUPAGE_TEXT_CHECKBOX "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" - !endif - StrCmp $(^RTL) 0 mui.startmenu_nortl !ifndef MUI_STARTMENUPAGE_NODISABLE - StartMenu::Select /rtl /noicon /autoadd /text "${MUI_TEMP_STARTMENUPAGE_TEXT}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_TEMP_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + StartMenu::Select /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" !else - StartMenu::Select /rtl /noicon /autoadd /text "${MUI_TEMP_STARTMENUPAGE_TEXT}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + StartMenu::Select /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" !endif Goto mui.startmenu_calldone mui.startmenu_nortl: !ifndef MUI_STARTMENUPAGE_NODISABLE - StartMenu::Select /noicon /autoadd /text "${MUI_TEMP_STARTMENUPAGE_TEXT}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_TEMP_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + StartMenu::Select /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" !else - StartMenu::Select /noicon /autoadd /text "${MUI_TEMP_STARTMENUPAGE_TEXT}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + StartMenu::Select /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" !endif mui.startmenu_calldone: Pop $MUI_TEMP1 StrCmp $MUI_TEMP1 "success" 0 +2 Pop "${MUI_STARTMENUPAGE_VARIABLE}" - + FunctionEnd Function "${LEAVE}" - + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - + FunctionEnd !macroend @@ -1282,7 +1264,7 @@ Var MUI_TEMP2 Function "${PRE}" !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER}TEXT_${MUI_PAGE_UNINSTALLER}INSTALLING_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER}TEXT_${MUI_PAGE_UNINSTALLER}INSTALLING_SUBTITLE) + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_SUBTITLE) FunctionEnd @@ -1297,36 +1279,16 @@ Var MUI_TEMP2 !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE !insertmacro MUI_FINISHHEADER - !insertmacro MUI_LANGDLL_SAVELANGUAGE + !ifndef MUI_PAGE_UNINSTALLER + !insertmacro MUI_LANGDLL_SAVELANGUAGE + !endif FunctionEnd - + !macroend !macro MUI_FUNCTION_FINISHPAGE PRE LEAVE - !ifndef MUI_VAR_HWND - Var MUI_HWND - !define MUI_VAR_HWND - !endif - - !ifndef MUI_FINISHPAGE_NOAUTOCLOSE - AutoCloseWindow true - !endif - - !ifdef MUI_FINISHPAGE_LINK - !ifndef MUI_FINISHPAGE_LINK_COLOR - !define MUI_FINISHPAGE_LINK_COLOR "0x800000" - !endif - !endif - - !ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME - !ifndef MUI_FINISHPAGE_ABORTWARNINGCHECK - !define MUI_FINISHPAGE_ABORTWARNINGCHECK - Var MUI_NOABORTWARNING - !endif - !endif - Function "${PRE}" GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 @@ -1347,23 +1309,13 @@ Var MUI_TEMP2 GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 ShowWindow $MUI_TEMP1 ${SW_NORMAL} - !ifdef MUI_FINISHPAGE_BUTTON - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NextButtonText" "${MUI_FINISHPAGE_BUTTON}" - !undef MUI_FINISHPAGE_BUTTON - !else - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NextButtonText" "$(MUI_BUTTONTEXT_FINISH)" - !endif + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NextButtonText" "${MUI_FINISHPAGE_BUTTON}" !ifdef MUI_FINISHPAGE_ABORTWARNINGCHECK !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "CancelEnabled" "1" !endif - !ifdef MUI_FINISHPAGE_TITLE - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Text" "${MUI_FINISHPAGE_TITLE}" - !undef MUI_FINISHPAGE_TITLE - !else - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Text" "$(MUI_${MUI_PAGE_UNINSTALLER}TEXT_FINISH_INFO_TITLE)" - !endif + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Text" "${MUI_FINISHPAGE_TITLE}" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "85" @@ -1371,25 +1323,15 @@ Var MUI_TEMP2 IfRebootFlag 0 mui.finish_noreboot_init - !ifdef MUI_FINISHPAGE_TEXT_REBOOT - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "${MUI_FINISHPAGE_TEXT_REBOOT}" - !undef MUI_FINISHPAGE_TEXT_REBOOT - !else - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "$(MUI_TEXT_FINISH_INFO_REBOOT)" - !endif + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "${MUI_FINISHPAGE_TEXT_REBOOT}" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "5" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Type" "RadioButton" - !ifdef MUI_FINISHPAGE_TEXT_REBOOTNOW - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Text" "${MUI_FINISHPAGE_TEXT_REBOOTNOW}" - !undef MUI_FINISHPAGE_TEXT_REBOOTNOW - !else - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Text" "$(MUI_TEXT_FINISH_REBOOTNOW)" - !endif + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Text" "${MUI_FINISHPAGE_TEXT_REBOOTNOW}" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Left" "120" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Right" "321" - !ifndef MUI_${MUI_PAGE_UNINSTALLER}WELCOMEFINISHPAGE_3LINES + !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_3LINES !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" "90" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" "100" !else @@ -1398,15 +1340,10 @@ Var MUI_TEMP2 !endif !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "State" "1" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Type" "RadioButton" - !ifdef MUI_FINISHPAGE_TEXT_REBOOTLATER - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Text" "${MUI_FINISHPAGE_TEXT_REBOOTLATER}" - !undef MUI_FINISHPAGE_TEXT_REBOOTLATER - !else - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Text" "$(MUI_TEXT_FINISH_REBOOTLATER)" - !endif + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Text" "${MUI_FINISHPAGE_TEXT_REBOOTLATER}" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Left" "120" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Right" "321" - !ifndef MUI_${MUI_PAGE_UNINSTALLER}WELCOMEFINISHPAGE_3LINES + !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_3LINES !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Top" "110" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Bottom" "120" !else @@ -1420,25 +1357,15 @@ Var MUI_TEMP2 !endif - !ifdef MUI_FINISHPAGE_TEXT - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "${MUI_FINISHPAGE_TEXT}" - !undef MUI_FINISHPAGE_TEXT - !else - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "$(MUI_${MUI_PAGE_UNINSTALLER}TEXT_FINISH_INFO_TEXT)" - !endif + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "${MUI_FINISHPAGE_TEXT}" !ifdef MUI_FINISHPAGE_RUN !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Type" "CheckBox" - !ifdef MUI_FINISHPAGE_RUN_TEXT - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Text" "${MUI_FINISHPAGE_RUN_TEXT}" - !undef MUI_FINISHPAGE_RUN_TEXT - !else - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Text" "$(MUI_TEXT_FINISH_RUN)" - !endif + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Text" "${MUI_FINISHPAGE_RUN_TEXT}" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Left" "120" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Right" "315" - !ifndef MUI_${MUI_PAGE_UNINSTALLER}WELCOMEFINISHPAGE_3LINES + !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_3LINES !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" "90" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" "100" !else @@ -1459,7 +1386,7 @@ Var MUI_TEMP2 !ifndef MUI_FINISHPAGE_RUN !define MUI_FINISHPAGE_CURFIELD_NO 4 - !ifndef MUI_${MUI_PAGE_UNINSTALLER}WELCOMEFINISHPAGE_3LINES + !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_3LINES !define MUI_FINISHPAGE_CURFIELD_TOP 90 !define MUI_FINISHPAGE_CURFIELD_BOTTOM 100 !else @@ -1468,7 +1395,7 @@ Var MUI_TEMP2 !endif !else !define MUI_FINISHPAGE_CURFIELD_NO 5 - !ifndef MUI_${MUI_PAGE_UNINSTALLER}WELCOMEFINISHPAGE_3LINES + !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_3LINES !define MUI_FINISHPAGE_CURFIELD_TOP 110 !define MUI_FINISHPAGE_CURFIELD_BOTTOM 120 !else @@ -1478,12 +1405,7 @@ Var MUI_TEMP2 !endif !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Type" "CheckBox" - !ifdef MUI_FINISHPAGE_SHOWREADME_TEXT - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Text" "${MUI_FINISHPAGE_SHOWREADME_TEXT}" - !undef MUI_FINISHPAGE_SHOWREADME_TEXT - !else - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Text" "$(MUI_TEXT_FINISH_SHOWREADME)" - !endif + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Text" "${MUI_FINISHPAGE_SHOWREADME_TEXT}" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Left" "120" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Right" "315" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Top" "${MUI_FINISHPAGE_CURFIELD_TOP}" @@ -1627,7 +1549,7 @@ Var MUI_TEMP2 GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 ShowWindow $MUI_TEMP1 ${SW_HIDE} - + FunctionEnd Function "${LEAVE}" @@ -1689,41 +1611,30 @@ Var MUI_TEMP2 !endif FunctionEnd + +!macroend + +!macro MUI_UNFUNCTION_CONFIRMPAGE PRE SHOW LEAVE + + Function "${PRE}" - !ifdef MUI_FINISHPAGE_RUN - !undef MUI_FINISHPAGE_RUN - !endif - !ifdef MUI_FINISHPAGE_RUN_PARAMETERS - !undef MUI_FINISHPAGE_RUN_PARAMETERS - !endif - !ifdef MUI_FINISHPAGE_RUN_NOTCHECKED - !undef MUI_FINISHPAGE_RUN_NOTCHECKED - !endif - !ifdef MUI_FINISHPAGE_RUN_FUNCTION - !undef MUI_FINISHPAGE_RUN_FUNCTION - !endif - !ifdef MUI_FINISHPAGE_SHOWREADME - !undef MUI_FINISHPAGE_SHOWREADME - !endif - !ifdef MUI_FINISHPAGE_SHOWREADME_NOTCHECKED - !undef MUI_FINISHPAGE_SHOWREADME_NOTCHECKED - !endif - !ifdef MUI_FINISHPAGE_SHOWREADME_FUNCTION - !undef MUI_FINISHPAGE_SHOWREADME_FUNCTION - !endif - !ifdef MUI_FINISHPAGE_LINK - !undef MUI_FINISHPAGE_LINK - !endif - !ifdef MUI_FINISHPAGE_LINK_LOCATION - !undef MUI_FINISHPAGE_LINK_LOCATION - !endif - !ifdef MUI_FINISHPAGE_LINK_COLOR - !undef MUI_FINISHPAGE_LINK_COLOR - !endif - !ifdef MUI_FINISHPAGE_NOREBOOTSUPPORT - !undef MUI_FINISHPAGE_NOREBOOTSUPPORT - !endif + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_UNTEXT_CONFIRM_TITLE) $(MUI_UNTEXT_CONFIRM_SUBTITLE) + FunctionEnd + + Function "${SHOW}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + FunctionEnd + !macroend ;-------------------------------- @@ -1838,29 +1749,6 @@ Var MUI_TEMP2 !macroend -!macro MUI_UNFUNCTION_CONFIRMPAGE PRE SHOW LEAVE - - Function "${PRE}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_UNTEXT_CONFIRM_TITLE) $(MUI_UNTEXT_CONFIRM_SUBTITLE) - - FunctionEnd - - Function "${SHOW}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - FunctionEnd - -!macroend - ;-------------------------------- ;RESERVE FILES @@ -1883,7 +1771,7 @@ Var MUI_TEMP2 ReserveFile "${NSISDIR}\Plugins\LangDLL.dll" !verbose pop - + !macroend ;-------------------------------- @@ -1897,7 +1785,7 @@ Var MUI_TEMP2 !include "${NSISDIR}\Contrib\Modern UI\Language files\${LANGUAGE}.nsh" !verbose pop - + !macroend ;-------------------------------- @@ -1912,13 +1800,8 @@ Var MUI_TEMP2 IfSilent mui.langdll_done !endif - !ifndef MUI_LANGDLL_WINDOWTITLE - !define MUI_LANGDLL_WINDOWTITLE "Installer Language" - !endif - - !ifndef MUI_LANGDLL_INFO - !define MUI_LANGDLL_INFO "Please select a language." - !endif + !insertmacro MUI_DEFAULT MUI_LANGDLL_WINDOWTITLE "Installer Language" + !insertmacro MUI_DEFAULT MUI_LANGDLL_INFO "Please select a language." !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME @@ -1945,7 +1828,7 @@ Var MUI_TEMP2 !endif !verbose pop - + !macroend !macro MUI_LANGDLL_SAVELANGUAGE @@ -1953,7 +1836,7 @@ Var MUI_TEMP2 !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME WriteRegStr "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}" $LANGUAGE !endif - + !macroend !macro MUI_UNGETLANGUAGE @@ -2005,7 +1888,7 @@ Var MUI_TEMP2 !error "Modern UI language file ${LANGUAGE} included twice!" !endif - + !macroend !macro MUI_LANGUAGEFILE_DEFAULT NAME VALUE @@ -2021,7 +1904,7 @@ Var MUI_TEMP2 LangString "${NAME}" 0 "${${NAME}}" !undef "${NAME}" - + !macroend !macro MUI_LANGUAGEFILE_UNLANGSTRING NAME @@ -2032,7 +1915,7 @@ Var MUI_TEMP2 !else !undef "${NAME}" !endif - + !macroend !macro MUI_LANGUAGEFILE_LANGSTRING_PAGE PAGE NAME @@ -2043,7 +1926,7 @@ Var MUI_TEMP2 !else !undef "${NAME}" !endif - + !macroend !macro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE PAGE NAME @@ -2058,13 +1941,13 @@ Var MUI_TEMP2 !else !undef "${NAME}" !endif - + !macroend !macro MUI_LANGUAGEFILE_LANGSTRING_NOUNDEF NAME LangString "${NAME}" 0 "${${NAME}}" - + !macroend !macro MUI_LANGUAGEFILE_DEFINE DEFINE NAME @@ -2073,7 +1956,7 @@ Var MUI_TEMP2 !define "${DEFINE}" "${${NAME}}" !endif !undef "${NAME}" - + !macroend !macro MUI_LANGUAGEFILE_LANGSTRING_FONT NAME DEFAULT @@ -2084,7 +1967,7 @@ Var MUI_TEMP2 !else Langstring "${NAME}" 0 "${DEFAULT}" !endif - + !macroend !macro MUI_LANGUAGEFILE_END @@ -2134,14 +2017,14 @@ Var MUI_TEMP2 !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE STARTMENU "MUI_INNERTEXT_STARTMENU_TOP" !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE STARTMENU "MUI_INNERTEXT_STARTMENU_CHECKBOX" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_TITLE" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_SUBTITLE" - - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_ABORT_TITLE" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_ABORT_SUBTITLE" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_INSTALLING_TITLE" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_INSTALLING_SUBTITLE" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_INSTALLING_TITLE" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_INSTALLING_SUBTITLE" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_FINISH_TITLE" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_FINISH_SUBTITLE" + + !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_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_INFO_TITLE" @@ -2181,14 +2064,14 @@ Var MUI_TEMP2 !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE DIRECTORY "MUI_UNTEXT_DIRECTORY_TITLE" !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE DIRECTORY "MUI_UNTEXT_DIRECTORY_SUBTITLE" - !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_UNINSTALLING_TITLE" - !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_UNINSTALLING_SUBTITLE" + !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_UNINSTALLING_TITLE" + !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_UNINSTALLING_SUBTITLE" - !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_FINISH_TITLE" - !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_FINISH_SUBTITLE" + !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_FINISH_TITLE" + !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_FINISH_SUBTITLE" - !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_ABORT_TITLE" - !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_ABORT_SUBTITLE" + !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_ABORT_TITLE" + !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_ABORT_SUBTITLE" !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE FINISH "MUI_UNTEXT_FINISH_INFO_TITLE" !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE FINISH "MUI_UNTEXT_FINISH_INFO_TEXT" @@ -2198,7 +2081,7 @@ Var MUI_TEMP2 !else !undef MUI_UNTEXT_ABORTWARNING !endif - + !macroend ;-------------------------------- diff --git a/Examples/Modern UI/StartMenu.nsi b/Examples/Modern UI/StartMenu.nsi index eede1995..afee9751 100644 --- a/Examples/Modern UI/StartMenu.nsi +++ b/Examples/Modern UI/StartMenu.nsi @@ -24,6 +24,7 @@ ;Variables Var MUI_TEMP + Var STARTMENU_FOLDER ;-------------------------------- ;Interface Settings @@ -38,11 +39,12 @@ !insertmacro MUI_PAGE_DIRECTORY ;Start Menu Folder Page Configuration + !define MUI_STARTMENUPAGE_VARIABLE "$STARTMENU_FOLDER" !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Modern UI Test" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" - !insertmacro MUI_PAGE_STARTMENU + !insertmacro MUI_PAGE_STARTMENU Application !insertmacro MUI_PAGE_INSTFILES @@ -69,11 +71,11 @@ Section "Dummy Section" SecDummy ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" - !insertmacro MUI_STARTMENU_WRITE_BEGIN + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application ;Create shortcuts - CreateDirectory "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}" - CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" !insertmacro MUI_STARTMENU_WRITE_END @@ -99,7 +101,7 @@ Section "Uninstall" RMDir "$INSTDIR" - !insertmacro MUI_STARTMENU_GETFOLDER $MUI_TEMP + !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"