diff --git a/Contrib/Modern UI/Changelog.txt b/Contrib/Modern UI/Changelog.txt index 3238e72d..8ce73376 100644 --- a/Contrib/Modern UI/Changelog.txt +++ b/Contrib/Modern UI/Changelog.txt @@ -1,5 +1,12 @@ NSIS Modern User Interface - VERSION HISTORY +1.66 - September 4, 2003 +* New system for page settings and custom pages +* Support for uninstaller components page +* Support for multiple pages of the same type +* Changed macro names +* Updated langauge system, new language files + 1.65 - July 16, 2003 * New page configuration system, no different system for installers with custom pages @@ -21,11 +28,11 @@ NSIS Modern User Interface - VERSION HISTORY 1.64 - April 27, 2003 * Support for license page with checkbox or radiobuttons to let the user accept the agreement or not -* Macro's for finish headers don't have to be inserted anymore +* 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 macro's: get language for uninstaller, delete shortcuts +* 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 @@ -40,7 +47,7 @@ NSIS Modern User Interface - VERSION HISTORY * Easier to customize resource files * New system for custom functions * Start Menu folder registry key automatically written -* New InstallOptions macro's that do not remove the return value from +* New InstallOptions macros that do not remove the return value from the stack * Support for custom pages before the finish page * Renamed Start Menu page defines @@ -52,7 +59,6 @@ NSIS Modern User Interface - VERSION HISTORY * No changed language strings 1.62 - February 2, 2003 -* Final version for NSIS 2 beta 1 * New language strings for finish page * Possibility to let a Modern UI Function call your own function * No problems anymore when using both 'Run program' and 'Show Readme' @@ -60,7 +66,7 @@ NSIS Modern User Interface - VERSION HISTORY * Default state of checkboxes on the finish page can be changed * Welcome / Finish page compatible with custom DPI settings * Converted Install Options INI files to use dialog units -* More ReserveFile macro's +* More ReserveFile macros * Background color can be changed with a define * Support for multilingual branding texts * Start Menu / Finish page window titles also work when using @@ -71,7 +77,6 @@ NSIS Modern User Interface - VERSION HISTORY the verbose settings during compilation 1.61 - December 5, 2002 -* Final version for NSIS 2 beta 0 * modern3.exe UI without description area * Added define to show uninstall confirm page * Added language string for finish page title and continue to uninstall @@ -92,14 +97,14 @@ NSIS Modern User Interface - VERSION HISTORY * Start Menu Folder selection page * 'Click Next to continue' and 'Click Install to start the installation' texts automatically change to the page order -* Install Options macro's updated. MUI_INSTALLOPTIONS_DISPLAY is the +* Install Options macros updated. MUI_INSTALLOPTIONS_DISPLAY is the standard macro now. Use MUI_INSTALLOPTIONS_INITDIALOG and MUI_INSTALLOPTIONS_SHOW if you want to customize dialog controls. * No more writing window titles & abort warnings to Install Options INI Files * Compatible with updated paging system -* Renamed macro's and defines +* Renamed macros and defines * Some small fixes 1.4 - November 4, 2002 @@ -107,7 +112,7 @@ NSIS Modern User Interface - VERSION HISTORY * Macro System updates (smaller) * Macro System a lot easier * Modern UI Language Files load NLF language files -* Renamed macro's and defines +* Renamed macros and defines 1.3 - October 27, 2002 * Easier macro system for basic scripts @@ -115,16 +120,16 @@ NSIS Modern User Interface - VERSION HISTORY * New directory structure (header/language files in Contrib\Modern UI) * Small bugfixes & typo corrections * SetPage function should be set using defines -* Different NextPage/PrevPage/FinishHeader macro's for +* Different NextPage/PrevPage/FinishHeader macros for install/uninstall * Interface settings can be definend (for example, MUI_ICON), no parameters for MUI_INTERFACE anymore -* New Install Options macro's to read/write IO INI file value +* New Install Options macros to read/write IO INI file value 1.21 - September 30, 2002 * Temp vars set in Modern UI header * Currentpage & Install Options vars should be set using - parameters of the MUI_INTERFACE and * MUI_INSTALLOPTIONS macro's + parameters of the MUI_INTERFACE and * MUI_INSTALLOPTIONS macros * MultiLanguage.nsi uses the new language strings 1.2 - September 22, 2002 @@ -138,8 +143,8 @@ NSIS Modern User Interface - VERSION HISTORY * Examples use ReserveFile for faster startup 1.19 - Semtember 19, 2002 -* Renamed some macro's -* Custom code can be used between page start/stop macro's +* Renamed some macros +* Custom code can be used between page start/stop macros 1.18 - Semtember 13, 2002 * Uses the new Sendmessage string option @@ -170,7 +175,7 @@ NSIS Modern User Interface - VERSION HISTORY 1.1 - August 29, 2002 * Header file with macros, it's now very easy to use the UI in your - scripts :) + scripts * Added the modern2.exe UI, with an other location of the Description frame, for installers with a lot of subsections (thanks rainwater) * Updated example scripts diff --git a/Contrib/Modern UI/Language files/English.nsh b/Contrib/Modern UI/Language files/English.nsh index 1f9479d0..5f2b99e1 100644 --- a/Contrib/Modern UI/Language files/English.nsh +++ b/Contrib/Modern UI/Language files/English.nsh @@ -1,5 +1,5 @@ ;NSIS Modern User Interface - Language File -;Compatible with Modern UI 1.65 +;Compatible with Modern UI 1.66 ;Language: English (1033) ;By Joost Verburg @@ -22,19 +22,16 @@ !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_LICENSE_SUBTITLE "Please review the license terms before installing ${MUI_PRODUCT}." !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_LICENSE_TOP "Press Page Down to see the rest of the agreement." !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_LICENSE_BOTTOM "If you accept the terms of the agreement, click I Agree to continue. You must accept the agreement to install ${MUI_PRODUCT}." - !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX "If you accept the terms of the agreement, click the check box below. You must accept the agreement to install ${MUI_PRODUCT}." - !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "If you accept the terms of the agreement, select the first option below. You must accept the agreement to install ${MUI_PRODUCT}." + !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX "If you accept the terms of the agreement, click the check box below. You must accept the agreement to install ${MUI_PRODUCT}. $_CLICK" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "If you accept the terms of the agreement, select the first option below. You must accept the agreement to install ${MUI_PRODUCT}. $_CLICK" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_COMPONENTS_TITLE "Choose Components" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_COMPONENTS_SUBTITLE "Choose which features of ${MUI_PRODUCT} you want to install." - !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_COMPONENTS_TOP "Check the components you want to install and uncheck the components you don't want to install." !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE "Description" !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "Hover your mouse over a component to see its description." !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_DIRECTORY_TITLE "Choose Install Location" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_DIRECTORY_SUBTITLE "Choose the folder in which to install ${MUI_PRODUCT}." - !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_DIRECTORY_TOP "Setup will install ${MUI_PRODUCT} in the following folder.$\r$\n$\r$\nTo install in a different folder, click Browse and select another folder." - !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_DIRECTORY_DESTINATION "Destination Folder" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_INSTALLING_TITLE "Installing" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_INSTALLING_SUBTITLE "Please wait while ${MUI_PRODUCT} is being installed." @@ -45,7 +42,7 @@ !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_ABORT_TITLE "Installation Aborted" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_ABORT_SUBTITLE "Setup was not completed successfully." - !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_BUTTON "&Finish" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_BUTTONTEXT_FINISH "&Finish" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_INFO_TITLE "Completing the ${MUI_PRODUCT} Setup Wizard" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_INFO_TEXT "${MUI_PRODUCT} has been installed on your computer.\r\n\r\nClick Finish to close this wizard." !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_INFO_REBOOT "Your computer must be restarted in order to complete the installation of ${MUI_PRODUCT}. Do you want to reboot now?" @@ -66,7 +63,9 @@ !insertmacro MUI_LANGUAGEFILE_STRING MUI_UNTEXT_INTRO_TITLE "Uninstall ${MUI_PRODUCT}" !insertmacro MUI_LANGUAGEFILE_STRING MUI_UNTEXT_INTRO_SUBTITLE "Remove ${MUI_PRODUCT} from your computer." - !insertmacro MUI_LANGUAGEFILE_STRING MUI_UNINNERTEXT_INTRO "This wizard will uninstall ${MUI_PRODUCT} from your computer." + + !insertmacro MUI_LANGUAGEFILE_STRING MUI_UNTEXT_COMPONENTS_TITLE "Choose Components" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_UNTEXT_COMPONENTS_SUBTITLE "Choose which features of ${MUI_PRODUCT} you want to uninstall." !insertmacro MUI_LANGUAGEFILE_STRING MUI_UNTEXT_UNINSTALLING_TITLE "Uninstalling" !insertmacro MUI_LANGUAGEFILE_STRING MUI_UNTEXT_UNINSTALLING_SUBTITLE "Please wait while ${MUI_PRODUCT} is being uninstalled." diff --git a/Contrib/Modern UI/Readme.html b/Contrib/Modern UI/Readme.html index d6152146..af027b5e 100644 --- a/Contrib/Modern UI/Readme.html +++ b/Contrib/Modern UI/Readme.html @@ -145,10 +145,24 @@ control the interface has already been written for you.

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.

-

Note: If you want to add a -double quote (") to a Modern UI string, you should always escape -it ($\"), because the Modern UI macros use " to separate -parameters.

+

Syntax

+

Most defines (i.e. MUI_COMPONENTSPAGE_SMALLDESC) don't need a value, they are true/false settings. + Others (i.e. MUI_FINISHPAGE_RUN) 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 for the define:

+
+!define MUI_STARTMENUPAGE_NODISABLE ;No value
+!define MUI_FINISHPAGE_RUN "$INSTDIR\Application.exe" ;Value
+!define MUI_INSTALLCOLORS "FFFFFF 000000" ;Multiple parameters
+!define MUI_LICENSEPAGE_TEXT "$\"Text$\" $\"Buttontext$\"" ;Multiple texts
+
+

If you want a certain value (i.e. a text) to be language-specific, set a language string and define + $(LANGUAGESTRINGNAME) as value.

+

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

1. Include the header file

!include "MUI.nsh"

MUI.nsh is in the Include directory, so you don't have @@ -163,14 +177,18 @@ parameters.

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.
+ You can also insert custom Page commands between the macros to add custom pages. More info about custom pages...

-

Example:

-
!insertmacro MUI_PAGE_COMPONENTS
+

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
+ MUI_PAGE_LICENSE text/rtf_file
MUI_PAGE_COMPONENTS
MUI_PAGE_DIRECTORY
MUI_PAGE_STARTMENU
@@ -180,27 +198,32 @@ parameters.

Uninstaller Pages
MUI_UNPAGE_CONFIRM
+ MUI_UNPAGE_COMPONENTS
MUI_UNPAGE_INSTFILES

-

4. Defines

-

You can use defines to configure the Modern UI. - Most defines (i.e. MUI_COMPONENTSPAGE_SMALLDESC) - don't need a value, they are true/false settings. Others - (i.e. MUI_FINISHPAGE_RUN) 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 for the define:

-
-!define MUI_STARTMENUPAGE_NODISABLE ;No value
-!define MUI_FINISHPAGE_RUN "$INSTDIR\Application.exe" ;Value
-!define MUI_INSTALLCOLORS "FFFFFF 000000" ;Multiple parameters
-
-

All defines are optional.

-

4a. General settings

+

Page Settings

+
+

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

+

General Page Settings

+
+

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

+

MUI_PAGE_HEADER_SUBTEXT
+ Custom 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 inner dialog of the license page. Put quotes around the different texts ($\").

+

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

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

MUI_LICENSEPAGE_RADIOBUTTONS
@@ -209,27 +232,33 @@ parameters.

Components Page Settings

-

MUI_COMPONENTSPAGE_SMALLDESC
- A small description area on the bottom of the page. Use this layout - if you have a lot of sections and don't need large descriptions.

-

MUI_COMPONENTSPAGE_NODESC
- No description area.

+

MUI_COMPONENTSPAGE_TEXT text [subtext] [subtext2]
+ Texts to display on the inner dialog of the components page. Put quotes around the different texts ($\").

-

Start Menu Folder Page Settings

+

Directory Page Settings

-

If you did not disable the 'Do not create shortcuts' checkbox, - put the script code to write the shortcuts between these macros, - because the creation can be disabled by the user:

+

MUI_DIRECTORYPAGE_TEXT text [subtext]
+ Texts to display on the inner dialog of the directory page. Put quotes around the different 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:

 !insertmacro MUI_STARTMENU_WRITE_BEGIN
   ...create the 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_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. For installers with multiple languages, you can use a language string as value.

+ The default Start Menu Folder.

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

@@ -242,9 +271,12 @@ parameters.

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 variable
+!insertmacro MUI_STARTMENU_GETFOLDER $R0 ;You can also use another var
   Delete "$SMPROGRAMS\$R0\Your Shortcut.lnk"
 
+

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.

Finish Page Settings

@@ -264,8 +296,7 @@ parameters.

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. - Use $(LANGSTRINGNAME) as value if you want to use a language string.

+ You don't need to put quotes around the filename when it contains spaces.

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

@@ -275,13 +306,11 @@ parameters.

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. - Use $(LANGSTRINGNAME) as value if you want to use a language string.

+ 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. - Use $(LANGSTRINGNAME) as value if you want to use a language string.

+ You don't need to put quotes around the filename when it contains spaces.

MUI_FINISHPAGE_NOAUTOCLOSE
Do not automatically jump to the finish page, to allow the user to @@ -291,12 +320,16 @@ parameters.

Define this option to save some space if you are not using the /REBOOTOK flag or SetRebootFlag.

-

Other settings

+

Advanced Page Settings

-

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

+

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

-

4b. Interface settings

+ +

4. 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_UI ui_file
@@ -323,8 +356,7 @@ parameters.

Default: ${NSISDIR}\Contrib\Icons\modern.bmp

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

+ The colors of the details screen. Use /windows for the default colors.

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

MUI_HEADERBITMAP bmp_file
@@ -351,12 +383,26 @@ parameters.

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_BGCOLOR (color: 0xBBGGRR hexadecimal)
- Background color for the header, Welcome page and Finish page.
Default: 0xFFFFFF

+

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

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

MUI_RTL_UI
Right-to-left interface.

+ +

Components Page Interface Settings

+
+

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.

+
+

Message Settings

+
+

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

+

5. Define custom functions (optional)

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 @@ -367,33 +413,24 @@ parameters.

!insertmacro MUI_LANGUAGE "English"

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

+

Customize Modern UI text

+

You don't need to edit the language files if you want to customize some strings. Use defines before you insert the language file:

-!define MUI_BRANDINGTEXT "French Branding Text"
-!insertmacro MUI_LANGUAGE "French"
+!define MUI_TEXT_COMPONENTS_TITLE "Your text"
+!insertmacro MUI_LANGUAGE "English"
 
-

Note: When using different product name (MUI_PRODUCT) - for different languges, !undef MUI_PRODUCT after inserting a language file.

Have a look at the language files for a complete list of all the string names.

-

You can customize texts that can be set in the Classic UI using the LicenseText, - ComponentText, DirText and MiscButtonText commands but are not being changed by the Modern UI using - these defines:

-

- MUI_BUTTONTEXT_LICENSE text
- MUI_BUTTONTEXT_BACK text
- MUI_BUTTONTEXT_NEXT text
- MUI_BUTTONTEXT_CANCEL text -

-

- MUI_INNERTEXT_COMPONENTS_SUB1 text
- MUI_INNERTEXT_COMPONENTS_SUB2 text -

-

- MUI_TEXT_DIRECTORY_BROWSE text -

-

You can also customize the fonts for a language using the following defines:

+

Note: When using different product name (MUI_PRODUCT) + for different languges, !undef MUI_PRODUCT after inserting a language file (or use a language + string).

+
+

Customize fonts

+
+

You can customize the fonts for a language using the following defines before inserting + a language:

MUI_FONT_HEADER font_name
MUI_FONTSIZE_HEADER font_size
MUI_FONTSTYLE_HEADER weight [/ITALIC] [/UNDERLINE] [/STRIKE]
@@ -402,6 +439,16 @@ parameters.

MUI_FONTSIZE_TITLE font_size
MUI_FONTSTYLE_TITLE weight [/ITALIC] [/UNDERLINE] [/STRIKE]
The font for the title on the Welcome and Finish page.

+
+

Customize other texts

+
+

To customize button texts, use the following defines.

+

+ MUI_BUTTONTEXT_BACK text
+ MUI_BUTTONTEXT_NEXT text
+ MUI_BUTTONTEXT_CANCEL text +

+

Language selection dialog

If you want the installer to display a language selection dialog @@ -456,11 +503,13 @@ SectionEnd LangString DESC_Section1 ${LANG_ENGLISH} "Description of section 1." LangString DESC_Section2 ${LANG_ENGLISH} "Description of section 2." -!insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1) !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2) -!insertmacro MUI_FUNCTIONS_DESCRIPTION_END +!insertmacro MUI_FUNCTION_DESCRIPTION_END +

For the uninstaller, use the MUI_UNFUNCTION_DESCRIPTION_BEGIN +and MUI_UNFUNCTIONS_DESCRIPTION_END macros

8. Reserve Files

If you are using BZIP2 compression, you might need to insert ReserveFile commands. More info...

@@ -593,12 +642,12 @@ ReserveFile "${NSISDIR}\Contrib\Icons\modern-header.bmp" ;Your header bitmap To change them, you need to edit this file and recompile NSIS.

To modify the Welcome and Finish dialog, edit the Install Options INI File ioSpecial.ini in the 'Contrib\Modern UI' directory.

-

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. Add the defines before the MUI_LANGUAGE macros.

-

Example:

+

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. Add the defines before the MUI_LANGUAGE macros.

+

Example:

 !define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit
 
@@ -606,71 +655,39 @@ Function myGUIInit
   ...your own code...
 FunctionEnd
 
-

-GUI Init
-MUI_CUSTOMFUNCTION_GUIINIT
-MUI_CUSTOMFUNCTION_UNGUIINIT -

-

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

-

-License Page
-MUI_CUSTOMFUNCTION_LICENSE_PRE
-MUI_CUSTOMFUNCTION_LICENSE_SHOW
-MUI_CUSTOMFUNCTION_LICENSE_LEAVE -

-

-Components Page
-MUI_CUSTOMFUNCTION_COMPONENTS_PRE
-MUI_CUSTOMFUNCTION_COMPONENTS_SHOW
-MUI_CUSTOMFUNCTION_COMPONENTS_LEAVE -

-

-Directory Page
-MUI_CUSTOMFUNCTION_DIRECTORY_PRE
-MUI_CUSTOMFUNCTION_DIRECTORY_SHOW
-MUI_CUSTOMFUNCTION_DIRECTORY_LEAVE -

-

-Start Menu Folder Page
-MUI_CUSTOMFUNCTION_STARTMENU_PRE
-MUI_CUSTOMFUNCTION_STARTMENU_LEAVE -

-

-Install Page
-MUI_CUSTOMFUNCTION_INSTFILES_PRE
-MUI_CUSTOMFUNCTION_INSTFILES_SHOW
-MUI_CUSTOMFUNCTION_INSTFILES_LEAVE -

-

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

-

-Installer Abort
-MUI_CUSTOMFUNCTION_ABORT -

-

-Uninstaller - Confirm Page
-MUI_UNCUSTOMFUNCTION_CONFIRM_PRE
-MUI_UNCUSTOMFUNCTION_CONFIRM_SHOW
-MUI_UNCUSTOMFUNCTION_CONFIRM_LEAVE -

-

-Uninstaller - Uninstall Page
-MUI_UNCUSTOMFUNCTION_INSTFILES_PRE
-MUI_UNCUSTOMFUNCTION_INSTFILES_SHOW
-MUI_UNCUSTOMFUNCTION_INSTFILES_LEAVE -

+

General Custom Functions

+
+

MUI_CUSTOMFUNCTION_GUIINIT
+ MUI_CUSTOMFUNCTION_UNGUIINIT
+ MUI_CUSTOMFUNCTION_ABORT

+
+

Page Custom Functions

+
+

These defines should be set before inserting a page macro.

+

MUI_PAGE_CUSTOMFUNCTION_PRE
+ MUI_PAGE_CUSTOMFUNCTION_SHOW
+ MUI_PAGE_CUSTOMFUNCTION_LEAVE

+

Notes:

+ +

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.

-

Help

-

Please post questions at the -NSIS Forum.

-

License

+

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.

+

Help

+

Please post questions at the + NSIS Forum.

+

License

Copyright © 2002-2003 Joost Verburg
 
 This software is provided 'as-is', without any express or implied
diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh
index fb2ee28d..58278d1f 100644
--- a/Contrib/Modern UI/System.nsh	
+++ b/Contrib/Modern UI/System.nsh	
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.65
+;NSIS Modern User Interface version 1.66
 ;Macro System
 ;Written by Joost Verburg
 
@@ -8,9 +8,10 @@
 ;License: License.txt
 ;Examples: Examples\Modern UI
 
-;--------------------------------
+!echo "NSIS Modern User Interface version 1.66 - © 2002-2003 Joost Verburg"
 
-!echo "NSIS Modern User Interface version 1.65 - © 2002-2003 Joost Verburg"
+;--------------------------------
+;DECLARES
 
 !ifndef MUI_MANUALVERBOSE
   !verbose 3
@@ -25,16 +26,13 @@
 Var MUI_TEMP1
 Var MUI_TEMP2
 
-!macro MUI_DEFINEVARS
-
-  !ifdef MUI_WELCOMEPAGE | MUI_FINISHPAGE
-    Var MUI_HWND
-  !endif
-
-!macroend
+;--------------------------------
+;INTERFACE
 
 !macro MUI_INTERFACE
   
+  Name "$(MUI_NAME)"
+  
   !ifndef MUI_UI
     !define MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe"
   !endif
@@ -66,10 +64,6 @@ Var MUI_TEMP2
   !ifndef MUI_CHECKBITMAP
     !define MUI_CHECKBITMAP "${NSISDIR}\Contrib\Icons\modern.bmp"
   !endif
-
-  !ifdef MUI_FONT
-    !error "Use SetFont to change the dialog font"
-  !endif
   
   !ifndef MUI_LICENSEBKCOLOR
     !define MUI_LICENSEBKCOLOR "/windows"
@@ -83,6 +77,10 @@ Var MUI_TEMP2
     !define MUI_PROGRESSBAR "smooth"
   !endif
 
+  !ifndef MUI_BGCOLOR
+    !define MUI_BGCOLOR "FFFFFF"
+  !endif
+
   !ifndef MUI_SPECIALINI
     !define MUI_SPECIALINI "${NSISDIR}\Contrib\Modern UI\ioSpecial.ini"
   !endif
@@ -90,62 +88,25 @@ Var MUI_TEMP2
   !ifndef MUI_SPECIALBITMAP
     !define MUI_SPECIALBITMAP "${NSISDIR}\Contrib\Icons\modern-wizard.bmp"
   !endif
-  
-  !ifndef MUI_BGCOLOR
-    !define MUI_BGCOLOR "0xFFFFFF"
-  !endif
-  
-  !ifdef MUI_FINISHPAGE
-    !ifndef MUI_FINISHPAGE_NOAUTOCLOSE
-      AutoCloseWindow true
-    !endif
-    !ifdef MUI_FINISHPAGE_LINK
-      !ifndef MUI_FINISHPAGE_LINK_COLOR
-        !define MUI_FINISHPAGE_LINK_COLOR "0x800000"
-      !endif
-    !endif
-  !endif
 
   XPStyle On
-
-  !ifndef MUI_RTL_UI
-    ChangeUI all "${MUI_UI}"
-    !ifdef MUI_HEADERBITMAP
-      !ifndef MUI_HEADERBITMAP_RIGHT
-        ChangeUI IDD_INST "${MUI_UI_HEADERBITMAP}"
-      !else
-        ChangeUI IDD_INST "${MUI_UI_HEADERBITMAP_RIGHT}"
-      !endif
-    !endif
-    !ifdef MUI_COMPONENTSPAGE_SMALLDESC
-      ChangeUI IDD_SELCOM "${MUI_UI_SMALLDESCRIPTION}"
-    !else ifdef MUI_COMPONENTSPAGE_NODESC
-      ChangeUI IDD_SELCOM "${MUI_UI_NODESCRIPTION}"
-    !endif
-  !else
-    ChangeUI /RTL all "${MUI_UI}"
+  
+  ChangeUI all "${MUI_UI}"
+  !ifdef MUI_HEADERBITMAP
     !ifndef MUI_HEADERBITMAP_RIGHT
-      ChangeUI /RTL IDD_INST "${MUI_UI_HEADERBITMAP}"
+      ChangeUI IDD_INST "${MUI_UI_HEADERBITMAP}"
     !else
-      ChangeUI /RTL IDD_INST "${MUI_UI_HEADERBITMAP_RIGHT}"
-    !endif
-    !ifdef MUI_COMPONENTSPAGE_SMALLDESC
-      ChangeUI /RTL IDD_SELCOM "${MUI_UI_SMALLDESCRIPTION}"
-    !else ifdef MUI_COMPONENTSPAGE_NODESC
-      ChangeUI /RTL IDD_SELCOM "${MUI_UI_NODESCRIPTION}"
+      ChangeUI IDD_INST "${MUI_UI_HEADERBITMAP_RIGHT}"
     !endif
   !endif
+  !ifdef MUI_COMPONENTSPAGE_SMALLDESC
+    ChangeUI IDD_SELCOM "${MUI_UI_SMALLDESCRIPTION}"
+  !else ifdef MUI_COMPONENTSPAGE_NODESC
+     ChangeUI IDD_SELCOM "${MUI_UI_NODESCRIPTION}"
+  !endif
   
   Icon "${MUI_ICON}"
   
-  !ifdef MUI_LICENSEPAGE
-    !ifdef MUI_LICENSEPAGE_CHECKBOX
-      LicenseForceSelection checkbox
-    !else ifdef MUI_LICENSEPAGE_RADIOBUTTONS
-      LicenseForceSelection radiobuttons
-    !endif
-  !endif
-  
   !ifdef MUI_UNINSTALLER
     UninstallIcon "${MUI_UNICON}"
   !endif
@@ -154,38 +115,48 @@ Var MUI_TEMP2
   LicenseBkColor "${MUI_LICENSEBKCOLOR}"
   InstallColors ${MUI_INSTALLCOLORS}
   InstProgressFlags ${MUI_PROGRESSBAR}
-
+  
 !macroend
 
 !macro MUI_INNERDIALOG_TEXT CONTROL TEXT
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT
   GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${CONTROL}
   SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}"
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_HEADER_TEXT TEXT SUBTEXT
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037
   SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}"
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
   SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${SUBTEXT}"
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
+  !verbose pop
+
+!macroend
+
+!macro MUI_HEADER_TEXT_PAGE TEXT SUBTEXT
+
+  !ifdef MUI_PAGE_HEADER_TEXT
+    !ifndef MUI_PAGE_HEADER_SUBTEXT
+      !insertmacro MUI_HEADER_TEXT "${MUI_PAGE_HEADER_TEXT}" "${SUBTEXT}"
+    !else
+      !insertmacro MUI_HEADER_TEXT "${MUI_PAGE_HEADER_TEXT}" "${MUI_PAGE_HEADER_SUBTEXT}"
+      !undef MUI_PAGE_HEADER_SUBTEXT
+    !endif
+    !undef MUI_PAGE_HEADER_TEXT
+  !else
+    !insertmacro MUI_HEADER_TEXT "${TEXT}" "${SUBTEXT}"
   !endif
 
 !macroend
@@ -206,9 +177,8 @@ Var MUI_TEMP2
 
 !macro MUI_DESCRIPTION_TEXT VAR TEXT
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   StrCmp $0 ${VAR} 0 mui.description_${VAR}_done
     SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:"
@@ -217,23 +187,18 @@ Var MUI_TEMP2
     Goto mui.description_done
   mui.description_${VAR}_done:
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_DESCRIPTION_END
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   mui.description_done:
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
@@ -241,12 +206,8 @@ Var MUI_TEMP2
 
   IfAbort mui.finishheader_abort
   
-  !ifndef MUI_FINISHPAGE
     !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_FINISH_TITLE) $(MUI_TEXT_FINISH_SUBTITLE)
-  !else ifdef MUI_FINISHPAGE_NOAUTOCLOSE
-    !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_FINISH_TITLE) $(MUI_TEXT_FINISH_SUBTITLE)
-  !endif
-
+  
   Goto mui.finishheader_done
   
   mui.finishheader_abort:
@@ -260,11 +221,11 @@ Var MUI_TEMP2
   
   IfAbort mui.finishheader_abort
   
-  !insertmacro MUI_HEADER_TEXT $(un.MUI_UNTEXT_FINISH_TITLE) $(un.MUI_UNTEXT_FINISH_SUBTITLE)
+  !insertmacro MUI_HEADER_TEXT $(MUI_UNTEXT_FINISH_TITLE) $(MUI_UNTEXT_FINISH_SUBTITLE)
   Goto mui.finishheader_done
 
   mui.finishheader_abort:
-  !insertmacro MUI_HEADER_TEXT $(un.MUI_UNTEXT_ABORT_TITLE) $(un.MUI_UNTEXT_ABORT_SUBTITLE)
+  !insertmacro MUI_HEADER_TEXT $(MUI_UNTEXT_ABORT_TITLE) $(MUI_UNTEXT_ABORT_SUBTITLE)
   
   mui.finishheader_done:
 
@@ -300,48 +261,46 @@ Var MUI_TEMP2
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037
   CreateFont $MUI_TEMP2 "$(MUI_FONT_HEADER)" "$(MUI_FONTSIZE_HEADER)" "$(MUI_FONTSTYLE_HEADER)"
   SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0
-  SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+  SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
 
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
-  SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+  SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
 
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034
-  SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+  SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
 
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039
-  SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
-
+  SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
+  
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028
-  SetBkColor $MUI_TEMP1 -1
-  GetWindowText $MUI_TEMP2 $MUI_TEMP1
+  SetCtlColors $MUI_TEMP1 "branding"
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256
-  SetBkColor $MUI_TEMP1 -1
-  SendMessage $MUI_TEMP1 ${WM_SETTEXT} ${NSIS_MAX_STRLEN} "STR:$MUI_TEMP2"
+  SetCtlColors $MUI_TEMP1 "branding"
+  SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$(^Branding)"
 
 !macroend
 
 !macro MUI_UNGUIINIT_BASIC
 
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037
-  CreateFont $MUI_TEMP2 "$(un.MUI_FONT_HEADER)" "$(un.MUI_FONTSIZE_HEADER)" "$(un.MUI_FONTSTYLE_HEADER)"
+  CreateFont $MUI_TEMP2 "$(MUI_FONT_HEADER)" "$(MUI_FONTSIZE_HEADER)" "$(MUI_FONTSTYLE_HEADER)"
   SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0
-  SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+  SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
 
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
-  SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+  SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
 
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034
-  SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+  SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
 
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039
-  SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
-
+  SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
+  
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028
-  SetBkColor $MUI_TEMP1 -1
-  GetWindowText $MUI_TEMP2 $MUI_TEMP1
+  SetCtlColors $MUI_TEMP1 "" "transparent"
   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256
-  SetBkColor $MUI_TEMP1 -1
-  SendMessage $MUI_TEMP1 ${WM_SETTEXT} ${NSIS_MAX_STRLEN} "STR:$MUI_TEMP2"
+  SetCtlColors $MUI_TEMP1 "branding"
+  SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$(^Branding)"
 
 !macroend
 
@@ -353,11 +312,6 @@ Var MUI_TEMP2
     !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "${MUI_SPECIALBITMAP}" "modern-wizard.bmp"   
     
     !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Text" "$PLUGINSDIR\modern-wizard.bmp"
-
-    !ifdef MUI_WELCOMEPAGE
-      !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Text" "$(MUI_TEXT_WELCOME_INFO_TITLE)"
-      !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "$(MUI_TEXT_WELCOME_INFO_TEXT)"
-    !endif
     
     !ifdef MUI_SPECIALBITMAP_NOSTRETCH
       !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Flags" ""
@@ -383,30 +337,15 @@ Var MUI_TEMP2
 
 !macro MUI_LANGUAGE LANGUAGE
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
-
+  !verbose push
+  !verbose 3
+  
   !include "${NSISDIR}\Contrib\Modern UI\Language files\${LANGUAGE}.nsh"
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
   
 !macroend
 
-!macro MUI_STARTMENU_INITDEFINES
-
-  !ifndef MUI_STARTMENUPAGE_VARIABLE
-    Var MUI_STARTMENU_FOLDER
-    !define MUI_STARTMENUPAGE_VARIABLE "$MUI_STARTMENU_FOLDER"
-  !endif
-  
-  !ifndef MUI_STARTMENUPAGE_DEFAULTFOLDER
-    !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${MUI_PRODUCT}"
-  !endif
-
-!macroend
 
 !macro MUI_STARTMENU_GETFOLDER VAR
 
@@ -439,26 +378,22 @@ Var MUI_TEMP2
 
 !macro MUI_STARTMENU_WRITE_BEGIN
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
   
-  StrCpy $MUI_TEMP1 ${MUI_STARTMENUPAGE_VARIABLE} 1
+  StrCpy $MUI_TEMP1 "${MUI_STARTMENUPAGE_VARIABLE}" 1
   StrCmp $MUI_TEMP1 ">" mui.startmenu_write_done
     
-  !insertmacro MUI_STARTMENU_GETFOLDER_IFEMPTY ${MUI_STARTMENUPAGE_VARIABLE}
+  !insertmacro MUI_STARTMENU_GETFOLDER_IFEMPTY "${MUI_STARTMENUPAGE_VARIABLE}"
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_STARTMENU_WRITE_END
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !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}"
@@ -466,17 +401,14 @@ Var MUI_TEMP2
 
   mui.startmenu_write_done:
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_LANGDLL_DISPLAY
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   !ifndef MUI_TEXT_LANGDLL_WINDOWTITLE
     !define MUI_TEXT_LANGDLL_WINDOWTITLE "Installer Language"
@@ -510,9 +442,7 @@ Var MUI_TEMP2
     !endif
   !endif
     
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
     
 !macroend
 
@@ -526,9 +456,7 @@ Var MUI_TEMP2
 
 !macro MUI_UNGETLANGUAGE
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
   !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
   
@@ -550,146 +478,292 @@ Var MUI_TEMP2
 
   !endif
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 ;--------------------------------
 ;PAGE COMMANDS
 
+!macro MUI_UNIQUEID
+
+  !ifdef MUI_UNIQUEID
+    !undef MUI_UNIQUEID
+  !endif
+  
+  !define MUI_UNIQUEID ${__LINE__}
+
+!macroend
+
 !macro MUI_PAGE_WELCOME
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   !ifndef MUI_WELCOMEPAGE
     !define MUI_WELCOMEPAGE
   !endif
   
-  Page custom mui.WelcomePre mui.WelcomeLeave "" "MUI_INSTALLBUTTON_WELCOME"
-  
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
+  !ifndef MUI_BGCOLOR
+    !define MUI_BGCOLOR "FFFFFF"
   !endif
   
+  !insertmacro MUI_UNIQUEID
+  
+  PageEx custom
+  
+    PageCallbacks mui.WelcomePre_${MUI_UNIQUEID} mui.WelcomeLeave_${MUI_UNIQUEID}
+    
+  PageExEnd
+  
+  !ifndef MUI_HWND_DEFINED
+    Var MUI_HWND
+    !define MUI_HWND_DEFINED
+  !endif
+  
+  !insertmacro MUI_FUNCTION_WELCOMEPAGE mui.WelcomePre_${MUI_UNIQUEID} mui.WelcomeLeave_${MUI_UNIQUEID}
+
+  !verbose pop
+  
 !macroend
 
-!macro MUI_PAGE_LICENSE
+!macro MUI_PAGE_LICENSE LICENSEDATA
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   !ifndef MUI_LICENSEPAGE
     !define MUI_LICENSEPAGE
   !endif
   
-  Page license mui.LicensePre mui.LicenseShow mui.LicenseLeave "MUI_INSTALLBUTTON_LICENSE"
+  !insertmacro MUI_UNIQUEID
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  PageEx license
+  
+    PageCallbacks mui.LicensePre_${MUI_UNIQUEID} mui.LicenseShow_${MUI_UNIQUEID} mui.LicenseLeave_${MUI_UNIQUEID}
+    
+    LicenseData "${LICENSEDATA}"
+    
+    !ifdef MUI_LICENSEPAGE_TEXT
+      LicenseText ${MUI_LICENSEPAGE_TEXT}
+      !undef MUI_LICENSEPAGE_TEXT
+    !endif
+    
+    !ifdef MUI_LICENSEPAGE_CHECKBOX
+      !ifndef MUI_LICENSEPAGE_CHECKBOX_USED
+        !define MUI_LICENSEPAGE_CHECKBOX_USED
+      !endif
+      LicenseForceSelection checkbox
+      !undef MUI_LICENSEPAGE_CHECKBOX
+    !else ifdef MUI_LICENSEPAGE_RADIOBUTTONS
+      !ifndef MUI_LICENSEPAGE_RADIOBUTTONS_USED
+        !define MUI_LICENSEPAGE_RADIOBUTTONS_USED
+      !endif
+      LicenseForceSelection radiobuttons
+      !undef MUI_LICENSEPAGE_RADIOBUTTONS
+    !endif
+    
+  PageExEnd
+  
+  !insertmacro MUI_FUNCTION_LICENSEPAGE mui.LicensePre_${MUI_UNIQUEID} mui.LicenseShow_${MUI_UNIQUEID} mui.LicenseLeave_${MUI_UNIQUEID}
+  
+  !verbose pop
   
 !macroend
 
 !macro MUI_PAGE_COMPONENTS
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   !ifndef MUI_COMPONENTSPAGE
     !define MUI_COMPONENTSPAGE
   !endif
   
-  Page components mui.ComponentsPre mui.ComponentsShow mui.ComponentsLeave "MUI_INSTALLBUTTON_COMPONENTS"
+  !insertmacro MUI_UNIQUEID
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  PageEx components
+  
+    PageCallbacks mui.ComponentsPre_${MUI_UNIQUEID} mui.ComponentsShow_${MUI_UNIQUEID} mui.ComponentsLeave_${MUI_UNIQUEID}
+    
+    !ifdef MUI_COMPONENTSPAGE_TEXT
+      LicenseText ${MUI_COMPONENTSPAGE_TEXT}
+      !undef MUI_COMPONENTSPAGE_TEXT
+    !endif
+  
+  PageExEnd
+  
+  !insertmacro MUI_FUNCTION_COMPONENTSPAGE mui.ComponentsPre_${MUI_UNIQUEID} mui.ComponentsShow_${MUI_UNIQUEID} mui.ComponentsLeave_${MUI_UNIQUEID}
+  
+  !verbose pop
   
 !macroend
 
 !macro MUI_PAGE_DIRECTORY
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   !ifndef MUI_DIRECTORYPAGE
     !define MUI_DIRECTORYPAGE
   !endif
     
-  Page directory mui.DirectoryPre mui.DirectoryShow mui.DirectoryLeave "MUI_INSTALLBUTTON_DIRECTORY"
+  !insertmacro MUI_UNIQUEID
+    
+  PageEx directory
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+    PageCallbacks mui.DirectoryPre_${MUI_UNIQUEID} mui.DirectoryShow_${MUI_UNIQUEID} mui.DirectoryLeave_${MUI_UNIQUEID}
+    
+    !ifdef MUI_DIRECTORYPAGE_TEXT
+      LicenseText ${MUI_DIRECTORYPAGE_TEXT}
+      !undef MUI_DIRECTORYPAGE_TEXT
+    !endif
+    
+    !ifdef MUI_DIRECTORYPAGE_VARIABLE
+      LicenseText "${MUI_DIRECTORYPAGE_VARIABLE}"
+      !undef "MUI_DIRECTORYPAGE_VARAIBLE"
+    !endif
+    
+  PageExEnd
+  
+  !insertmacro MUI_FUNCTION_DIRECTORYPAGE mui.DirectoryPre_${MUI_UNIQUEID} mui.DirectoryShow_${MUI_UNIQUEID} mui.DirectoryLeave_${MUI_UNIQUEID}
+  
+  !verbose pop
   
 !macroend
 
 !macro MUI_PAGE_STARTMENU
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   !ifndef MUI_STARTMENUPAGE
     !define MUI_STARTMENUPAGE
   !endif
   
-  Page custom mui.StartmenuPre mui.StartmenuLeave "" "MUI_INSTALLBUTTON_STARTMENU"
-  
-  !ifndef MUI_NOVERBOSE & MUI_MANUALVERBOSE
-    !verbose 4
+  !ifndef MUI_STARTMENUPAGE_VARIABLE
+    Var MUI_STARTMENU_FOLDER
+    !define MUI_STARTMENUPAGE_VARIABLE "$MUI_STARTMENU_FOLDER"
   !endif
   
+  !ifndef MUI_STARTMENUPAGE_DEFAULTFOLDER
+    !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${MUI_PRODUCT}"
+  !endif
+  
+  !insertmacro MUI_UNIQUEID
+  
+  PageEx custom
+  
+    PageCallbacks mui.StartmenuPre_${MUI_UNIQUEID} mui.StartmenuLeave_${MUI_UNIQUEID}
+    
+  PageExEnd
+  
+  !insertmacro MUI_FUNCTION_STARTMENUPAGE mui.StartmenuPre_${MUI_UNIQUEID} mui.StartmenuLeave_${MUI_UNIQUEID}
+  
+  !verbose pop
+  
 !macroend
 
 !macro MUI_PAGE_INSTFILES
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
   
   !ifndef MUI_INSTFILESPAGE
     !define MUI_INSTFILESPAGE
   !endif
   
-  Page instfiles mui.InstFilesPre mui.InstFilesShow mui.InstFilesLeave
+  !insertmacro MUI_UNIQUEID
+  
+  PageEx instfiles
+  
+    PageCallbacks mui.InstFilesPre_${MUI_UNIQUEID} mui.InstFilesShow_${MUI_UNIQUEID} mui.InstFilesLeave_${MUI_UNIQUEID}
+    
+  PageExEnd
+  
+  !insertmacro MUI_FUNCTION_INSTFILESPAGE mui.InstFilesPre_${MUI_UNIQUEID} mui.InstFilesShow_${MUI_UNIQUEID} mui.InstFilesLeave_${MUI_UNIQUEID}
    
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
    
 !macroend
 
 !macro MUI_PAGE_FINISH
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
   
   !ifndef MUI_FINISHPAGE
     !define MUI_FINISHPAGE
   !endif
   
-  Page custom mui.FinishPre mui.FinishLeave
-  
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
+  !ifdef MUI_FINISHPAGE
+    !ifndef MUI_FINISHPAGE_NOAUTOCLOSE
+      AutoCloseWindow true
+    !endif
+    !ifdef MUI_FINISHPAGE_LINK
+      !ifndef MUI_FINISHPAGE_LINK_COLOR
+        !define MUI_FINISHPAGE_LINK_COLOR "0x800000"
+      !endif
+    !endif
   !endif
   
+  !insertmacro MUI_UNIQUEID
+  
+  PageEx custom
+  
+    PageCallbacks mui.FinishPre_${MUI_UNIQUEID} mui.FinishLeave_${MUI_UNIQUEID}
+    
+  PageExEnd
+  
+  !ifndef MUI_HWND_DEFINED
+    Var MUI_HWND
+    !define MUI_HWND_DEFINED
+  !endif
+  
+  !insertmacro MUI_FUNCTION_FINISHPAGE mui.FinishPre_${MUI_UNIQUEID} mui.FinishLeave_${MUI_UNIQUEID}
+  
+  !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_NOAUTOCLOSE
+    !undef MUI_FINISHPAGE_NOAUTOCLOSE
+  !endif
+  !ifdef MUI_FINISHPAGE_NOREBOOTSUPPORT
+    !undef MUI_FINISHPAGE_NOREBOOTSUPPORT
+  !endif
+
+  !verbose pop
+  
 !macroend
 
 !macro MUI_UNPAGE_CONFIRM
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   !ifndef MUI_UNINSTALLER
     !define MUI_UNINSTALLER
@@ -699,19 +773,51 @@ Var MUI_TEMP2
     !define MUI_UNCONFIRMPAGE
   !endif
   
-  UninstPage uninstConfirm un.mui.ConfirmPre un.mui.ConfirmShow un.mui.ConfirmLeave "MUI_UNINSTALLBUTTON_CONFIRM"
+  !insertmacro MUI_UNIQUEID
   
-  !ifndef MUI_NOVERBOSE & MUI_MANUALVERBOSE
-    !verbose 4
+  PageEx un.uninstConfirm
+  
+    PageCallbacks un.mui.ConfirmPre_${MUI_UNIQUEID} un.mui.ConfirmShow_${MUI_UNIQUEID} un.mui.ConfirmLeave_${MUI_UNIQUEID}
+    
+  PageExEnd
+  
+  !insertmacro MUI_UNFUNCTION_CONFIRMPAGE un.mui.ConfirmPre_${MUI_UNIQUEID} un.mui.ConfirmShow_${MUI_UNIQUEID} un.mui.ConfirmLeave_${MUI_UNIQUEID}
+  
+  !verbose pop
+   
+!macroend
+
+!macro MUI_UNPAGE_COMPONENTS
+
+  !verbose push
+  !verbose 3
+
+  !ifndef MUI_UNINSTALLER
+    !define MUI_UNINSTALLER
   !endif
+
+  !ifndef MUI_UNCOMPONENTSPAGE
+    !define MUI_UNCOMPONENTSPAGE
+  !endif
+  
+  !insertmacro MUI_UNIQUEID
+  
+  PageEx un.components
+  
+    PageCallbacks un.mui.ComponentsPre_${MUI_UNIQUEID} un.mui.ComponentsShow_${MUI_UNIQUEID} un.mui.ComponentsLeave_${MUI_UNIQUEID}
+    
+  PageExEnd
+  
+  !insertmacro MUI_UNFUNCTION_COMPONENTSPAGE un.mui.ComponentsPre_${MUI_UNIQUEID} un.mui.ComponentsShow_${MUI_UNIQUEID} un.mui.ComponentsLeave_${MUI_UNIQUEID}
+  
+  !verbose pop
    
 !macroend
 
 !macro MUI_UNPAGE_INSTFILES
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   !ifndef MUI_UNINSTALLER
     !define MUI_UNINSTALLER
@@ -720,12 +826,18 @@ Var MUI_TEMP2
   !ifndef MUI_UNINSTFILESPAGE
     !define MUI_UNINSTFILESPAGE
   !endif
-
-  UninstPage instfiles un.mui.InstFilesPre un.mui.InstFilesShow un.mui.InstFilesLeave
+  
+  !insertmacro MUI_UNIQUEID
+  
+  PageEx un.instfiles
+  
+    PageCallbacks un.mui.InstFilesPre_${MUI_UNIQUEID} un.mui.InstFilesShow_${MUI_UNIQUEID} un.mui.InstFilesLeave_${MUI_UNIQUEID}
+    
+  PageExEnd
+  
+  !insertmacro MUI_UNFUNCTION_INSTFILESPAGE un.mui.InstFilesPre_${MUI_UNIQUEID} un.mui.InstFilesShow_${MUI_UNIQUEID} un.mui.InstFilesLeave_${MUI_UNIQUEID}
    
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
    
 !macroend
 
@@ -734,189 +846,145 @@ Var MUI_TEMP2
 
 !macro MUI_INSTALLOPTIONS_EXTRACT FILE
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   InitPluginsDir
 
   File "/oname=$PLUGINSDIR\${FILE}" "${FILE}"
+  
+  StrCmp $(^RTL) 0 +2
+    !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Settings" "RTL" "1"
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_INSTALLOPTIONS_EXTRACT_AS FILE FILENAME
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   InitPluginsDir
 
   File "/oname=$PLUGINSDIR\${FILENAME}" "${FILE}"
+  
+  StrCmp $(^RTL) 0 +2
+    !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Settings" "RTL" "1"
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_INSTALLOPTIONS_DISPLAY FILE
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
   
   InstallOptions::dialog "$PLUGINSDIR\${FILE}"
   Pop $MUI_TEMP1
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_INSTALLOPTIONS_DISPLAY_RETURN FILE
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
   
   InstallOptions::dialog "$PLUGINSDIR\${FILE}"
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_INSTALLOPTIONS_INITDIALOG FILE
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
   
   InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\${FILE}"
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_INSTALLOPTIONS_SHOW
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   InstallOptions::show
   Pop $MUI_TEMP1
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_INSTALLOPTIONS_SHOW_RETURN
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
   
   InstallOptions::show
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_INSTALLOPTIONS_READ VAR FILE SECTION KEY
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}"
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 !macro MUI_INSTALLOPTIONS_WRITE FILE SECTION KEY VALUE
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" "${VALUE}"
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
 
 !macroend
 
 ;--------------------------------
 ;FUNCTIONS
 
-!macro MUI_FUNCTIONS_GUIINIT
+!macro MUI_FUNCTION_CUSTOM TYPE
+
+  !ifdef MUI_PAGE_CUSTOMFUNCTION_${TYPE}
+    Call "${MUI_PAGE_CUSTOMFUNCTION_${TYPE}}"
+    !undef "${MUI_PAGE_CUSTOMFUNCTION_${TYPE}}"
+  !endif
+  
+!macroend
+
+!macro MUI_FUNCTION_GUIINIT
 
   Function .onGUIInit
      
-  !insertmacro MUI_GUIINIT
-  
-  !ifdef MUI_CUSTOMFUNCTION_GUIINIT
-    Call "${MUI_CUSTOMFUNCTION_GUIINIT}"
-  !endif
+    !insertmacro MUI_GUIINIT
+    
+    !ifdef MUI_CUSTOMFUNCTION_GUIINIT
+      Call "${MUI_CUSTOMFUNCTION_GUIINIT}"
+    !endif
 
   FunctionEnd
 
 !macroend
 
-!macro MUI_FUNCTIONS_PAGES
-
-  !ifdef MUI_WELCOMEPAGE
-    !insertmacro MUI_FUNCTIONS_WELCOMEPAGE mui.WelcomePre mui.WelcomeLeave
-  !endif
-
-  !ifdef MUI_LICENSEPAGE
-    !insertmacro MUI_FUNCTIONS_LICENSEPAGE mui.LicensePre mui.LicenseShow mui.LicenseLeave
-  !endif
-  
-  !ifdef MUI_COMPONENTSPAGE
-    !insertmacro MUI_FUNCTIONS_COMPONENTSPAGE mui.ComponentsPre mui.ComponentsShow mui.ComponentsLeave
-  !endif
-  
-  !ifdef MUI_DIRECTORYPAGE
-    !insertmacro MUI_FUNCTIONS_DIRECTORYPAGE mui.DirectoryPre mui.DirectoryShow mui.DirectoryLeave
-  !endif
-  
-  !ifdef MUI_STARTMENUPAGE
-    !insertmacro MUI_FUNCTIONS_STARTMENUPAGE mui.StartmenuPre mui.StartmenuLeave
-  !endif
-  
-  !ifdef MUI_INSTFILESPAGE
-    !insertmacro MUI_FUNCTIONS_INSTFILESPAGE mui.InstFilesPre mui.InstFilesShow mui.InstFilesLeave
-  !endif
-    
-  !ifdef MUI_FINISHPAGE
-    !insertmacro MUI_FUNCTIONS_FINISHPAGE mui.FinishPre mui.FinishLeave
-  !endif
-
-!macroend
-
-!macro MUI_FUNCTIONS_WELCOMEPAGE PRE LEAVE
+!macro MUI_FUNCTION_WELCOMEPAGE PRE LEAVE
 
   Function "${PRE}"
-
+  
     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028
     ShowWindow $MUI_TEMP1 ${SW_HIDE}
 
@@ -935,29 +1003,38 @@ Var MUI_TEMP2
     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045
     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
 
-    !ifdef MUI_CUSTOMFUNCTION_WELCOME_PRE
-      Call "${MUI_CUSTOMFUNCTION_WELCOME_PRE}"
+    !ifndef MUI_WELCOMEPAGE_TITLE
+      !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Text" "$(MUI_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_TEXT_WELCOME_INFO_TEXT)"
+    !else
+      !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "${MUI_WELCOMEPAGE_TEXT}"
+      !undef MUI_WELCOMEPAGE_TEXT
+    !endif
+
+    !insertmacro MUI_FUNCTION_CUSTOM PRE
+    
     !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioSpecial.ini"
     Pop $MUI_HWND
-        
-    SetBkColor $MUI_HWND "${MUI_BGCOLOR}"
+    SetCtlColors $MUI_HWND "" "${MUI_BGCOLOR}"
       
     GetDlgItem $MUI_TEMP1 $MUI_HWND 1201
-    SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+    SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
     CreateFont $MUI_TEMP2 "$(MUI_FONT_TITLE)" "$(MUI_FONTSIZE_TITLE)" "$(MUI_FONTSTYLE_TITLE)"
     SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0
         
     GetDlgItem $MUI_TEMP1 $MUI_HWND 1202
-    SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+    SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
         
     GetDlgItem $MUI_TEMP1 $MUI_HWND 1200
-    SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+    SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
 
-    !ifdef MUI_CUSTOMFUNCTION_WELCOME_SHOW
-      Call "${MUI_CUSTOMFUNCTION_WELCOME_SHOW}"
-    !endif
+    !insertmacro MUI_FUNCTION_CUSTOM SHOW
   
     !insertmacro MUI_INSTALLOPTIONS_SHOW
      
@@ -978,104 +1055,98 @@ Var MUI_TEMP2
 
     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045
     ShowWindow $MUI_TEMP1 ${SW_HIDE}
-
+    
   FunctionEnd
   
   Function "${LEAVE}"
   
-    !ifdef MUI_CUSTOMFUNCTION_WELCOME_LEAVE
-      Call "${MUI_CUSTOMFUNCTION_WELCOME_LEAVE}"
-    !endif
+    !insertmacro MUI_FUNCTION_CUSTOM LEAVE
   
   FunctionEnd
   
 !macroend
 
-!macro MUI_FUNCTIONS_LICENSEPAGE PRE SHOW LEAVE
+!macro MUI_FUNCTION_LICENSEPAGE PRE SHOW LEAVE
 
   Function "${PRE}"
-    !ifdef MUI_CUSTOMFUNCTION_LICENSE_PRE
-      Call "${MUI_CUSTOMFUNCTION_LICENSE_PRE}"
-    !endif
-    !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_LICENSE_TITLE) $(MUI_TEXT_LICENSE_SUBTITLE)
+  
+    !insertmacro MUI_FUNCTION_CUSTOM PRE
+    !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_LICENSE_TITLE) $(MUI_TEXT_LICENSE_SUBTITLE)
+    
   FunctionEnd
 
   Function "${SHOW}"
-    !insertmacro MUI_INNERDIALOG_TEXT 1040 $(MUI_INNERTEXT_LICENSE_BOTTOM)
-    !ifdef MUI_CUSTOMFUNCTION_LICENSE_SHOW
-      Call "${MUI_CUSTOMFUNCTION_LICENSE_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_FUNCTION_CUSTOM SHOW
+    
   FunctionEnd
   
   Function "${LEAVE}"
-    !ifdef MUI_CUSTOMFUNCTION_LICENSE_LEAVE
-      Call "${MUI_CUSTOMFUNCTION_LICENSE_LEAVE}"
-    !endif
+  
+    !insertmacro MUI_FUNCTION_CUSTOM LEAVE
+    
   FunctionEnd
 
 !macroend
 
-!macro MUI_FUNCTIONS_COMPONENTSPAGE PRE SHOW LEAVE
+!macro MUI_FUNCTION_COMPONENTSPAGE PRE SHOW LEAVE
 
   Function "${PRE}"
-    !ifdef MUI_CUSTOMFUNCTION_COMPONENTS_PRE
-      Call "${MUI_CUSTOMFUNCTION_COMPONENTS_PRE}"
-    !endif
-    !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_COMPONENTS_TITLE) $(MUI_TEXT_COMPONENTS_SUBTITLE)
+    !insertmacro MUI_FUNCTION_CUSTOM PRE
+    !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_COMPONENTS_TITLE) $(MUI_TEXT_COMPONENTS_SUBTITLE)
   FunctionEnd
 
   Function "${SHOW}"
+  
     !insertmacro MUI_INNERDIALOG_TEXT 1042 $(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE)
     FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT
     GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043
     EnableWindow $MUI_TEMP1 0
     !insertmacro MUI_INNERDIALOG_TEXT 1043 $(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO)
-    !ifdef MUI_CUSTOMFUNCTION_COMPONENTS_SHOW
-      Call "${MUI_CUSTOMFUNCTION_COMPONENTS_SHOW}"
-    !endif
+    !insertmacro MUI_FUNCTION_CUSTOM SHOW
+   
   FunctionEnd
 
   Function "${LEAVE}"
+  
     !ifdef MUI_CUSTOMFUNCTION_COMPONENTS_LEAVE
       Call "${MUI_CUSTOMFUNCTION_COMPONENTS_LEAVE}"
     !endif
   FunctionEnd
+  
     
 !macroend
 
-!macro MUI_FUNCTIONS_DIRECTORYPAGE PRE SHOW LEAVE
+!macro MUI_FUNCTION_DIRECTORYPAGE PRE SHOW LEAVE
 
   Function "${PRE}"
-    !ifdef MUI_CUSTOMFUNCTION_DIRECTORY_PRE
-      Call "${MUI_CUSTOMFUNCTION_DIRECTORY_PRE}"
-    !endif
-    !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_DIRECTORY_TITLE) $(MUI_TEXT_DIRECTORY_SUBTITLE)
+    !insertmacro MUI_FUNCTION_CUSTOM PRE
+    !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_DIRECTORY_TITLE) $(MUI_TEXT_DIRECTORY_SUBTITLE)
   FunctionEnd
 
   Function "${SHOW}"
-    !insertmacro MUI_INNERDIALOG_TEXT 1041 $(MUI_INNERTEXT_DIRECTORY_DESTINATION)
-    !ifdef MUI_CUSTOMFUNCTION_DIRECTORY_SHOW
-      Call "${MUI_CUSTOMFUNCTION_DIRECTORY_SHOW}"
-    !endif
+    !insertmacro MUI_FUNCTION_CUSTOM SHOW
   FunctionEnd
   
   Function "${LEAVE}"
-    !ifdef MUI_CUSTOMFUNCTION_DIRECTORY_LEAVE
-      Call "${MUI_CUSTOMFUNCTION_DIRECTORY_LEAVE}"
-    !endif
+    !insertmacro MUI_FUNCTION_CUSTOM LEAVE
   FunctionEnd
 
 !macroend
 
-!macro MUI_FUNCTIONS_STARTMENUPAGE PRE LEAVE
+!macro MUI_FUNCTION_STARTMENUPAGE PRE LEAVE
   
   Function "${PRE}"
   
-    !ifdef MUI_CUSTOMFUNCTION_STARTMENU_PRE
-      Call "${MUI_CUSTOMFUNCTION_STARTMENU_PRE}"
-    !endif
+    !insertmacro MUI_FUNCTION_CUSTOM PRE
 
-    !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME
+     !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME
 
       StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 +4
 
@@ -1085,13 +1156,22 @@ Var MUI_TEMP2
     
     !endif
   
-    !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE)
+    !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE)
     
-    !ifndef MUI_STARTMENUPAGE_NODISABLE
-      StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
-    !else
-      StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
-    !endif
+    StrCmp $(^RTL) 0 mui.startmenu_nortl
+      !ifndef MUI_STARTMENUPAGE_NODISABLE
+        StartMenu::Select /rtl /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
+      !else
+        StartMenu::Select /rtl /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_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_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
+      !else
+        StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
+      !endif
+    mui.startmenu_calldone:
 
     Pop $MUI_TEMP1
     StrCmp $MUI_TEMP1 "success" 0 +2
@@ -1101,33 +1181,30 @@ Var MUI_TEMP2
 
   Function "${LEAVE}"
 
-    !ifdef MUI_CUSTOMFUNCTION_STARTMENU_LEAVE
-      Call "${MUI_CUSTOMFUNCTION_STARTMENU_LEAVE}"
-    !endif
+    !insertmacro MUI_FUNCTION_CUSTOM LEAVE
 
   FunctionEnd
 
 !macroend
 
-!macro MUI_FUNCTIONS_INSTFILESPAGE PRE SHOW LEAVE
+!macro MUI_FUNCTION_INSTFILESPAGE PRE SHOW LEAVE
 
   Function "${PRE}"
-    !ifdef MUI_CUSTOMFUNCTION_INSTFILES_PRE
-      Call "${MUI_CUSTOMFUNCTION_INSTFILES_PRE}"
-    !endif
-    !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_INSTALLING_TITLE) $(MUI_TEXT_INSTALLING_SUBTITLE)
+  
+    !insertmacro MUI_FUNCTION_CUSTOM PRE
+    !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_INSTALLING_TITLE) $(MUI_TEXT_INSTALLING_SUBTITLE)
+    
   FunctionEnd
 
   Function "${SHOW}"
-    !ifdef MUI_CUSTOMFUNCTION_INSTFILES_SHOW
-      Call "${MUI_CUSTOMFUNCTION_INSTFILES_SHOW}"
-    !endif
+  
+    !insertmacro MUI_FUNCTION_CUSTOM SHOW
+    
   FunctionEnd
 
   Function "${LEAVE}"
-    !ifdef MUI_CUSTOMFUNCTION_INSTFILES_LEAVE
-      Call "${MUI_CUSTOMFUNCTION_INSTFILES_LEAVE}"
-    !endif
+    
+    !insertmacro MUI_FUNCTION_CUSTOM LEAVE
       
     !insertmacro MUI_FINISHHEADER
     !insertmacro MUI_LANGDLL_SAVELANGUAGE
@@ -1136,7 +1213,7 @@ Var MUI_TEMP2
   
 !macroend
 
-!macro MUI_FUNCTIONS_FINISHPAGE PRE LEAVE
+!macro MUI_FUNCTION_FINISHPAGE PRE LEAVE
 
   Function "${PRE}"
     
@@ -1149,10 +1226,10 @@ Var MUI_TEMP2
     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035
     ShowWindow $MUI_TEMP1 ${SW_HIDE}
 
-	GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037
+    GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037
     ShowWindow $MUI_TEMP1 ${SW_HIDE}
 
-	GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
+    GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
     ShowWindow $MUI_TEMP1 ${SW_HIDE}
       
     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045
@@ -1195,7 +1272,7 @@ Var MUI_TEMP2
     !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Text" "$(MUI_TEXT_FINISH_INFO_TEXT)"
       
     !ifdef MUI_FINISHPAGE_RUN
-              
+      
       !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Type" "CheckBox"
       !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Text" "$(MUI_TEXT_FINISH_RUN)"
       !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Left" "120"
@@ -1273,32 +1350,30 @@ Var MUI_TEMP2
        mui.finish_load:
     !endif
       
-    !ifdef MUI_CUSTOMFUNCTION_FINISH_PRE
-       Call "${MUI_CUSTOMFUNCTION_FINISH_PRE}"
-    !endif
-      
+    !insertmacro MUI_FUNCTION_CUSTOM PRE
+    
     !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioSpecial.ini"
     Pop $MUI_HWND
     
-    SetBkColor $MUI_HWND "${MUI_BGCOLOR}"
+    SetCtlColors $MUI_HWND "" "${MUI_BGCOLOR}"
     
     GetDlgItem $MUI_TEMP1 $MUI_HWND 1201
-    SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+    SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
     CreateFont $MUI_TEMP2 "$(MUI_FONT_TITLE)" "$(MUI_FONTSIZE_TITLE)" "$(MUI_FONTSTYLE_TITLE)"
     SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0
     
     GetDlgItem $MUI_TEMP1 $MUI_HWND 1202
-    SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+    SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
     
     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
         
       IfRebootFlag 0 mui.finish_noreboot_show
         
         GetDlgItem $MUI_TEMP1 $MUI_HWND 1203
-        SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+        SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
         
         GetDlgItem $MUI_TEMP1 $MUI_HWND 1204
-        SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+        SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
           
         Goto mui.finish_show
         
@@ -1308,7 +1383,7 @@ Var MUI_TEMP2
     
     !ifdef MUI_FINISHPAGE_RUN
       GetDlgItem $MUI_TEMP1 $MUI_HWND 1203
-      SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+      SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
     !endif
            
     !ifdef MUI_FINISHPAGE_SHOWREADME
@@ -1317,7 +1392,7 @@ Var MUI_TEMP2
       !else
         GetDlgItem $MUI_TEMP1 $MUI_HWND 1204
       !endif
-      SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"  
+      SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"  
     !endif
     
     !ifdef MUI_FINISHPAGE_LINK
@@ -1328,16 +1403,14 @@ Var MUI_TEMP2
       !else
         GetDlgItem $MUI_TEMP1 $MUI_HWND 1203
       !endif
-      SetBkColor $MUI_TEMP1 "${MUI_BGCOLOR}"
+      SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
     !endif
      
     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
       mui.finish_show:
     !endif
 
-    !ifdef MUI_CUSTOMFUNCTION_FINISH_SHOW
-      Call "${MUI_CUSTOMFUNCTION_FINISH_SHOW}"
-    !endif
+    !insertmacro MUI_FUNCTION_CUSTOM SHOW
 
     !insertmacro MUI_INSTALLOPTIONS_SHOW_RETURN
     
@@ -1380,20 +1453,20 @@ Var MUI_TEMP2
     !ifdef MUI_FINISHPAGE_RUN
   
       !insertmacro MUI_INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field 4" "State"
-        
-       StrCmp $MUI_TEMP1 "1" 0 mui.finish_norun
-         !ifndef MUI_FINISHPAGE_RUN_FUNCTION
-           !ifndef MUI_FINISHPAGE_RUN_PARAMETERS
-             StrCpy $MUI_TEMP1 "$\"${MUI_FINISHPAGE_RUN}$\""
-           !else
-             StrCpy $MUI_TEMP1 "$\"${MUI_FINISHPAGE_RUN}$\" ${MUI_FINISHPAGE_RUN_PARAMETERS}"
-           !endif
-           Exec "$MUI_TEMP1"
-         !else
-           Call "${MUI_FINISHPAGE_RUN_FUNCTION}"
-         !endif
-             
-         mui.finish_norun:
+      
+      StrCmp $MUI_TEMP1 "1" 0 mui.finish_norun
+        !ifndef MUI_FINISHPAGE_RUN_FUNCTION
+          !ifndef MUI_FINISHPAGE_RUN_PARAMETERS
+            StrCpy $MUI_TEMP1 "$\"${MUI_FINISHPAGE_RUN}$\""
+          !else
+            StrCpy $MUI_TEMP1 "$\"${MUI_FINISHPAGE_RUN}$\" ${MUI_FINISHPAGE_RUN_PARAMETERS}"
+          !endif
+          Exec "$MUI_TEMP1"
+        !else
+          Call "${MUI_FINISHPAGE_RUN_FUNCTION}"
+        !endif
+            
+        mui.finish_norun:
            
     !endif
              
@@ -1422,49 +1495,81 @@ Var MUI_TEMP2
   
   Function "${LEAVE}"
   
-    !ifdef MUI_CUSTOMFUNCTION_FINISH_LEAVE
-      Call "${MUI_CUSTOMFUNCTION_FINISH_LEAVE}"
-    !endif
+    !insertmacro MUI_FUNCTION_CUSTOM LEAVE
   
   FunctionEnd
   
 !macroend
 
+!macro MUI_FUNCTION_DESCRIPTION_BEGIN
+
+  !verbose push
+  !verbose 3
+
+  Function .onMouseOverSection
+    !insertmacro MUI_DESCRIPTION_BEGIN
+  
+  !verbose pop
+  
+!macroend
+
+!macro MUI_FUNCTION_DESCRIPTION_END
+
+  !verbose push
+  !verbose 3
+
+    !insertmacro MUI_DESCRIPTION_END
+  FunctionEnd
+
+  !verbose pop
+  
+!macroend
+
 !macro MUI_FUNCTIONS_DESCRIPTION_BEGIN
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
-  
-  !define MUI_NOVERBOSE
+  ;1.65 compatibility
 
-  Function .onMouseOverSection
-    !insertmacro MUI_DESCRIPTION_BEGIN
+  !warning "Modern UI macro name has changed. Please change MUI_FUNCTIONS_DESCRIPTION_BEGIN to MUI_FUNCTION_DESCRIPTION_BEGIN."
 
-  !undef MUI_NOVERBOSE
-  
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
   
 !macroend
 
 !macro MUI_FUNCTIONS_DESCRIPTION_END
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  ;1.65 compatibility
+
+  !warning "Modern UI macro name has changed. Please change MUI_FUNCTIONS_DESCRIPTION_END to MUI_FUNCTION_DESCRIPTION_END."
+
+  !insertmacro MUI_FUNCTION_DESCRIPTION_END
+  
+!macroend
+
+!macro MUI_UNFUNCTION_DESCRIPTION_BEGIN
+
+  !verbose push
+  !verbose 3
+
+  Function un.onMouseOverSection
+    !insertmacro MUI_DESCRIPTION_BEGIN
+  
+  !verbose pop
+  
+!macroend
+
+!macro MUI_UNFUNCTION_DESCRIPTION_END
+
+  !verbose push
+  !verbose 3
 
     !insertmacro MUI_DESCRIPTION_END
   FunctionEnd
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
   
 !macroend
 
-!macro MUI_FUNCTIONS_ABORTWARNING
+!macro MUI_FUNCTION_ABORTWARNING
 
   !ifdef MUI_ABORTWARNING
     Function .onUserAbort
@@ -1491,37 +1596,54 @@ Var MUI_TEMP2
 
 !macroend
 
-!macro MUI_UNFUNCTION_PAGES
-  
-  !ifdef MUI_UNCONFIRMPAGE
-    !insertmacro MUI_UNFUNCTION_CONFIRMPAGE un.mui.ConfirmPre un.mui.ConfirmShow un.mui.ConfirmLeave
-  !endif
-  
-  !ifdef MUI_UNINSTFILESPAGE
-    !insertmacro MUI_UNFUNCTION_INSTFILESPAGE un.mui.InstFilesPre un.mui.InstFilesShow un.mui.InstFilesLeave
-  !endif
-  
-!macroend
-
 !macro MUI_UNFUNCTION_CONFIRMPAGE PRE SHOW LEAVE
 
   Function "${PRE}"
-    !ifdef MUI_UNCUSTOMFUNCTION_CONFIRM_PRE
-      Call "${MUI_UNCUSTOMFUNCTION_CONFIRM_PRE}"
-    !endif
-    !insertmacro MUI_HEADER_TEXT $(un.MUI_UNTEXT_INTRO_TITLE) $(un.MUI_UNTEXT_INTRO_SUBTITLE)
+  
+   !insertmacro MUI_FUNCTION_CUSTOM PRE
+   !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_UNTEXT_INTRO_TITLE) $(MUI_UNTEXT_INTRO_SUBTITLE)
+  
   FunctionEnd
   
   Function "${SHOW}"
-    !ifdef MUI_UNCUSTOMFUNCTION_CONFIRM_SHOW
-      Call "${MUI_UNCUSTOMFUNCTION_CONFIRM_SHOW}"
-    !endif
+  
+    !insertmacro MUI_FUNCTION_CUSTOM SHOW
+  
   FunctionEnd
   
   Function "${LEAVE}"
-    !ifdef MUI_UNCUSTOMFUNCTION_CONFIRM_LEAVE
-      Call "${MUI_UNCUSTOMFUNCTION_CONFIRM_LEAVE}"
-    !endif
+  
+    !insertmacro MUI_FUNCTION_CUSTOM LEAVE
+    
+  FunctionEnd
+  
+!macroend
+
+!macro MUI_UNFUNCTION_COMPONENTSPAGE PRE SHOW LEAVE
+
+  Function "${PRE}"
+  
+    !insertmacro MUI_FUNCTION_CUSTOM PRE
+    
+    !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_UNTEXT_COMPONENTS_TITLE) $(MUI_UNTEXT_COMPONENTS_SUBTITLE)
+    
+  FunctionEnd
+  
+  Function "${SHOW}"
+  
+    !insertmacro MUI_INNERDIALOG_TEXT 1042 $(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE)
+    FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT
+    GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043
+    EnableWindow $MUI_TEMP1 0
+    !insertmacro MUI_INNERDIALOG_TEXT 1043 $(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO)
+    !insertmacro MUI_FUNCTION_CUSTOM SHOW
+   
+  FunctionEnd
+  
+  Function "${LEAVE}"
+  
+    !insertmacro MUI_FUNCTION_CUSTOM LEAVE
+  
   FunctionEnd
   
 !macroend
@@ -1529,23 +1651,23 @@ Var MUI_TEMP2
 !macro MUI_UNFUNCTION_INSTFILESPAGE PRE SHOW LEAVE
 
   Function ${PRE}
-    !ifdef MUI_UNCUSTOMFUNCTION_INSTFILES_PRE
-      Call "${MUI_UNCUSTOMFUNCTION_INSTFILES_PRE}"
-    !endif
-    !insertmacro MUI_HEADER_TEXT $(un.MUI_UNTEXT_UNINSTALLING_TITLE) $(un.MUI_UNTEXT_UNINSTALLING_SUBTITLE)
+  
+    !insertmacro MUI_FUNCTION_CUSTOM PRE
+    !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_UNTEXT_UNINSTALLING_TITLE) $(MUI_UNTEXT_UNINSTALLING_SUBTITLE)
+  
   FunctionEnd
 
   Function "${SHOW}"
-    !ifdef MUI_UNCUSTOMFUNCTION_INSTFILES_SHOW
-      Call "${MUI_UNCUSTOMFUNCTION_INSTFILES_SHOW}"
-    !endif
+  
+    !insertmacro MUI_FUNCTION_CUSTOM SHOW
+  
   FunctionEnd
   
   Function "${LEAVE}"
-    !ifdef MUI_UNCUSTOMFUNCTION_INSTFILES_LEAVE
-      Call "${MUI_UNCUSTOMFUNCTION_INSTFILES_LEAVE}"
-    !endif
+  
+    !insertmacro MUI_FUNCTION_CUSTOM LEAVE
     !insertmacro MUI_UNFINISHHEADER
+  
   FunctionEnd
   
 !macroend
@@ -1555,91 +1677,69 @@ Var MUI_TEMP2
 
 !macro MUI_RESERVEFILE_WELCOMEFINISHPAGE
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
-  
-    !define MUI_NOVERBOSE
+  !verbose push
+  !verbose 3
 
-    !insertmacro MUI_RESERVEFILE_SPECIALINI
-    !insertmacro MUI_RESERVEFILE_SPECIALBITMAP
-    !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
+  !insertmacro MUI_RESERVEFILE_SPECIALINI
+  !insertmacro MUI_RESERVEFILE_SPECIALBITMAP
+  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
     
-    !undef MUI_NOVERBOSE
-    
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose pop
     
 !macroend
 
 !macro MUI_RESERVEFILE_INSTALLOPTIONS
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
-
+  !verbose push
+  !verbose 3
+  
   ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
   
 !macroend
 
 !macro MUI_RESERVEFILE_SPECIALINI
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   ReserveFile "${NSISDIR}\Contrib\Modern UI\ioSpecial.ini"
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
   
 !macroend
 
 !macro MUI_RESERVEFILE_SPECIALBITMAP
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
 
   ReserveFile "${NSISDIR}\Contrib\Icons\modern-wizard.bmp"
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
   
 !macroend
 
 !macro MUI_RESERVEFILE_LANGDLL
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
   
   ReserveFile "${NSISDIR}\Plugins\LangDLL.dll"
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
   
 !macroend
 
 !macro MUI_RESERVEFILE_STARTMENU
 
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 3
-  !endif
+  !verbose push
+  !verbose 3
   
   ReserveFile "${NSISDIR}\Plugins\StartMenu.dll"
   
-  !ifndef MUI_MANUALVERBOSE
-    !verbose 4
-  !endif
+  !verbose pop
   
 !macroend
 
@@ -1648,32 +1748,15 @@ Var MUI_TEMP2
 
 !macro MUI_INSERT
   
-  !ifndef MUI_MANUALVERBOSE
-    !define MUI_MANUALVERBOSE_SET
-    !define MUI_MANUALVERBOSE
-  !endif
-  
-  !insertmacro MUI_DEFINEVARS
-
-  !ifdef MUI_STARTMENUPAGE
-    !insertmacro MUI_STARTMENU_INITDEFINES
-  !endif
-  
   !insertmacro MUI_INTERFACE
-   
-  !insertmacro MUI_FUNCTIONS_PAGES
-  !insertmacro MUI_FUNCTIONS_GUIINIT
-  !insertmacro MUI_FUNCTIONS_ABORTWARNING
+  
+  !insertmacro MUI_FUNCTION_GUIINIT
+  !insertmacro MUI_FUNCTION_ABORTWARNING
   
   !ifdef MUI_UNINSTALLER
-    !insertmacro MUI_UNFUNCTION_PAGES
     !insertmacro MUI_UNFUNCTION_GUIINIT
   !endif
   
-  !ifdef MUI_MANUALVERBOSE_SET
-    !undef MUI_MANUALVERBOSE
-  !endif
-  
 !macroend
 
 ;--------------------------------
@@ -1715,28 +1798,24 @@ Var MUI_TEMP2
   
 !macroend
 
-!macro MUI_LANGUAGEFILE_LANGSTRING_CONTINUE NAME INSTALLBUTTON
+!macro MUI_LANGUAGEFILE_LANGSTRING_NOUNDEF NAME
 
-  !ifndef "${INSTALLBUTTON}"
-    LangString "${NAME}" 0 "${${NAME}} ${MUI_TEXT_CONTINUE_NEXT}"
-  !else
-    LangString "${NAME}" 0 "${${NAME}} ${MUI_TEXT_CONTINUE_INSTALL}"
-  !endif
-
-  !undef "${NAME}"
+  LangString "${NAME}" 0 "${${NAME}}"
   
 !macroend
 
-!macro MUI_LANGUAGEFILE_LANGSTRING_CONTINUE_NOSPACE NAME INSTALLBUTTON
-
-  !ifndef "${INSTALLBUTTON}"
-    LangString "${NAME}" 0 "${${NAME}}${MUI_TEXT_CONTINUE_NEXT}"
-  !else
-    LangString "${NAME}" 0 "${${NAME}}${MUI_TEXT_CONTINUE_INSTALL}"
-  !endif
+!macro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMDEFINE NAME DEFINE
 
+  LangString "${NAME}" 0 "${${DEFINE}}"
   !undef "${NAME}"
-  
+
+!macroend
+
+!macro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMSTRING NAME STRING
+
+  LangString "${STRING}" 0 "${${NAME}}"
+  !undef "${NAME}"
+
 !macroend
 
 !macro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMDEFINE_NOUNDEF NAME DEFINE
@@ -1745,69 +1824,6 @@ Var MUI_TEMP2
 
 !macroend
 
-!macro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMDEFINE_CONTINUE NAME DEFINE INSTALLBUTTON
-
-  !ifndef "${INSTALLBUTTON}"
-    LangString "${NAME}" 0 "${${DEFINE}} ${MUI_TEXT_CONTINUE_NEXT}"
-  !else
-    LangString "${NAME}" 0 "${${DEFINE}} ${MUI_TEXT_CONTINUE_INSTALL}"
-  !endif
-
-  !undef "${DEFINE}"
-  
-!macroend
-
-!macro MUI_LANGUAGEFILE_UNLANGSTRING NAME
-
-  LangString "un.${NAME}" 0 "${${NAME}}"
-  !undef "${NAME}"
-  
-!macroend
-
-!macro MUI_LANGUAGEFILE_UNLANGSTRING_CUSTOMDEFINE_NOUNDEF NAME DEFINE
-
-  LangString "un.${NAME}" 0 "${${DEFINE}}"
-
-!macroend
-
-!macro MUI_LANGUAGEFILE_NSISCOMMAND COMMAND NAME
-
-  ${COMMAND} "${${NAME}}"
-  !undef "${NAME}"
-
-!macroend
-
-!macro MUI_LANGUAGEFILE_NSISCOMMAND_MULTIPARAMETER COMMAND NAME VALUE
-
-  ${COMMAND} ${VALUE}
-  !undef "${NAME}"
-
-!macroend
-
-!macro MUI_LANGUAGEFILE_NSISCOMMAND_CONTINUE COMMAND NAME INSTALLBUTTON
-
-  !ifndef "${INSTALLBUTTON}"
-     ${COMMAND} "${${NAME}} ${MUI_TEXT_CONTINUE_NEXT}"
-  !else
-    ${COMMAND} "${${NAME}} ${MUI_TEXT_CONTINUE_INSTALL}"
-  !endif
-  
-  !undef "${NAME}"
-  
-!macroend
-
-!macro MUI_LANGUAGEFILE_UNNSISCOMMAND_CONTINUE COMMAND NAME INSTALLBUTTON
-
-  !ifndef "${INSTALLBUTTON}"
-    ${COMMAND} "${${NAME}} ${MUI_TEXT_CONTINUE_NEXT}"
-  !else
-    ${COMMAND} "${${NAME}} ${MUI_UNTEXT_CONTINUE_UNINSTALL}"
-  !endif
-  
-  !undef "${NAME}"
-  
-!macroend
-
 !macro MUI_LANGUAGEFILE_DEFINE DEFINE NAME
 
   !ifndef "${DEFINE}"
@@ -1832,11 +1848,9 @@ Var MUI_TEMP2
 
   !ifdef "${NAME}"
     Langstring "${NAME}" 0 "${${NAME}}"
-    Langstring "un.${NAME}" 0 "${${NAME}}"
     !undef "${NAME}"
   !else
     Langstring "${NAME}" 0 "${DEFAULT}"
-    Langstring "un.${NAME}" 0 "${DEFAULT}"
   !endif
   
 !macroend
@@ -1863,67 +1877,32 @@ Var MUI_TEMP2
   !insertmacro MUI_LANGUAGEFILE_LANGSTRING_INSTFONT "MUI_FONT_TITLE" "Verdana"
   !insertmacro MUI_LANGUAGEFILE_LANGSTRING_INSTFONT "MUI_FONTSIZE_TITLE" "12"
   !insertmacro MUI_LANGUAGEFILE_LANGSTRING_INSTFONT "MUI_FONTSTYLE_TITLE" "700"
+  
+  !insertmacro MUI_LANGUAGEFILE_LANGSTRING_NOUNDEF "MUI_BGCOLOR"
     
-  !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND "Name" "MUI_NAME"
+  !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_NAME"
   
-  SubCaption 0 " "
-  SubCaption 1 " "
-  SubCaption 2 " "
-  SubCaption 3 " "
-  SubCaption 4 " "
-  
-  UninstallSubCaption 0 " "
-  UninstallSubCaption 1 " "
-  UninstallSubCaption 2 " "
-  
-  !ifndef MUI_BRANDINGTEXT
-    !define MUI_BRANDINGTEXT ""
-  !endif
-  !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND "BrandingText" "MUI_BRANDINGTEXT"
-
   !ifdef MUI_WELCOMEPAGE
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_WELCOME_INFO_TITLE"
-    !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CONTINUE_NOSPACE "MUI_TEXT_WELCOME_INFO_TEXT" "MUI_INSTALLBUTTON_WELCOME"
+    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_WELCOME_INFO_TEXT"
   !endif
 
   !ifdef MUI_LICENSEPAGE
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_LICENSE_TITLE"
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_LICENSE_SUBTITLE"
-    !ifndef MUI_BUTTONTEXT_LICENSE
-      !define MUI_BUTTONTEXT_LICENSE ""
+    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_INNERTEXT_LICENSE_TOP"
+    !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMSTRING "MUI_INNERTEXT_LICENSE_BOTTOM" "^LicenseText"
+    !ifdef MUI_LICENSEPAGE_CHECKBOX_USED
+      !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMSTRING "MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX" "^LicenseTextCB"
     !endif
-    !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_MULTIPARAMETER "LicenseText" "MUI_INNERTEXT_LICENSE_TOP" "$\"${MUI_INNERTEXT_LICENSE_TOP}$\" $\"${MUI_BUTTONTEXT_LICENSE}$\""
-    !undef MUI_BUTTONTEXT_LICENSE
-    !ifndef MUI_LICENSEPAGE_CHECKBOX & MUI_LICENSEPAGE_RADIOBUTTONS
-      !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_INNERTEXT_LICENSE_BOTTOM"
-    !else
-      !ifndef MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX | MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS
-        !error "The ${LANGUAGE} Modern UI language file does not contain a bottom text for a license pages with a checkbox or radiobuttons. Please update this file and post your language file on the NSIS Project Page, http://nsis.sf.net."
-      !endif
-      !ifdef MUI_LICENSEPAGE_CHECKBOX
-        !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMDEFINE_CONTINUE "MUI_INNERTEXT_LICENSE_BOTTOM" "MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX" "MUI_INSTALLBUTTON_LICENSE"
-      !else ifdef MUI_LICENSEPAGE_RADIOBUTTONS
-        !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMDEFINE_CONTINUE "MUI_INNERTEXT_LICENSE_BOTTOM" "MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS" "MUI_INSTALLBUTTON_LICENSE"
-      !endif
+    !ifdef MUI_LICENSEPAGE_RADIOBUTTONS_USED
+      !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMSTRING "MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS" "^LicenseTextRB"
     !endif
   !endif
   
   !ifdef MUI_COMPONENTSPAGE
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_COMPONENTS_TITLE"
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_COMPONENTS_SUBTITLE"
-    !ifndef MUI_INNERTEXT_COMPONENTS_SUB1
-      !define MUI_INNERTEXT_COMPONENTS_SUB1 ""
-    !endif
-    !ifndef MUI_INNERTEXT_COMPONENTS_SUB2
-      !define MUI_INNERTEXT_COMPONENTS_SUB2 ""
-    !endif
-    !ifndef MUI_INSTALLBUTTON_COMPONENTS
-      !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_MULTIPARAMETER "ComponentText" "MUI_INNERTEXT_COMPONENTS_TOP" "$\"${MUI_INNERTEXT_COMPONENTS_TOP} ${MUI_TEXT_CONTINUE_NEXT}$\" $\"${MUI_INNERTEXT_COMPONENTS_SUB1}$\" $\"${MUI_INNERTEXT_COMPONENTS_SUB2}$\""
-    !else
-      !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_MULTIPARAMETER "ComponentText" "MUI_INNERTEXT_COMPONENTS_TOP" "$\"${MUI_INNERTEXT_COMPONENTS_TOP} ${MUI_TEXT_CONTINUE_INSTALL}$\" $\"${MUI_INNERTEXT_COMPONENTS_SUB1}$\" $\"${MUI_INNERTEXT_COMPONENTS_SUB2}$\""
-    !endif
-    !undef MUI_INNERTEXT_COMPONENTS_SUB1
-    !undef MUI_INNERTEXT_COMPONENTS_SUB2
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE"
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO"
   !endif
@@ -1931,62 +1910,34 @@ Var MUI_TEMP2
   !ifdef MUI_DIRECTORYPAGE
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_DIRECTORY_TITLE"
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_DIRECTORY_SUBTITLE"
-    !ifndef MUI_TEXT_DIRECTORY_BROWSE
-      !define MUI_TEXT_DIRECTORY_BROWSE ""
-    !endif
-    !ifndef MUI_INSTALLBUTTON_DIRECTORY
-      !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_MULTIPARAMETER "DirText" "MUI_INNERTEXT_DIRECTORY_TOP" "$\"${MUI_INNERTEXT_DIRECTORY_TOP} ${MUI_TEXT_CONTINUE_NEXT}$\" $\"$\" $\"${MUI_TEXT_DIRECTORY_BROWSE}$\""
-    !else
-      !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_MULTIPARAMETER "DirText" "MUI_INNERTEXT_DIRECTORY_TOP" "$\"${MUI_INNERTEXT_DIRECTORY_TOP} ${MUI_TEXT_CONTINUE_INSTALL}$\" $\"$\" $\"${MUI_TEXT_DIRECTORY_BROWSE}$\""
-    !endif
-    !undef MUI_TEXT_DIRECTORY_BROWSE
-    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_INNERTEXT_DIRECTORY_DESTINATION"
   !endif
   
   !ifdef MUI_STARTMENUPAGE
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_STARTMENU_TITLE"
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_STARTMENU_SUBTITLE"
-    !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CONTINUE "MUI_INNERTEXT_STARTMENU_TOP" "MUI_INSTALLBUTTON_STARTMENU"
+    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_INNERTEXT_STARTMENU_TOP"
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_INNERTEXT_STARTMENU_CHECKBOX"
   !endif
   
-  !ifndef MUI_FINISHPAGE
-    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_TITLE"
-    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_SUBTITLE"
-  !else ifdef MUI_FINISHPAGE_NOAUTOCLOSE
-    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_TITLE"
-    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_SUBTITLE"
-  !endif
+  !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_TITLE"
+  !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_SUBTITLE"
+
   
   !ifdef MUI_TEXT_ABORT_TITLE
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_ABORT_TITLE"
-  !else
-    ;1.63 compatibility
-    !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMDEFINE_NOUNDEF "MUI_TEXT_ABORT_TITLE" "MUI_TEXT_INSTALLING_TITLE"
   !endif
   
   !ifdef MUI_TEXT_ABORT_SUBTITLE
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_ABORT_SUBTITLE"
-  !else
-    ;1.63 compatibility
-    !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMDEFINE_NOUNDEF "MUI_TEXT_ABORT_SUBTITLE" "MUI_TEXT_INSTALLING_SUBTITLE"
   !endif
   
   !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_INSTALLING_TITLE"
   !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_INSTALLING_SUBTITLE"
-  
-  !ifndef MUI_BUTTONTEXT_BACK
-    !define MUI_BUTTONTEXT_BACK ""
-  !endif
-  !ifndef MUI_BUTTONTEXT_NEXT
-    !define MUI_BUTTONTEXT_NEXT ""
-  !endif
-  !ifndef MUI_BUTTONTEXT_CANCEL
-    !define MUI_BUTTONTEXT_CANCEL ""
-  !endif
-  
+    
   !ifdef MUI_FINISHPAGE
-    !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_MULTIPARAMETER "MiscButtonText" "MUI_TEXT_FINISH_BUTTON" "$\${MUI_BUTTONTEXT_BACK}"$\" $\"${MUI_BUTTONTEXT_NEXT}$\" $\"${MUI_BUTTONTEXT_CANCEL}$\" $\"${MUI_TEXT_FINISH_BUTTON}$\""
+    !ifdef MUI_BUTTONTEXT_FINISH
+      !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CUSTOMSTRING "MUI_BUTTONTEXT_FINISH" "^CloseBtn"
+    !endif
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_INFO_TITLE"
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_INFO_TEXT"
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_INFO_REBOOT"
@@ -1996,57 +1947,43 @@ Var MUI_TEMP2
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_SHOWREADME"
   !else
     !ifndef MUI_BUTTONTEXT_CLOSE
-      !define MUI_BUTTONTEXT_CLOSE ""
+      !define MUI_BUTTONTEXT_CLOSE " "
     !endif
-    !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_MULTIPARAMETER "MiscButtonText" "MUI_TEXT_FINISH_BUTTON" "$\${MUI_BUTTONTEXT_BACK}"$\" $\"${MUI_BUTTONTEXT_NEXT}$\" $\"${MUI_BUTTONTEXT_CANCEL}$\" $\"${MUI_BUTTONTEXT_CLOSE}$\""
-    !undef MUI_BUTTONTEXT_CLOSE
+    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_BUTTONTEXT_CLOSE"
   !endif
   
-  !undef MUI_BUTTONTEXT_BACK
-  !undef MUI_BUTTONTEXT_NEXT
-  !undef MUI_BUTTONTEXT_CANCEL
-  
   !ifdef MUI_ABORTWARNING
     !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_ABORTWARNING"
   !endif
   
   
   !ifdef MUI_UNINSTALLER
-    !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_INTRO_TITLE"
-    !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_INTRO_SUBTITLE"
-  
+    
     !ifdef MUI_UNCONFIRMPAGE
-      !insertmacro MUI_LANGUAGEFILE_UNNSISCOMMAND_CONTINUE "UninstallText" "MUI_UNINNERTEXT_INTRO" "MUI_UNINSTALLBUTTON_CONFIRM"
+      !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_INTRO_TITLE"
+      !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_INTRO_SUBTITLE"
+    !endif
+    
+    !ifdef MUI_UNCOMPONENTSPAGE
+      !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_COMPONENTS_TITLE"
+      !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_COMPONENTS_SUBTITLE"
     !endif
      
-    !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_FINISH_TITLE"
-    !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_FINISH_SUBTITLE"
+    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_FINISH_TITLE"
+    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_FINISH_SUBTITLE"
     
     !ifdef MUI_UNTEXT_ABORT_TITLE
-       !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_ABORT_TITLE"
-    !else
-      ;1.63 compatibility
-      !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_CUSTOMDEFINE_NOUNDEF "MUI_UNTEXT_ABORT_TITLE" "MUI_UNTEXT_UNINSTALLING_TITLE"
+       !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_ABORT_TITLE"
     !endif
     
     !ifdef MUI_UNTEXT_ABORT_SUBTITLE
-      !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_ABORT_SUBTITLE"
-    !else
-      ;1.63 compatibility
-      !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_CUSTOMDEFINE_NOUNDEF "MUI_UNTEXT_ABORT_SUBTITLE" "MUI_UNTEXT_UNINSTALLING_SUBTITLE"
+      !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_ABORT_SUBTITLE"
     !endif
     
-    !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_UNINSTALLING_TITLE"
-    !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_UNINSTALLING_SUBTITLE"
+    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_UNINSTALLING_TITLE"
+    !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_UNTEXT_UNINSTALLING_SUBTITLE"
   
   !endif
-  
-  !undef MUI_TEXT_CONTINUE_NEXT
-  !undef MUI_TEXT_CONTINUE_INSTALL
-  
-  !ifdef MUI_UNTEXT_CONTINUE_UNINSTALL
-    !undef MUI_UNTEXT_CONTINUE_UNINSTALL
-  !endif
     
 !macroend
 
diff --git a/Contrib/UIs/modern.exe b/Contrib/UIs/modern.exe
index 9296c8e5..27260aac 100644
Binary files a/Contrib/UIs/modern.exe and b/Contrib/UIs/modern.exe differ
diff --git a/Examples/Modern UI/Basic.nsi b/Examples/Modern UI/Basic.nsi
index 2063735d..e412f586 100644
--- a/Examples/Modern UI/Basic.nsi	
+++ b/Examples/Modern UI/Basic.nsi	
@@ -25,10 +25,15 @@
   ;Get install folder from registry if available
   InstallDirRegKey HKCU "Software\${MUI_PRODUCT}" ""
 
+;--------------------------------
+;Modern UI Configuration
+
+  !define MUI_ABORTWARNING
+
 ;--------------------------------
 ;Pages
 
-  !insertmacro MUI_PAGE_LICENSE
+  !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Contrib\Modern UI\License.txt"
   !insertmacro MUI_PAGE_COMPONENTS
   !insertmacro MUI_PAGE_DIRECTORY
   !insertmacro MUI_PAGE_INSTFILES
@@ -36,21 +41,11 @@
   !insertmacro MUI_UNPAGE_CONFIRM
   !insertmacro MUI_UNPAGE_INSTFILES
   
-;--------------------------------
-;Modern UI Configuration
-
-  !define MUI_ABORTWARNING
-  
 ;--------------------------------
 ;Languages
  
   !insertmacro MUI_LANGUAGE "English"
 
-;--------------------------------
-;Data
-  
-  LicenseData "${NSISDIR}\Contrib\Modern UI\License.txt"
-
 ;--------------------------------
 ;Installer Sections
 
@@ -73,9 +68,9 @@ SectionEnd
 
   LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."
 
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
+  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
     !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
+  !insertmacro MUI_FUNCTION_DESCRIPTION_END
  
 ;--------------------------------
 ;Uninstaller Section
diff --git a/Examples/Modern UI/HeaderBitmap.nsi b/Examples/Modern UI/HeaderBitmap.nsi
index 1729f82d..6ff836e5 100644
--- a/Examples/Modern UI/HeaderBitmap.nsi	
+++ b/Examples/Modern UI/HeaderBitmap.nsi	
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.65
+;NSIS Modern User Interface version 1.66
 ;Header Bitmap Example Script
 ;Written by Joost Verburg
 
@@ -25,10 +25,16 @@
   ;Get install folder from registry if available
   InstallDirRegKey HKCU "Software\${MUI_PRODUCT}" ""
 
+;--------------------------------
+;Modern UI Configuration
+
+  !define MUI_HEADERBITMAP "${NSISDIR}\Contrib\Icons\modern-header.bmp"
+  !define MUI_ABORTWARNING
+
 ;--------------------------------
 ;Pages
 
-  !insertmacro MUI_PAGE_LICENSE
+  !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Contrib\Modern UI\License.txt"
   !insertmacro MUI_PAGE_COMPONENTS
   !insertmacro MUI_PAGE_DIRECTORY
   !insertmacro MUI_PAGE_INSTFILES
@@ -36,22 +42,11 @@
   !insertmacro MUI_UNPAGE_CONFIRM
   !insertmacro MUI_UNPAGE_INSTFILES
   
-;--------------------------------
-;Modern UI Configuration
-
-  !define MUI_HEADERBITMAP "${NSISDIR}\Contrib\Icons\modern-header.bmp"
-  !define MUI_ABORTWARNING
-
 ;--------------------------------
 ;Languages
  
   !insertmacro MUI_LANGUAGE "English"
 
-;--------------------------------
-;Data
-  
-  LicenseData "${NSISDIR}\Contrib\Modern UI\License.txt"
-
 ;--------------------------------
 ;Reserve Files
   
@@ -82,9 +77,9 @@ SectionEnd
 
   LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."
 
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
+  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
     !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
+  !insertmacro MUI_FUNCTION_DESCRIPTION_END
  
 ;--------------------------------
 ;Uninstaller Section
diff --git a/Examples/Modern UI/InstallOptions.nsi b/Examples/Modern UI/InstallOptions.nsi
index 5e67bf92..80b80dfe 100644
--- a/Examples/Modern UI/InstallOptions.nsi	
+++ b/Examples/Modern UI/InstallOptions.nsi	
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.65
+;NSIS Modern User Interface version 1.66
 ;InstallOptions Example Script
 ;Written by Joost Verburg
 
@@ -33,7 +33,7 @@
 ;--------------------------------
 ;Pages
 
-  !insertmacro MUI_PAGE_LICENSE
+  !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Contrib\Modern UI\License.txt"
   Page custom CustomPageA
   !insertmacro MUI_PAGE_COMPONENTS
   Page custom CustomPageB
@@ -54,11 +54,6 @@
  
   !insertmacro MUI_LANGUAGE "English"
 
-;--------------------------------
-;Data
-  
-  LicenseData "${NSISDIR}\Contrib\Modern UI\License.txt"
-
 ;--------------------------------
 ;Reserve Files
   
@@ -135,9 +130,9 @@ FunctionEnd
 
   LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."
 
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
+  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
     !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
+  !insertmacro MUI_FUNCTION_DESCRIPTION_END
 
 ;--------------------------------
 ;Uninstaller Section
diff --git a/Examples/Modern UI/MultiLanguage.nsi b/Examples/Modern UI/MultiLanguage.nsi
index d441ee6d..a232e910 100644
--- a/Examples/Modern UI/MultiLanguage.nsi	
+++ b/Examples/Modern UI/MultiLanguage.nsi	
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.65
+;NSIS Modern User Interface version 1.66
 ;Multilingual Example Script
 ;Written by Joost Verburg
 
@@ -24,17 +24,7 @@
   
   ;Get install folder from registry if available
   InstallDirRegKey HKCU "Software\${MUI_PRODUCT}" ""
-  
-;--------------------------------
-;Pages
 
-  !insertmacro MUI_PAGE_COMPONENTS
-  !insertmacro MUI_PAGE_DIRECTORY
-  !insertmacro MUI_PAGE_INSTFILES
-  
-  !insertmacro MUI_UNPAGE_CONFIRM
-  !insertmacro MUI_UNPAGE_INSTFILES
-  
 ;--------------------------------
 ;Modern UI Configuration
 
@@ -45,6 +35,16 @@
 
   !define MUI_ABORTWARNING
 
+;--------------------------------
+;Pages
+
+  !insertmacro MUI_PAGE_COMPONENTS
+  !insertmacro MUI_PAGE_DIRECTORY
+  !insertmacro MUI_PAGE_INSTFILES
+  
+  !insertmacro MUI_UNPAGE_CONFIRM
+  !insertmacro MUI_UNPAGE_INSTFILES
+
 ;--------------------------------
 ;Languages
 
@@ -148,9 +148,9 @@ FunctionEnd
   LangString DESC_SecDummy ${LANG_CATALAN} "Test section: Catalan description"
   LangString DESC_SecDummy ${LANG_SERBIAN} "Test section: Serbian description"
 
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
+  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
     !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
+  !insertmacro MUI_FUNCTION_DESCRIPTION_END
  
 ;--------------------------------
 ;Uninstaller Section
diff --git a/Examples/Modern UI/StartMenu.nsi b/Examples/Modern UI/StartMenu.nsi
index a4e4c4db..cd7981c2 100644
--- a/Examples/Modern UI/StartMenu.nsi	
+++ b/Examples/Modern UI/StartMenu.nsi	
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.65
+;NSIS Modern User Interface version 1.66
 ;Start Menu Folder Selection Example Script
 ;Written by Joost Verburg
 
@@ -30,38 +30,35 @@
 
   Var MUI_TEMP
 
+;--------------------------------
+;Modern UI Configuration
+
+  !define MUI_ABORTWARNING
+
 ;--------------------------------
 ;Pages
 
-  !insertmacro MUI_PAGE_LICENSE
+  !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Contrib\Modern UI\License.txt"
   !insertmacro MUI_PAGE_COMPONENTS
   !insertmacro MUI_PAGE_DIRECTORY
+  
+  ;Start Menu Folder Page Configuration
+  !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" 
+  !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${MUI_PRODUCT}" 
+  !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
+  
   !insertmacro MUI_PAGE_STARTMENU
+  
   !insertmacro MUI_PAGE_INSTFILES
   
   !insertmacro MUI_UNPAGE_CONFIRM
   !insertmacro MUI_UNPAGE_INSTFILES
-  
-;--------------------------------
-;Modern UI Configuration
-
-  !define MUI_ABORTWARNING
-  
-  ;Remember the Start Menu Folder
-  !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" 
-  !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${MUI_PRODUCT}" 
-  !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
 
 ;--------------------------------
 ;Languages
  
   !insertmacro MUI_LANGUAGE "English"
 
-;--------------------------------
-;Data
-  
-  LicenseData "${NSISDIR}\Contrib\Modern UI\License.txt"
-
 ;--------------------------------
 ;Reserve Files
   
@@ -99,9 +96,9 @@ SectionEnd
 
   LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."
 
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
+  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
     !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
+  !insertmacro MUI_FUNCTION_DESCRIPTION_END
  
 ;--------------------------------
 ;Uninstaller Section
diff --git a/Examples/Modern UI/WelcomeFinish.nsi b/Examples/Modern UI/WelcomeFinish.nsi
index aafe8f2c..34888a47 100644
--- a/Examples/Modern UI/WelcomeFinish.nsi	
+++ b/Examples/Modern UI/WelcomeFinish.nsi	
@@ -1,4 +1,4 @@
-;NSIS Modern User Interface version 1.65
+;NSIS Modern User Interface version 1.66
 ;Welcome/Finish Page Example Script
 ;Written by Joost Verburg
 
@@ -25,11 +25,16 @@
   ;Get install folder from registry if available
   InstallDirRegKey HKCU "Software\${MUI_PRODUCT}" ""
 
+;--------------------------------
+;Modern UI Configuration
+
+  !define MUI_ABORTWARNING
+
 ;--------------------------------
 ;Pages
 
   !insertmacro MUI_PAGE_WELCOME
-  !insertmacro MUI_PAGE_LICENSE
+  !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Contrib\Modern UI\License.txt"
   !insertmacro MUI_PAGE_COMPONENTS
   !insertmacro MUI_PAGE_DIRECTORY
   !insertmacro MUI_PAGE_INSTFILES
@@ -38,21 +43,11 @@
   !insertmacro MUI_UNPAGE_CONFIRM
   !insertmacro MUI_UNPAGE_INSTFILES
   
-;--------------------------------
-;Modern UI Configuration
-
-  !define MUI_ABORTWARNING
-
 ;--------------------------------
 ;Languages
  
   !insertmacro MUI_LANGUAGE "English"
 
-;--------------------------------
-;Data
-  
-  LicenseData "${NSISDIR}\Contrib\Modern UI\License.txt"
-
 ;--------------------------------
 ;Reserve Files
   
@@ -83,9 +78,9 @@ SectionEnd
 
   LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."
 
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
+  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
     !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
-  !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
+  !insertmacro MUI_FUNCTION_DESCRIPTION_END
  
 ;--------------------------------
 ;Uninstaller Section