diff --git a/Contrib/UltraModernUI/UMUI.nsh b/Contrib/UltraModernUI/UMUI.nsh index b78a56f..99dfc77 100644 --- a/Contrib/UltraModernUI/UMUI.nsh +++ b/Contrib/UltraModernUI/UMUI.nsh @@ -1,10364 +1,10364 @@ -/* - -NSIS Ultra-Modern User Interface version 2.0 beta 5 -Copyright 2005-2019 SuperPat - -Based on: - NSIS Modern User Interface version 1.81 (Git version: 6b4148e215433dddd1a954291364ef52e44d12e5) - Copyright 2002-2019 Joost Verburg - -*/ - -!ifndef MUI_INCLUDED -!verbose push 3 -!define MUI_INCLUDED -!define UMUI_SYSVERSION "2.0 beta 5" -!define MUI_SYSVERSION "1.81" -!verbose pop -!echo "NSIS Ultra-Modern User Interface version 2.0 beta 5 - Copyright 2005-2019 SuperPat" -!echo " (Bugfixes and some additions: 2015-2016 - Bodenseematze)" -!echo "Based on: NSIS Modern User Interface version 1.81 - Copyright 2002-2019 Joost Verburg" - -;-------------------------------- -!verbose push 3 -!define /IfNDef MUI_VERBOSE 3 -!verbose ${MUI_VERBOSE} - -;-------------------------------- -;HEADER FILES, DECLARATIONS - -!include WinMessages.nsh -!include LogicLib.nsh - -!define UMUI_HIDEFIRSTBACKBUTTON ;don't show the "Back" button on the first shown page, - ;even if it is not the first page defined -Var MUI_TEMP1 -Var MUI_TEMP2 - -Var UMUI_INSTALLFLAG ; Contains a OR of all the flags define here: - -;-------------------------------- -;INSTALL FLAGS - -;definition of all the install status -!define UMUI_DEFAULT_STATE 0 ; Default state: Any flag set -!define UMUI_CANCELLED 1 ; set by (un).onUserAbort function -!define UMUI_MINIMAL 2 ; set by INSTALLTYPE page -!define UMUI_STANDARD 4 ; set by INSTALLTYPE page -!define UMUI_COMPLETE 8 ; set by INSTALLTYPE page -!define UMUI_CUSTOM 16 ; set by INSTALLTYPE page -!define UMUI_MODIFY 32 ; set by MAINTENANCE page -!define UMUI_REPAIR 64 ; set by MAINTENANCE page -!define UMUI_UPDATE 128 ; set by UPDATE page -!define UMUI_REMOVE 256 ; set by MAINTENANCE and UPDATE pages -!define UMUI_CONTINUE_SETUP 512 ; set by MAINTENANCE and UPDATE pages -!define UMUI_LANGISSET 1024 ; set by UMUI_MULTILANG_GET macro and used by MULTILANGUAGE page -!define UMUI_SAMEVERSION 2048 ; set by (un).onGuiInit function and used by MANTENANCE and UPDATE pages -!define UMUI_DIFFVERSION 4096 ; set by (un).onGuiInit function and used by MANTENANCE and UPDATE pages -!define UMUI_HIDEBACKBUTTON 8192 ; set by (un).onGuiInit function -!define UMUI_ABORTFIRSTTIME 16384 ; set by (un).onGuiInit function and used by MANTENANCE page -!define UMUI_COMPONENTSSET 32768 ; set by COMPONENTS page - -;-------------------------------- -;INSERT CODE - -!macro MUI_INSERT - - !ifndef MUI_INSERT - !define MUI_INSERT - - !ifdef MUI_PRODUCT | MUI_VERSION - !warning "The MUI_PRODUCT and MUI_VERSION defines have been removed. Use a normal Name command now." - !endif - - !insertmacro MUI_INTERFACE - - !insertmacro MUI_FUNCTION_GUIINIT - !insertmacro MUI_FUNCTION_ABORTWARNING - - !ifdef MUI_IOCONVERT_USED - !insertmacro INSTALLOPTIONS_FUNCTION_WRITE_CONVERT - !endif - - !ifdef MUI_UNINSTALLER - !insertmacro MUI_UNFUNCTION_GUIINIT - !insertmacro MUI_FUNCTION_UNABORTWARNING - - !ifdef MUI_UNIOCONVERT_USED - !insertmacro INSTALLOPTIONS_UNFUNCTION_WRITE_CONVERT - !endif - !endif - - !endif - -!macroend - -;-------------------------------- -;GENERAL - -!macro MUI_DEFAULT SYMBOL CONTENT - - !define /IfNDef "${SYMBOL}" "${CONTENT}" - -!macroend - -!macro MUI_DEFAULT_IOCONVERT SYMBOL CONTENT - - !ifndef "${SYMBOL}" - !define "${SYMBOL}" "${CONTENT}" - !define /IfNDef "${SYMBOL}_DEFAULTSET" - !define /IfNDef "MUI_${MUI_PAGE_UNINSTALLER_PREFIX}IOCONVERT_USED" - !else - !insertmacro MUI_UNSET "${SYMBOL}_DEFAULTSET" - !endif - -!macroend - -!macro MUI_SET SYMBOL - - !define /IfNDef "${SYMBOL}" - -!macroend - -!macro MUI_UNSET SYMBOL - - !ifdef "${SYMBOL}" - !undef "${SYMBOL}" - !endif - -!macroend - -;-------------------------------- -;INTERFACE - COMPILE TIME SETTINGS - -!macro MUI_INTERFACE - - !ifndef MUI_INTERFACE - !define MUI_INTERFACE - - !ifdef MUI_INSERT_NSISCONF - !insertmacro MUI_NSISCONF - !endif - - !ifdef UMUI_USE_BG - !define /IfNDef UMUI_BGSKIN ${UMUI_USE_BG} - !warning "Deprecated: The UMUI_USE_BG define was replaced by UMUI_BGSKIN." - !endif - - !ifdef MUI_LANGDLL_REGISTRY_ROOT | MUI_LANGDLL_REGISTRY_KEY | MUI_LANGDLL_REGISTRY_VALUENAME - !warning "Deprecated: The MUI_LANGDLL_REGISTRY_ROOT, MUI_LANGDLL_REGISTRY_KEY and MUI_LANGDLL_REGISTRY_VALUENAME defines were replaced by UMUI_LANGUAGE_REGISTRY_VALUENAME, UMUI_LANGUAGE_REGISTRY_ROOT, UMUI_LANGUAGE_REGISTRY_KEY or you can use also the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY globals parameters." - !endif - - !ifdef MUI_LANGDLL_ALWAYSSHOW - !warning "Deprecated: The MUI_LANGDLL_ALWAYSSHOW define was replaced by UMUI_LANGUAGE_ALWAYSSHOW." - !define /IfNDef UMUI_LANGUAGE_ALWAYSSHOW "${MUI_LANGDLL_ALWAYSSHOW}" - !endif - - !ifdef UMUI_BGSKIN - !include "${NSISDIR}\Contrib\UltraModernUI\BGSkins\${UMUI_BGSKIN}.nsh" - !endif - - !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME - !ifndef UMUI_LANGUAGE_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_LANGUAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else ifdef MUI_LANGDLL_REGISTRY_ROOT - !define UMUI_LANGUAGE_REGISTRY_ROOT "${MUI_LANGDLL_REGISTRY_ROOT}" - !else - !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_LANGUAGE_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_LANGUAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else ifdef MUI_LANGDLL_REGISTRY_KEY - !define UMUI_LANGUAGE_REGISTRY_KEY "${MUI_LANGDLL_REGISTRY_KEY}" - !else - !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !else ifdef MUI_LANGDLL_REGISTRY_VALUENAME - !define UMUI_LANGUAGE_REGISTRY_VALUENAME "${MUI_LANGDLL_REGISTRY_VALUENAME}" - !endif - - !ifndef MUI_TEXTCOLOR - !ifdef UMUI_TEXT_COLOR - !warning "Deprecated: The UMUI_TEXT_COLOR define was renamed in MUI_TEXTCOLOR since Ultra-Modern UI 2.0 beta 5" - !define MUI_TEXTCOLOR "${UMUI_TEXT_COLOR}" - !else ifdef MUI_TEXT_COLOR - !warning "Deprecated: The MUI_TEXT_COLOR define was renamed in MUI_TEXTCOLOR since Ultra-Modern UI 1.00 beta 2" - !define MUI_TEXTCOLOR "${MUI_TEXT_COLOR}" - !endif - !endif - - !ifdef UMUI_UI_COMPONENTSPAGE_SMALLDESC | UMUI_UI_COMPONENTSPAGE_NODESC - !warning "Deprecated: The UMUI_UI_COMPONENTSPAGE_SMALLDESC and UMUI_UI_COMPONENTSPAGE_NODESC define were renamed in MUI_UI_COMPONENTSPAGE_SMALLDESC and MUI_UI_COMPONENTSPAGE_NODESC since Ultra-Modern UI 1.00 beta 2" - !ifdef UMUI_UI_COMPONENTSPAGE_SMALLDESC - !define /IfNDef MUI_UI_COMPONENTSPAGE_SMALLDESC "${UMUI_UI_COMPONENTSPAGE_SMALLDESC}" - !endif - !ifdef UMUI_UI_COMPONENTSPAGE_NODESC - !define /IfNDef MUI_UI_COMPONENTSPAGE_NODESC "${UMUI_UI_COMPONENTSPAGE_NODESC}" - !endif - !endif - - -!ifndef USE_MUIEx -;----------------- - - !ifdef UMUI_CUSTOM_SKIN - !define /IfNDef UMUI_SKIN "${UMUI_CUSTOM_SKIN}" - !warning "Deprecated: The UMUI_CUSTOM_SKIN define is no more necessary and you can simply use the UMUI_SKIN define with your custom skin." - !endif - - !addincludedir "${NSISDIR}\Contrib\UltraModernUI\Skins\" - - !ifdef UMUI_SKIN - !include "${UMUI_SKIN}.nsh" - !endif - - !ifdef MUI_UI - !warning "The MUI_UI define have been renamed by UMUI_UI in the UMUI mode in order to assure the compatibility with the former Modern UI scripts. Define Ignored" - !endif - - !ifdef UMUI_HEADERIMAGE_BMP | UMUI_UNHEADERIMAGE_BMP - !warning "Deprecated: The UMUI_HEADERIMAGE_BMP and UMUI_UNHEADERIMAGE_BMP defines were renamed by UMUI_HEADERBGIMAGE_BMP and UMUI_UNHEADERBGIMAGE_BMP since Ultra-Modern UI 1.00 beta 2." - !ifdef UMUI_HEADERIMAGE_BMP - !define /IfNDef UMUI_HEADERBGIMAGE_BMP "${UMUI_HEADERIMAGE_BMP}" - !endif - !ifdef UMUI_UNHEADERIMAGE_BMP - !define /IfNDef UMUI_UNHEADERBGIMAGE_BMP "${UMUI_UNHEADERIMAGE_BMP}" - !endif - !endif - - !ifdef MUI_UI_HEADERIMAGE | MUI_UI_HEADERIMAGE_RIGHT | MUI_HEADERIMAGE | MUI_HEADERIMAGE_RIGHT - !warning "The MUI_UI_HEADERIMAGE, MUI_UI_HEADERIMAGE_RIGHT, MUI_HEADERIMAGE and MUI_HEADERIMAGE_RIGHT defines are not currently supported in the UMUI mode." - !endif - - !ifdef UMUI_UNIQUEBGIMAGE - !define /IfNDef UMUI_PAGEBGIMAGE - !endif - !ifdef UMUI_UNUNIQUEBGIMAGE - !define /IfNDef UMUI_UNPAGEBGIMAGE - !endif - - !ifndef UMUI_ULTRAMODERN_SMALL - !define /IfNDef UMUI_UI "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern.exe" - !define /IfNDef UMUI_UI_SB "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_sb.exe" - !define /IfNDef UMUI_UI_NOLEFTIMAGE "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_noleftimage.exe" - !else - !define /IfNDef UMUI_UI_SMALL "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_small.exe" - !define /IfNDef UMUI_UI_SB "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_small_sb.exe" - !define /IfNDef UMUI_USE_SMALLPAGE - !ifndef UMUI_UNIQUEBGIMAGE - !define /IfNDef UMUI_NO_WFA_BGTRANSPARENT - !endif - !endif - - !ifndef UMUI_USE_SMALLPAGE - !define /IfNDef MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_smalldesc.exe" - !define /IfNDef MUI_UI_COMPONENTSPAGE_NODESC "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_nodesc.exe" - !define /IfNDef UMUI_UI_COMPONENTSPAGE_BIGDESC "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_bigdesc.exe" - !else - !define /IfNDef MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISDIR}\Contrib\UIs\modern_smalldesc.exe" - !define /IfNDef MUI_UI_COMPONENTSPAGE_NODESC "${NSISDIR}\Contrib\UIs\modern_nodesc.exe" - !define /IfNDef UMUI_UI_COMPONENTSPAGE_BIGDESC "${NSISDIR}\Contrib\UIs\UltraModernUI\modern_bigdesc.exe" - !endif - - !define /IfNDef MUI_ICON "${NSISDIR}\Contrib\Graphics\UltraModernUI\Icon.ico" - !define /IfNDef MUI_UNICON "${NSISDIR}\Contrib\Graphics\UltraModernUI\UnIcon.ico" - - !define /IfNDef MUI_BGCOLOR 4C72B2 - !define /IfNDef MUI_TEXTCOLOR FFFFFF - !define /IfNDef UMUI_TEXT_LIGHTCOLOR FFFF00 - !define /IfNDef UMUI_HEADERTEXT_COLOR "${MUI_TEXTCOLOR}" - - !define /IfNDef MUI_LICENSEPAGE_BGCOLOR "/windows" - !define /IfNDef MUI_INSTFILESPAGE_COLORS "${MUI_TEXTCOLOR} ${MUI_BGCOLOR}" - !define /IfNDef MUI_INSTFILESPAGE_PROGRESSBAR "smooth" - - !define /IfNDef UMUI_LEFTIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Left.bmp" - !define /IfNDef UMUI_HEADERBGIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Header.bmp" - !define /IfNDef UMUI_BOTTOMIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Bottom.bmp" - !define /IfNDef UMUI_BUTTONIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp" - !define /IfNDef UMUI_SCROLLBARIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\ScrollBar.bmp" - !define /IfNDef UMUI_PAGEBGIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\PageBG.bmp" - - !define /IfNDef UMUI_UNLEFTIMAGE_BMP "${UMUI_LEFTIMAGE_BMP}" - !define /IfNDef UMUI_UNHEADERBGIMAGE_BMP "${UMUI_HEADERBGIMAGE_BMP}" - !define /IfNDef UMUI_UNBOTTOMIMAGE_BMP "${UMUI_BOTTOMIMAGE_BMP}" - !define /IfNDef UMUI_UNBUTTONIMAGE_BMP "${UMUI_BUTTONIMAGE_BMP}" - !define /IfNDef UMUI_UNSCROLLBARIMAGE_BMP "${UMUI_SCROLLBARIMAGE_BMP}" - !define /IfNDef UMUI_UNPAGEBGIMAGE_BMP "${UMUI_PAGEBGIMAGE_BMP}" - - !define /IfNDef UMUI_BRANDINGTEXTFRONTCOLOR 8b8ca4 - !define /IfNDef UMUI_BRANDINGTEXTBACKCOLOR eeeef3 - - !define /IfNDef MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Wizard.bmp" - !define /IfNDef MUI_UNWELCOMEFINISHPAGE_BITMAP "${MUI_WELCOMEFINISHPAGE_BITMAP}" - - !define /IfNDef UMUI_XPSTYLE Off - - !ifndef UMUI_ULTRAMODERN_SMALL - - ChangeUI all "${UMUI_UI}" - - !ifdef UMUI_NOLEFTIMAGE - !insertmacro MUI_UNSET UMUI_LEFTIMAGE_BMP - !insertmacro MUI_UNSET UMUI_UNLEFTIMAGE_BMP - ChangeUI IDD_INST "${UMUI_UI_NOLEFTIMAGE}" - !endif - - !else - - !define /IfNDef UMUI_USE_SMALL_PAGES - ChangeUI all "${UMUI_UI_SMALL}" - - !endif - - !ifdef UMUI_NOHEADERBGIMAGE - !insertmacro MUI_UNSET UMUI_HEADERBGIMAGE - !else - !define /IfNDef UMUI_HEADERBGIMAGE - !endif - - !ifdef UMUI_HEADERBGIMAGE - !define /IfNDef MUI_HEADER_TRANSPARENT_TEXT - !endif - - !ifdef UMUI_NOBOTTOMIMAGE - !insertmacro MUI_UNSET UMUI_BOTTOMIMAGE_BMP - !insertmacro MUI_UNSET UMUI_UNBOTTOMIMAGE_BMP - !endif - - !ifdef UMUI_NO_BUTTONIMAGE - !insertmacro MUI_UNSET UMUI_BUTTONIMAGE_BMP - !insertmacro MUI_UNSET UMUI_UNBUTTONIMAGE_BMP - !endif - - !ifdef UMUI_NO_SCROLLBARIMAGE - !insertmacro MUI_UNSET UMUI_SCROLLBARIMAGE_BMP - !insertmacro MUI_UNSET UMUI_UNSCROLLBARIMAGE_BMP - !endif - -!else -;------- - - !ifdef UMUI_SKIN - !warning "The UMUI_SKIN define is not used in Modern UIEx. Define ignored." - !undef UMUI_SKIN - !endif - !insertmacro MUI_UNSET UMUI_PAGEBGIMAGE - !insertmacro MUI_UNSET UMUI_UNPAGEBGIMAGE - !insertmacro MUI_UNSET UMUI_UNIQUEBGIMAGE - !insertmacro MUI_UNSET UMUI_UNUNIQUEBGIMAGE - - ; by default, UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE is set - !ifndef UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE - !define /IfNDef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE - !else - !insertmacro MUI_UNSET UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE - !endif - - !define /IfNDef MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe" - !define /IfNDef UMUI_UI_SB "${NSISDIR}\Contrib\UIs\UltraModernUI\modern_sb.exe" - !define /IfNDef MUI_UI_HEADERIMAGE "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe" - !define /IfNDef MUI_UI_HEADERIMAGE_RIGHT "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe" - !define /IfNDef UMUI_UI_HEADERBGIMAGE "${NSISDIR}\Contrib\UIs\UltraModernUI\modern_headerbgimage.exe" - !define /IfNDef MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISDIR}\Contrib\UIs\modern_smalldesc.exe" - !define /IfNDef MUI_UI_COMPONENTSPAGE_NODESC "${NSISDIR}\Contrib\UIs\modern_nodesc.exe" - !define /IfNDef UMUI_UI_COMPONENTSPAGE_BIGDESC "${NSISDIR}\Contrib\UIs\UltraModernUI\modern_bigdesc.exe" - - !define /IfNDef MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" - !define /IfNDef MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" - - !define /IfNDef MUI_LICENSEPAGE_BGCOLOR "/windows" - !define /IfNDef MUI_INSTFILESPAGE_COLORS "/windows" - !define /IfNDef MUI_INSTFILESPAGE_PROGRESSBAR "smooth" - - !define /IfNDef MUI_BGCOLOR "FFFFFF" - !define /IfNDef MUI_TEXTCOLOR "000000" - !define /IfNDef UMUI_TEXT_LIGHTCOLOR "000000" - !define /IfNDef UMUI_HEADERTEXT_COLOR "${MUI_TEXTCOLOR}" - - !define /IfNDef UMUI_HEADERBGIMAGE_BMP "${NSISDIR}\Contrib\Graphics\UltraModernUI\HeaderBG.bmp" - !define /IfNDef UMUI_UNHEADERBGIMAGE_BMP "${UMUI_HEADERBGIMAGE_BMP}" - !ifdef UMUI_BUTTONIMAGE_BMP - !define /IfNDef UMUI_UNBUTTONIMAGE_BMP "${UMUI_BUTTONIMAGE_BMP}" - !endif - !ifdef UMUI_SCROLLBARIMAGE_BMP - !define /IfNDef UMUI_UNSCROLLBARIMAGE_BMP "${UMUI_SCROLLBARIMAGE_BMP}" - !endif - - !define /IfNDef MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" - !define /IfNDef MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" - - !ifdef UMUI_BUTTONIMAGE_BMP | UMUI_UNBUTTONIMAGE_BMP - !define /IfNDef UMUI_XPSTYLE Off - !else - !define /IfNDef UMUI_XPSTYLE On - !endif - - !if "${MUI_WELCOMEFINISHPAGE_BITMAP}" == "" - !error "Invalid MUI_WELCOMEFINISHPAGE_BITMAP" - !endif - !if "${MUI_UNWELCOMEFINISHPAGE_BITMAP}" == "" - !error "Invalid MUI_UNWELCOMEFINISHPAGE_BITMAP" - !endif - - !define /IfNDef UMUI_USE_SMALL_PAGES - - !ifdef UMUI_HEADERBGIMAGE - - !define /IfNDef MUI_HEADER_TRANSPARENT_TEXT - !insertmacro MUI_UNSET MUI_HEADERIMAGE - !insertmacro MUI_UNSET MUI_HEADERIMAGE_RIGHT - - !else ifdef MUI_HEADERIMAGE - - !define /IfNDef MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" - - !ifndef MUI_HEADERIMAGE_UNBITMAP - !define MUI_HEADERIMAGE_UNBITMAP "${MUI_HEADERIMAGE_BITMAP}" - !ifdef MUI_HEADERIMAGE_BITMAP_NOSTRETCH - !define /IfNDef MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH - !endif - !endif - - !if "${MUI_HEADERIMAGE_BITMAP}" == "" - !error "Invalid MUI_HEADERIMAGE_BITMAP" - !endif - !if "${MUI_HEADERIMAGE_UNBITMAP}" == "" - !error "Invalid MUI_HEADERIMAGE_UNBITMAP" - !endif - - !ifdef MUI_HEADERIMAGE_BITMAP_RTL - !ifndef MUI_HEADERIMAGE_UNBITMAP_RTL - !define MUI_HEADERIMAGE_UNBITMAP_RTL "${MUI_HEADERIMAGE_BITMAP_RTL}" - !ifdef MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH - !define /IfNDef MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH - !endif - !endif - !endif - - !if "${MUI_HEADERIMAGE_BITMAP_RTL}" == "" - !error "Invalid MUI_HEADERIMAGE_BITMAP_RTL" - !endif - !if "${MUI_HEADERIMAGE_UNBITMAP_RTL}" == "" - !error "Invalid MUI_HEADERIMAGE_UNBITMAP_RTL" - !endif - !endif - - ChangeUI all "${MUI_UI}" - - !ifdef UMUI_HEADERBGIMAGE - ChangeUI IDD_INST "${UMUI_UI_HEADERBGIMAGE}" - !else ifdef MUI_HEADERIMAGE - !ifndef MUI_HEADERIMAGE_RIGHT - ChangeUI IDD_INST "${MUI_UI_HEADERIMAGE}" - !else - ChangeUI IDD_INST "${MUI_UI_HEADERIMAGE_RIGHT}" - !endif - !endif - -!endif -;------- - - !ifdef MUI_COMPONENTSPAGE_SMALLDESC - ChangeUI IDD_SELCOM "${MUI_UI_COMPONENTSPAGE_SMALLDESC}" - !else ifdef MUI_COMPONENTSPAGE_NODESC - ChangeUI IDD_SELCOM "${MUI_UI_COMPONENTSPAGE_NODESC}" - !else ifdef UMUI_COMPONENTSPAGE_BIGDESC - ChangeUI IDD_SELCOM "${UMUI_UI_COMPONENTSPAGE_BIGDESC}" - !endif - - ; Workaround for unstyled detail button - !ifdef UMUI_BUTTONIMAGE_BMP | UMUI_UNBUTTONIMAGE_BMP - !if ! "${UMUI_XPSTYLE}" == "On" - ChangeUI IDD_INSTFILES "${UMUI_UI_SB}" - !endif - !endif - - !ifdef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE - !define /IfNDef UMUI_WELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini" - !define /IfNDef UMUI_UNWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini" - !define /IfNDef UMUI_ALTERNATEWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini" - !define /IfNDef UMUI_UNALTERNATEWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini" - !else - !define /IfNDef UMUI_WELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini" - !define /IfNDef UMUI_UNWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini" - !define /IfNDef UMUI_ALTERNATEWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini" - !define /IfNDef UMUI_UNALTERNATEWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini" - !endif - !define /IfNDef UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\MaintenanceUpdateSetupType.ini" - !define /IfNDef UMUI_CONFIRMPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\Confirm.ini" - !define /IfNDef UMUI_INFORMATIONPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\Information.ini" - !define /IfNDef UMUI_ADDITIONALTASKSPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AdditionalTasks.ini" - !define /IfNDef UMUI_SERIALNUMBERPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\SerialNumber.ini" - !define /IfNDef UMUI_ALTERNATIVESTARTMENUPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AlternativeStartMenu.ini" - - !define /IfNDef MUI_COMPONENTSPAGE_CHECKBITMAP "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp" - - !define /IfNDef UMUI_TEXT_INPUTCOLOR 000000 - !define /IfNDef UMUI_BGINPUTCOLOR FFFFFF - - !define /IfNDef UMUI_DISABLED_BUTTON_TEXT_COLOR 808080 - !define /IfNDef UMUI_SELECTED_BUTTON_TEXT_COLOR 000080 - !define /IfNDef UMUI_BUTTON_TEXT_COLOR 000000 - - !define /IfNDef UMUI_UNDISABLED_BUTTON_TEXT_COLOR "${UMUI_DISABLED_BUTTON_TEXT_COLOR}" - !define /IfNDef UMUI_UNSELECTED_BUTTON_TEXT_COLOR "${UMUI_SELECTED_BUTTON_TEXT_COLOR}" - !define /IfNDef UMUI_UNBUTTON_TEXT_COLOR "${UMUI_BUTTON_TEXT_COLOR}" - - XPStyle ${UMUI_XPSTYLE} - - !ifdef UMUI_USE_ALTERNATE_PAGE | UMUI_USE_UNALTERNATE_PAGE - !define /IfNDef UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE 8 - !else - !define /IfNDef UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE 12 - !endif - - Icon "${MUI_ICON}" - UninstallIcon "${MUI_UNICON}" - - CheckBitmap "${MUI_COMPONENTSPAGE_CHECKBITMAP}" - LicenseBkColor "${MUI_LICENSEPAGE_BGCOLOR}" - InstallColors ${MUI_INSTFILESPAGE_COLORS} - InstProgressFlags ${MUI_INSTFILESPAGE_PROGRESSBAR} - - SubCaption 4 " " - UninstallSubCaption 2 " " - - !ifdef UMUI_INSTALLDIR_REGISTRY_VALUENAME - !ifndef UMUI_INSTALLDIR_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_INSTALLDIR_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_INSTALLDIR_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_INSTALLDIR_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - InstallDirRegKey ${UMUI_INSTALLDIR_REGISTRY_ROOT} "${UMUI_INSTALLDIR_REGISTRY_KEY}" "${UMUI_INSTALLDIR_REGISTRY_VALUENAME}" - !endif - - !define /IfNDef MUI_ABORTWARNING_TEXT "$(MUI_TEXT_ABORTWARNING)" - !define /IfNDef MUI_UNABORTWARNING_TEXT "$(MUI_UNTEXT_ABORTWARNING)" - - !endif - -!macroend - - - -;-------------------------------- -;INTERFACE - RUN-TIME - -; Set the background color of the static Pages -!macro UMUI_PAGEBG_INIT -!ifndef USE_MUIEx -;---------------- - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - SetCtlColors $MUI_TEMP1 "${MUI_BGCOLOR}" "${MUI_BGCOLOR}" -!endif -;----- -!macroend - -; Set transparent the background of the static Pages -!macro UMUI_PAGEBGTRANSPARENT_INIT -!ifndef USE_MUIEx -;---------------- - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - SetCtlColors $MUI_TEMP1 "transparent" "transparent" - !else - SetCtlColors $MUI_TEMP1 "${MUI_BGCOLOR}" "${MUI_BGCOLOR}" - !endif -!endif -;----- -!macroend - -; Set the background color of the control in a static Pages -!macro UMUI_PAGECTL_INIT ID -!ifndef USE_MUIEx -;----------------- - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${ID} - SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" -!endif -;----- -!macroend - -; Set transparent the background of the control in a static Pages -!macro UMUI_PAGECTLTRANSPARENT_INIT ID -!ifndef USE_MUIEx -;----------------- - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${ID} - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "transparent" - !else - SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - !endif -!endif -;----- -!macroend - -; Set the background color and the light text color of the control in a static Pages -!macro UMUI_PAGECTLLIGHT_INIT ID -!ifndef USE_MUIEx -;----------------- - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${ID} - SetCtlColors $MUI_TEMP1 "${UMUI_TEXT_LIGHTCOLOR}" "${MUI_BGCOLOR}" -!endif -;----- -!macroend - -; Set transparent the background and the light text color of the control in a static Pages -!macro UMUI_PAGECTLLIGHTTRANSPARENT_INIT ID -!ifndef USE_MUIEx -;----------------- - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${ID} - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - SetCtlColors $MUI_TEMP1 "${UMUI_TEXT_LIGHTCOLOR}" "transparent" - !else - SetCtlColors $MUI_TEMP1 "${UMUI_TEXT_LIGHTCOLOR}" "${MUI_BGCOLOR}" - !endif -!endif -;----- -!macroend - -; Set the background and text colors of the input control in a static Pages -!macro UMUI_PAGEINPUTCTL_INIT ID - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${ID} - SetCtlColors $MUI_TEMP1 "${UMUI_TEXT_INPUTCOLOR}" "${UMUI_BGINPUTCOLOR}" -!macroend - -; Change the background on the Welcome/Finish/Abort Pages -!macro UMUI_WFAPAGEBGTRANSPARENT_INIT HWND -!ifndef USE_MUIEx -;---------------- - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - !ifndef UMUI_NO_WFA_BGTRANSPARENT - SetCtlColors ${HWND} "" "transparent" - !else - SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - !endif - !else - SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - !endif -!else -;----- - SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" -!endif -;----- -!macroend - -; Change the background of IO Pages -!macro UMUI_IOPAGEBGTRANSPARENT_INIT HWND -!ifndef USE_MUIEx -;---------------- - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - !ifndef UMUI_IONOBGTRANSPARENT - SetCtlColors ${HWND} "" "transparent" - !else - SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - !endif - !else - SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - !endif -!endif -;----- - !insertmacro MUI_UNSET UMUI_IONOBGTRANSPARENT -!macroend - -; Change the background of IO Pages -!macro UMUI_IOPAGEBG_INIT HWND -!ifndef USE_MUIEx -;---------------- - SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" -!endif -;----- -!macroend - -; Change transparent the background of the IO Controls -!macro UMUI_IOPAGECTLTRANSPARENT_INIT HWND -!ifndef USE_MUIEx -;----------------- - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "transparent" - !else - SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - !endif -!else -;----- - SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" -!endif -;----- -!macroend - -; Change the background color of the IO Controls -!macro UMUI_IOPAGECTL_INIT HWND - SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" -!macroend - -; Set the background and text colors of the IO Input Controls -!macro UMUI_IOPAGEINPUTCTL_INIT HWND - SetCtlColors ${HWND} "${UMUI_TEXT_INPUTCOLOR}" "${UMUI_BGINPUTCOLOR}" -!macroend - -; Set the background color and the light text color of the IO Controls -!macro UMUI_IOPAGECTLLIGHT_INIT HWND - SetCtlColors ${HWND} "${UMUI_TEXT_LIGHTCOLOR}" "${MUI_BGCOLOR}" -!macroend - -; Set transparent the background and the light text color of the IO Controls -!macro UMUI_IOPAGECTLLIGHTTRANSPARENT_INIT HWND -!ifndef USE_MUIEx -;----------------- - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - SetCtlColors ${HWND} "${UMUI_TEXT_LIGHTCOLOR}" "transparent" - !else - SetCtlColors ${HWND} "${UMUI_TEXT_LIGHTCOLOR}" "${MUI_BGCOLOR}" - !endif -!else -;----- - SetCtlColors ${HWND} "${UMUI_TEXT_LIGHTCOLOR}" "${MUI_BGCOLOR}" -!endif -;----- -!macroend - -!macro MUI_INNERDIALOG_TEXT CONTROL TEXT - - !verbose push - !verbose ${MUI_VERBOSE} - - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${CONTROL} - SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}" - - !verbose pop - -!macroend - -!macro MUI_HEADER_TEXT_INTERNAL ID TEXT - - GetDlgItem $MUI_TEMP1 $HWNDPARENT "${ID}" - - !ifndef UMUI_HEADERBGIMAGE - !ifdef MUI_HEADER_TRANSPARENT_TEXT - - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - !endif - !endif - - SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}" - - !ifndef UMUI_HEADERBGIMAGE - !ifdef MUI_HEADER_TRANSPARENT_TEXT - - ShowWindow $MUI_TEMP1 ${SW_SHOWNA} - - !endif - !endif - -!macroend - -!macro MUI_HEADER_TEXT TEXT SUBTEXT - - !verbose push - !verbose ${MUI_VERBOSE} - -!ifndef USE_MUIEx -;----------------- - - !ifndef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}UNIQUEBGIMAGE - SetBrandingImage /IMGID=1034 /RESIZETOFIT "$PLUGINSDIR\Header.bmp" - !endif - -!else -;----- - - !ifdef UMUI_HEADERBGIMAGE - SetBrandingImage /IMGID=1034 /RESIZETOFIT "$PLUGINSDIR\Header.bmp" - !endif - - !ifdef MUI_HEADER_TRANSPARENT_TEXT - - LockWindow on - - !endif - -!endif -;----- - - !insertmacro MUI_HEADER_TEXT_INTERNAL 1037 "${TEXT}" - !insertmacro MUI_HEADER_TEXT_INTERNAL 1038 "${SUBTEXT}" - -!ifdef USE_MUIEx -;---------------- - - !ifdef MUI_HEADER_TRANSPARENT_TEXT - - LockWindow off - - !endif - -!endif -;----- - - !verbose pop - -!macroend - -!macro MUI_HEADER_TEXT_PAGE TEXT SUBTEXT - - !ifdef MUI_PAGE_HEADER_TEXT & MUI_PAGE_HEADER_SUBTEXT - !insertmacro MUI_HEADER_TEXT "${MUI_PAGE_HEADER_TEXT}" "${MUI_PAGE_HEADER_SUBTEXT}" - !else ifdef MUI_PAGE_HEADER_TEXT - !insertmacro MUI_HEADER_TEXT "${MUI_PAGE_HEADER_TEXT}" "${SUBTEXT}" - !else ifdef MUI_PAGE_HEADER_SUBTEXT - !insertmacro MUI_HEADER_TEXT "${TEXT}" "${MUI_PAGE_HEADER_SUBTEXT}" - !else - !insertmacro MUI_HEADER_TEXT "${TEXT}" "${SUBTEXT}" - !endif - - !insertmacro MUI_UNSET MUI_PAGE_HEADER_TEXT - !insertmacro MUI_UNSET MUI_PAGE_HEADER_SUBTEXT - -!macroend - -!macro MUI_DESCRIPTION_BEGIN - - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043 - - StrCmp $0 -1 0 mui.description_begin_done - SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:" - -!ifndef USE_MUIEx -;---------------- - !ifndef UMUI_ENABLE_DESCRIPTION_TEXT - EnableWindow $MUI_TEMP1 0 - !else - !insertmacro UMUI_PAGECTLLIGHT_INIT 1043 -; !insertmacro UMUI_PAGECTLLIGHTTRANSPARENT_INIT 1043 - !endif -!else -;----- - EnableWindow $MUI_TEMP1 0 -!endif -;----- - - SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$MUI_TEXT" - Goto mui.description_done - mui.description_begin_done: - -!macroend - -!macro MUI_DESCRIPTION_TEXT VAR TEXT - - !verbose push - !verbose ${MUI_VERBOSE} - - StrCmp $0 ${VAR} 0 mui.description_${VAR}_done - SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:" - -!ifndef USE_MUIEx -;---------------- - !ifndef UMUI_ENABLE_DESCRIPTION_TEXT - EnableWindow $MUI_TEMP1 1 - !else - !insertmacro UMUI_PAGECTL_INIT 1043 -; !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1043 - !endif -!else -;----- - EnableWindow $MUI_TEMP1 1 -!endif -;----- - - SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}" - Goto mui.description_done - mui.description_${VAR}_done: - - !verbose pop - -!macroend - -!macro MUI_DESCRIPTION_END - - !verbose push - !verbose ${MUI_VERBOSE} - - mui.description_done: - -!ifndef USE_MUIEx -;---------------- - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - -; Workaround attempt for stransparent component description -; But all these methods flicker: - -; method 1 -; System::Call "user32::LockWindowUpdate(i)i ($MUI_TEMP1)" -; System::Call "user32::InvalidateRect(i,i,i)i ($MUI_TEMP1, 0, 1)" -;!define RDW_INVALIDATE 0x0001 -;!define RDW_ERASE 0x0004 -;!define RDW_UPDATENOW 0x0100 -; System::Call "user32::RedrawWindow(i,i,i,i)i ($MUI_TEMP1, 0, 0, ${RDW_INVALIDATE}|${RDW_ERASE}|${RDW_UPDATENOW})" -; System::Call "user32::LockWindowUpdate(i)i (0)" - -; method 2 -; LockWindow on -; LockWindow off - -; method 3 -; FindWindow $MUI_TEMP2 "#32770" "" $HWNDPARENT -; ShowWindow $MUI_TEMP2 ${SW_HIDE} -; ShowWindow $MUI_TEMP2 ${SW_SHOW} - - !endif -!endif -;----- - - !verbose pop - -!macroend - -!macro MUI_ENDHEADER - - IfAbort mui.endheader_abort - - !ifdef MUI_INSTFILESPAGE_FINISHHEADER_TEXT & MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT - !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_FINISHHEADER_TEXT}" "${MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT}" - !else ifdef MUI_INSTFILESPAGE_FINISHHEADER_TEXT - !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_FINISHHEADER_TEXT}" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SUBTITLE)" - !else ifdef MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT - !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_TITLE)" "${MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT}" - !else - !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_TITLE)" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SUBTITLE)" - !endif - - Goto mui.endheader_done - - mui.endheader_abort: - - !ifdef MUI_INSTFILESPAGE_ABORTHEADER_TEXT & MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT - !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_ABORTHEADER_TEXT}" "${MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT}" - !else ifdef MUI_INSTFILESPAGE_ABORTHEADER_TEXT - !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_ABORTHEADER_TEXT}" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_SUBTITLE)" - !else ifdef MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT - !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_TITLE)" "${MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT}" - !else - !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_TITLE)" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_SUBTITLE)" - !endif - - mui.endheader_done: - -!macroend - -!macro MUI_ABORTWARNING - - !ifdef MUI_FINISHPAGE_ABORTWARNINGCHECK - StrCmp $MUI_NOABORTWARNING "1" mui.quit - !endif - - !ifdef MUI_ABORTWARNING_CANCEL_DEFAULT - MessageBox MB_YESNO|MB_ICONEXCLAMATION|MB_DEFBUTTON2 "${MUI_ABORTWARNING_TEXT}" IDYES mui.quit - !else - MessageBox MB_YESNO|MB_ICONEXCLAMATION "${MUI_ABORTWARNING_TEXT}" IDYES mui.quit - !endif - - Abort - mui.quit: - -!macroend - -!macro MUI_UNABORTWARNING - - !ifdef MUI_UNABORTWARNING_CANCEL_DEFAULT - MessageBox MB_YESNO|MB_ICONEXCLAMATION|MB_DEFBUTTON2 "${MUI_UNABORTWARNING_TEXT}" IDYES mui.quit - !else - MessageBox MB_YESNO|MB_ICONEXCLAMATION "${MUI_UNABORTWARNING_TEXT}" IDYES mui.quit - !endif - - Abort - mui.quit: - -!macroend - -!macro MUI_GUIINIT - - !insertmacro UMUI_WELCOMEFINISHABORTPAGE_INIT "" - -!ifdef USE_MUIEx -;---------------- - !insertmacro MUI_HEADERIMAGE_INIT "" -!endif -;---------------- - - !insertmacro MUI_GUIINIT_BASIC "" - - !ifdef MUI_FINISHPAGE - !ifndef MUI_FINISHPAGE_NOAUTOCLOSE - SetAutoClose true - !endif - !endif - -!macroend - -!macro MUI_UNGUIINIT - - !insertmacro UMUI_WELCOMEFINISHABORTPAGE_INIT "UN" - -!ifdef USE_MUIEx -;---------------- - !insertmacro MUI_HEADERIMAGE_INIT "" -!endif -;---------------- - - !insertmacro MUI_GUIINIT_BASIC "UN" - - !ifdef MUI_UNFINISHPAGE - !ifndef MUI_UNFINISHPAGE_NOAUTOCLOSE - SetAutoClose true - !endif - !endif - -!macroend - -!macro MUI_GUIINIT_BASIC UNPREFIX - - InitPluginsDir - -!ifndef USE_MUIEx -;----------------- - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 - CreateFont $MUI_TEMP2 "$(^Font)" "$(^FontSize)" "700" - SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 - SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "transparent" - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "transparent" - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 - CreateFont $MUI_TEMP2 Arial 10 1400 - SetCtlColors $MUI_TEMP1 ${UMUI_BRANDINGTEXTFRONTCOLOR} "transparent" - SendMessage $MUI_TEMP1 ${WM_SETFONT} "$MUI_TEMP2" 0 - SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$(^Branding) " - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 - CreateFont $MUI_TEMP2 Arial 10 1400 - SetCtlColors $MUI_TEMP1 ${UMUI_BRANDINGTEXTBACKCOLOR} "transparent" - SendMessage $MUI_TEMP1 ${WM_SETFONT} "$MUI_TEMP2" 0 - SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$(^Branding) " - - SetCtlColors $HWNDPARENT "${MUI_BGCOLOR}" "${MUI_BGCOLOR}" - - !ifndef UMUI_${UNPREFIX}UNIQUEBGIMAGE - - !ifdef UMUI_${UNPREFIX}LEFTIMAGE_BMP - ReserveFile "${UMUI_${UNPREFIX}LEFTIMAGE_BMP}" - - SetOutPath "$PLUGINSDIR" - File /oname=LeftImg.bmp "${UMUI_${UNPREFIX}LEFTIMAGE_BMP}" - SetBrandingImage /IMGID=1302 /RESIZETOFIT "$PLUGINSDIR\LeftImg.bmp" - !endif - - !ifdef UMUI_HEADERBGIMAGE - ReserveFile "${UMUI_${UNPREFIX}HEADERBGIMAGE_BMP}" - SetOutPath "$PLUGINSDIR" - File /oname=Header.bmp "${UMUI_${UNPREFIX}HEADERBGIMAGE_BMP}" - SetBrandingImage /IMGID=1034 /RESIZETOFIT "$PLUGINSDIR\Header.bmp" - !else - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034 - SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - !endif - - !ifdef UMUI_${UNPREFIX}BOTTOMIMAGE_BMP - ReserveFile "${UMUI_${UNPREFIX}BOTTOMIMAGE_BMP}" - - SetOutPath "$PLUGINSDIR" - File /oname=BtmImg.bmp "${UMUI_${UNPREFIX}BOTTOMIMAGE_BMP}" - SetBrandingImage /IMGID=1305 /RESIZETOFIT "$PLUGINSDIR\BtmImg.bmp" - !endif - - !ifdef UMUI_${UNPREFIX}PAGEBGIMAGE - ReserveFile "${UMUI_${UNPREFIX}PAGEBGIMAGE_BMP}" - SetOutPath "$PLUGINSDIR" - File /oname=PageBG.bmp "${UMUI_${UNPREFIX}PAGEBGIMAGE_BMP}" - SetBrandingImage /IMGID=1303 /RESIZETOFIT "$PLUGINSDIR\PageBG.bmp" - !else - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1303 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - !endif - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1304 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - !else - - ReserveFile "${UMUI_${UNPREFIX}PAGEBGIMAGE_BMP}" - SetOutPath "$PLUGINSDIR" - File /oname=PageBG.bmp "${UMUI_${UNPREFIX}PAGEBGIMAGE_BMP}" - SetBrandingImage /IMGID=1304 /RESIZETOFIT "$PLUGINSDIR\PageBG.bmp" - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1302 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1303 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1305 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - !endif - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1018 - SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - -!else -;----------------- - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 - CreateFont $MUI_TEMP2 "$(^Font)" "$(^FontSize)" "700" - SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 - - !ifndef MUI_HEADER_TRANSPARENT_TEXT - - SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "${MUI_BGCOLOR}" - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "${MUI_BGCOLOR}" - - !else - - SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "transparent" - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "transparent" - - !endif - - !ifdef UMUI_HEADERBGIMAGE - - ReserveFile "${UMUI_${UNPREFIX}HEADERBGIMAGE_BMP}" - SetOutPath "$PLUGINSDIR" - File /oname=Header.bmp "${UMUI_${UNPREFIX}HEADERBGIMAGE_BMP}" - SetBrandingImage /IMGID=1034 /RESIZETOFIT "$PLUGINSDIR\Header.bmp" - - !else - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034 ; Header background - SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - - !endif - - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 ; Header image - SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 - SetCtlColors $MUI_TEMP1 /BRANDING - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 - SetCtlColors $MUI_TEMP1 /BRANDING - SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$(^Branding) " - -!endif -;---------------- - - - !ifdef UMUI_${UNPREFIX}BUTTONIMAGE_BMP | UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP - !insertmacro UMUI_RESERVEFILE_SKINNEDCONTROLS - !endif - - !ifdef UMUI_${UNPREFIX}BUTTONIMAGE_BMP - - ReserveFile "${UMUI_${UNPREFIX}BUTTONIMAGE_BMP}" - - SetOutPath "$PLUGINSDIR" - File /oname=ButtonImg.bmp "${UMUI_${UNPREFIX}BUTTONIMAGE_BMP}" - - !endif - - !ifdef UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP - - ReserveFile "${UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP}" - - SetOutPath "$PLUGINSDIR" - File /oname=ScrollBarImg.bmp "${UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP}" - - !endif - - !ifdef UMUI_${UNPREFIX}BUTTONIMAGE_BMP | UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP - - ;starting SkinnedControls plugin - !ifdef UMUI_${UNPREFIX}BUTTONIMAGE_BMP & UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP - SkinnedControls::skinit \ - /disabledtextcolor=${UMUI_${UNPREFIX}DISABLED_BUTTON_TEXT_COLOR} \ - /selectedtextcolor=${UMUI_${UNPREFIX}SELECTED_BUTTON_TEXT_COLOR} \ - /textcolor=${UMUI_${UNPREFIX}BUTTON_TEXT_COLOR} \ - /button=$PLUGINSDIR\ButtonImg.bmp \ - /scrollbar=$PLUGINSDIR\ScrollBarImg.bmp - !else ifdef UMUI_${UNPREFIX}BUTTONIMAGE_BMP - SkinnedControls::skinit \ - /disabledtextcolor=${UMUI_${UNPREFIX}DISABLED_BUTTON_TEXT_COLOR} \ - /selectedtextcolor=${UMUI_${UNPREFIX}SELECTED_BUTTON_TEXT_COLOR} \ - /textcolor=${UMUI_${UNPREFIX}BUTTON_TEXT_COLOR} \ - /button=$PLUGINSDIR\ButtonImg.bmp - !else - SkinnedControls::skinit /scrollbar=$PLUGINSDIR\ScrollBarImg.bmp - !endif - - !endif - - ClearErrors - - ;get parameters in a ini file - !insertmacro UMUI_PARAMETERS_TO_INI - - !insertmacro UMUI_RESTORESHELLVARCONTEXT - -!macroend - - -!macro UMUI_DELETE_PLUGINDIR - SetOutPath $EXEDIR - Delete "$PLUGINSDIR\*.*" - RMDir /r /REBOOTOK $PLUGINSDIR - ClearErrors -!macroend - - - - -; Taken from the NSIS Documentation -!macro UMUI_GET_PARAMETERS - - !define UMUI_UNIQUEID ${__LINE__} - - Push $R0 - Push $R1 - Push $R2 - Push $R3 - - StrCpy $R2 1 - StrLen $R3 $CMDLINE - - ;Check for quote or space - StrCpy $R0 $CMDLINE $R2 ; copy the first char - StrCmp $R0 '"' 0 +3 - StrCpy $R1 '"' - Goto loop${UMUI_UNIQUEID} - StrCpy $R1 " " - - loop${UMUI_UNIQUEID}: - IntOp $R2 $R2 + 1 - StrCpy $R0 $CMDLINE 1 $R2 - StrCmp $R0 $R1 get${UMUI_UNIQUEID} ;found the " or space char - StrCmp $R2 $R3 get${UMUI_UNIQUEID} loop${UMUI_UNIQUEID} ;all the $CMDLINE string was viewed - - get${UMUI_UNIQUEID}: - IntOp $R2 $R2 + 1 - StrCpy $R0 $CMDLINE 1 $R2 - StrCmp $R0 " " get${UMUI_UNIQUEID} - StrCpy $R0 $CMDLINE "" $R2 - - Pop $R3 - Pop $R2 - Pop $R1 - Exch $R0 - - !undef UMUI_UNIQUEID - -!macroend - - -; Get all parameters in the command line and put it an ini -; /S /L=1033 /D="C:\Program Files\Foo" para4 para5 "para 6" -!macro UMUI_PARAMETERS_TO_INI - - Push $R0 ;All the parameters - Push $R1 ;param counter - Push $R2 ;char counter - Push $R3 ;parameters string len - Push $R4 ;char to compare - Push $R5 ; param name - Push $R6 ; param value - - IfFileExists "$PLUGINSDIR\Parameters.ini" end 0 - - !insertmacro UMUI_GET_PARAMETERS - Pop $R0 - - StrCpy $R1 0 - - ;for each parameters - while: - - ;If $R0 empty, goto end - StrLen $R3 $R0 - StrCpy $R2 0 - - ;trim the spaces at the begining of the string - looptrim: - StrCmp $R2 $R3 end ;all the parameters string was viewed - StrCpy $R4 $R0 1 $R2 - StrCmp $R4 " " 0 endtrim ;found the space - IntOp $R2 $R2 + 1 - Goto looptrim - endtrim: - - StrCpy $R0 $R0 "" $R2 - StrCpy $R2 0 - - ;inc num param - IntOp $R1 $R1 + 1 - - ;If the parameter begin with a "/" - StrCpy $R4 $R0 1 $R2 ;copy the first char - - StrCpy $R5 "" ; name empty - StrCpy $R6 "" ; value empty - - StrCmp $R4 "/" 0 getval - IntOp $R2 $R2 - 1 -; Goto getname - - getname: - ;whait for an = or a space - - IntOp $R2 $R2 + 1 - StrCpy $R4 $R0 1 $R2 - StrCmp $R4 "=" getval1 ;found the = - StrCmp $R4 " " save ;found the space - - StrCpy $R5 "$R5$R4" - StrCmp $R2 $R3 save getname ;all the parameters string was viewed - - getval1: - IntOp $R2 $R2 + 1 - getval: - StrCpy $R4 $R0 1 $R2 - StrCmp $R4 '"' waitquote 0 ;found a quote - - IntOp $R2 $R2 - 1 - - waitspace: - IntOp $R2 $R2 + 1 - StrCpy $R4 $R0 1 $R2 - StrCmp $R4 " " save ;found the space - StrCpy $R6 "$R6$R4" - StrCmp $R2 $R3 save waitspace ;all the parameters string was viewed - - waitquote: - IntOp $R2 $R2 + 1 - StrCpy $R4 $R0 1 $R2 - StrCmp $R4 '"' save1 ;found the quote - StrCpy $R6 "$R6$R4" - StrCmp $R2 $R3 save1 waitquote ;all the parameters string was viewed - - save1: - IntOp $R2 $R2 + 2 - save: - WriteIniStr "$PLUGINSDIR\Parameters.ini" "Setting" "Num" "$R1" - WriteIniStr "$PLUGINSDIR\Parameters.ini" "$R1" "Name" "$R5" - WriteIniStr "$PLUGINSDIR\Parameters.ini" "$R1" "Value" "$R6" - - StrCmp $R5 "" +2 0 - WriteIniStr "$PLUGINSDIR\Parameters.ini" "$R5" "Value" "$R6" - StrCpy $R0 $R0 "" $R2 - - Goto while - end: - - Pop $R6 - Pop $R5 - Pop $R4 - Pop $R3 - Pop $R2 - Pop $R1 - Pop $R0 - -!macroend - - -!macro UMUI_GETPARAMETERVALUE SWITCH DEFAULT - - Push $R0 - - ReadIniStr $R0 "$PLUGINSDIR\Parameters.ini" "${SWITCH}" "Value" - StrCmp $R0 "" 0 +3 - StrCpy $R0 "${DEFAULT}" - ClearErrors - - Exch $R0 - -!macroend - -!macro UMUI_PARAMETERISSET SWITCH - - Push $R0 - - ClearErrors - ReadIniStr $R0 "$PLUGINSDIR\Parameters.ini" "${SWITCH}" "Value" - - ; The error flag is set if error - Exch $R0 - -!macroend - -!macro UMUI_GETNUMPARAM - - Push $R0 - - ReadIniStr $R0 "$PLUGINSDIR\Parameters.ini" "Setting" "Num" - StrCmp $R0 "" 0 +3 - StrCpy $R0 0 - ClearErrors - - Exch $R0 - -!macroend - - -!macro UMUI_ADDPARAMTOSAVETOREGISTRY VALUENAME DATA - - !ifndef UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY - !error "The global parameters: UMUI_PARAMS_REGISTRY_ROOT and UMUI_PARAMS_REGISTRY_KEY are not defined." - !endif - - !define UMUI_UNIQUEID ${__LINE__} - - Push $R0 - Push $R1 - Push $R2 - - ClearErrors - ReadIniStr $R0 "$PLUGINSDIR\Registry.ini" "Settings" "number" - IfErrors 0 +3 - ClearErrors - StrCpy $R0 0 - - WriteIniStr "$PLUGINSDIR\Registry.ini" "Settings" "REGISTRY_ROOT" "${UMUI_PARAMS_REGISTRY_ROOT}" - WriteIniStr "$PLUGINSDIR\Registry.ini" "Settings" "REGISTRY_KEY" "${UMUI_PARAMS_REGISTRY_KEY}" - - StrCmp $R0 0 notfound${UMUI_UNIQUEID} 0 - - ;search if not already written in the ini file - StrCpy $R1 0 - - loop${UMUI_UNIQUEID}: - IntOp $R1 $R1 + 1 - IntCmp $R1 $R0 0 0 notfound${UMUI_UNIQUEID} - ReadIniStr $R2 "$PLUGINSDIR\Registry.ini" "$R1" "Value_Name" - StrCmp $R2 "${VALUENAME}" found${UMUI_UNIQUEID} loop${UMUI_UNIQUEID} - - notfound${UMUI_UNIQUEID}: - IntOp $R1 $R0 + 1 - - WriteIniStr "$PLUGINSDIR\Registry.ini" "Settings" "number" $R1 - WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "Value_Name" "${VALUENAME}" - WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "Data" "${DATA}" - - found${UMUI_UNIQUEID}: - WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "Data" "${DATA}" - - Pop $R2 - Pop $R1 - Pop $R0 - - !undef UMUI_UNIQUEID - -!macroend - -!macro UMUI_ADDPARAMTOSAVETOREGISTRYKEY REGISTRY_ROOT REGISTRY_KEY VALUENAME DATA - - !define UMUI_UNIQUEID ${__LINE__} - - Push $R0 - Push $R1 - Push $R2 - - ClearErrors - ReadIniStr $R0 "$PLUGINSDIR\Registry.ini" "Settings" "number" - IfErrors 0 noerror${UMUI_UNIQUEID} - ClearErrors - StrCpy $R0 0 - Goto notfound${UMUI_UNIQUEID} - noerror${UMUI_UNIQUEID}: - - ;search if not already written in the ini file - StrCpy $R1 0 - - loop${UMUI_UNIQUEID}: - IntOp $R1 $R1 + 1 - IntCmp $R1 $R0 0 0 notfound${UMUI_UNIQUEID} - ReadIniStr $R2 "$PLUGINSDIR\Registry.ini" "$R1" "Value_Name" - StrCmp $R2 "${VALUENAME}" found${UMUI_UNIQUEID} loop${UMUI_UNIQUEID} - - notfound${UMUI_UNIQUEID}: - IntOp $R1 $R0 + 1 - - WriteIniStr "$PLUGINSDIR\Registry.ini" "Settings" "number" $R1 - WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "Value_Name" "${VALUENAME}" - - found${UMUI_UNIQUEID}: - WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "Data" "${DATA}" - WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "REGISTRY_ROOT" "${REGISTRY_ROOT}" - WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "REGISTRY_KEY" "${REGISTRY_KEY}" - - Pop $R2 - Pop $R1 - Pop $R0 - - !undef UMUI_UNIQUEID - -!macroend - - -!macro UMUI_ADDSHELLVARCONTEXTTOSAVETOREGISTRY - - !ifdef UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME - !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_SHELLVARCONTEXT_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_SHELLVARCONTEXT_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - Push $MUI_TEMP1 - Push $MUI_TEMP2 - - !insertmacro UMUI_GETSHELLVARCONTEXT - Pop $MUI_TEMP2 - - StrCmp $MUI_TEMP2 "current" 0 +3 - StrCpy $MUI_TEMP1 "current" - Goto +2 - StrCpy $MUI_TEMP1 "all" - - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_SHELLVARCONTEXT_REGISTRY_ROOT} "${UMUI_SHELLVARCONTEXT_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" $MUI_TEMP1 - - Pop $MUI_TEMP2 - Pop $MUI_TEMP1 - - !endif - -!macroend - - - -!macro UMUI_SAVEPARAMSTOREGISTRY - - !ifndef MUI_PAGE_UNINSTALLER - - IfAbort install_aborted - - Push $MUI_TEMP1 - Push $MUI_TEMP2 - Push $R0 - Push $R1 - Push $R2 - Push $R3 - - ClearErrors - ReadIniStr $R0 "$PLUGINSDIR\Registry.ini" "Settings" "number" - IfErrors end 0 - - StrCpy $R1 "0" - loop: - - IntOp $R1 $R1 + 1 - IntCmp $R1 $R0 0 0 end - - ReadIniStr $MUI_TEMP1 "$PLUGINSDIR\Registry.ini" "$R1" "REGISTRY_ROOT" - ReadIniStr $MUI_TEMP2 "$PLUGINSDIR\Registry.ini" "$R1" "REGISTRY_KEY" - - ClearErrors - StrCmp $MUI_TEMP1 "" 0 +2 - ReadIniStr $MUI_TEMP1 "$PLUGINSDIR\Registry.ini" "Settings" "REGISTRY_ROOT" - ClearErrors - StrCmp $MUI_TEMP2 "" 0 +2 - ReadIniStr $MUI_TEMP2 "$PLUGINSDIR\Registry.ini" "Settings" "REGISTRY_KEY" - - ReadIniStr $R2 "$PLUGINSDIR\Registry.ini" "$R1" "Value_Name" - ReadIniStr $R3 "$PLUGINSDIR\Registry.ini" "$R1" "Data" - StrCmp $MUI_TEMP1 HKLM 0 +3 - WriteRegStr HKLM "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKCU 0 +3 - WriteRegStr HKCU "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 SHCTX 0 +3 - WriteRegStr SHCTX "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKU 0 +3 - WriteRegStr HKU "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKCR 0 +3 - WriteRegStr HKCR "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKCC 0 +3 - WriteRegStr HKCC "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKDD 0 +3 - WriteRegStr HKDD "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKPD 0 +2 - WriteRegStr HKPD "$MUI_TEMP2" "$R2" "$R3" - Goto loop - !if ${NSIS_PACKEDVERSION} >= 0x03002000 - StrCmp $MUI_TEMP1 HKCR32 0 +2 - WriteRegStr HKCR32 "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKCR64 0 +2 - WriteRegStr HKCR64 "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKCU32 0 +2 - WriteRegStr HKCU32 "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKCU64 0 +2 - WriteRegStr HKCU64 "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKLM32 0 +2 - WriteRegStr HKLM32 "$MUI_TEMP2" "$R2" "$R3" - Goto loop - StrCmp $MUI_TEMP1 HKLM64 0 +2 - WriteRegStr HKLM64 "$MUI_TEMP2" "$R2" "$R3" - Goto loop - !endif - end: - ClearErrors - - Pop $R3 - Pop $R2 - Pop $R1 - Pop $R0 - Pop $MUI_TEMP2 - Pop $MUI_TEMP1 - - install_aborted: - - !endif - -!macroend - -!macro UMUI_RESTORESHELLVARCONTEXT - - Push $MUI_TEMP1 - Push $MUI_TEMP2 - - !ifdef UMUI_DEFAULT_SHELLVARCONTEXT - StrCpy $MUI_TEMP1 "${UMUI_DEFAULT_SHELLVARCONTEXT}" - !else - !insertmacro UMUI_GETSHELLVARCONTEXT - Pop $MUI_TEMP1 ;current value - !endif - - !ifdef UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME - !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_SHELLVARCONTEXT_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_SHELLVARCONTEXT_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - ClearErrors - ReadRegStr $MUI_TEMP2 ${UMUI_SHELLVARCONTEXT_REGISTRY_ROOT} "${UMUI_SHELLVARCONTEXT_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" - IfErrors +2 0 - StrCpy $MUI_TEMP1 $MUI_TEMP2 - !endif - - StrCmp $MUI_TEMP1 all 0 +3 - SetShellVarContext all - Goto +2 - SetShellVarContext current - - ClearErrors - - Pop $MUI_TEMP2 - Pop $MUI_TEMP1 - -!macroend - - -!macro UMUI_GETSHELLVARCONTEXT - - Push $MUI_TEMP1 - Push $MUI_TEMP2 - - StrCpy $MUI_TEMP2 "$SMPROGRAMS" - SetShellVarContext current - StrCmp $MUI_TEMP2 "$SMPROGRAMS" 0 +3 - StrCpy $MUI_TEMP1 "current" - Goto +3 - StrCpy $MUI_TEMP1 "all" - SetShellVarContext all - - Pop $MUI_TEMP2 - Exch $MUI_TEMP1 - -!macroend - - -!macro UMUI_RESTOREINSTDIR - - !ifdef UMUI_INSTALLDIR_REGISTRY_VALUENAME - !ifndef UMUI_INSTALLDIR_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_INSTALLDIR_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_INSTALLDIR_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_INSTALLDIR_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - Push $R0 - ClearErrors - ReadRegStr $R0 ${UMUI_INSTALLDIR_REGISTRY_ROOT} "${UMUI_INSTALLDIR_REGISTRY_KEY}" "${UMUI_INSTALLDIR_REGISTRY_VALUENAME}" - IfErrors +2 0 - StrCpy $INSTDIR $R0 - ClearErrors - Pop $R0 - !endif - -!macroend - - -;Based on the StrReplace v4 function of Afrow UK -;Usage: -;!insertmacro UMUI_STRREPLACE $Var "replace" "with" "in string" -!macro UMUI_STRREPLACE Var Replace With In - - !define UMUI_UNIQUEIDSTRREPLACE ${__LINE__} - - Push $R0 - Push $R3 - Push $R4 - Push $R5 - Push $R6 - Push $R7 - Push $R8 - - StrCpy $R0 "${In}" - StrCpy $R3 -1 - StrLen $R5 $R0 - StrLen $R6 "${With}" - StrLen $R7 "${Replace}" - Loop${UMUI_UNIQUEIDSTRREPLACE}: - IntOp $R3 $R3 + 1 - StrCpy $R4 $R0 $R7 $R3 - StrCmp $R3 $R5 End${UMUI_UNIQUEIDSTRREPLACE} - StrCmp $R4 "${Replace}" 0 Loop${UMUI_UNIQUEIDSTRREPLACE} - - StrCpy $R4 $R0 $R3 - IntOp $R8 $R3 + $R7 - StrCpy $R8 $R0 "" $R8 - StrCpy $R0 "$R4${With}$R8" - IntOp $R3 $R3 + $R6 - IntOp $R3 $R3 - 1 - IntOp $R5 $R5 - $R7 - IntOp $R5 $R5 + $R6 - - Goto Loop${UMUI_UNIQUEIDSTRREPLACE} - - End${UMUI_UNIQUEIDSTRREPLACE}: - - Pop $R8 - Pop $R7 - Pop $R6 - Pop $R5 - Pop $R4 - Pop $R3 - Exch $R0 #out - Pop `${Var}` - - !undef UMUI_UNIQUEIDSTRREPLACE - -!macroend - - - -;Usage: -;!insertmacro UMUI_STRCOUNT "string to count" "in string to search" -;Pop $Var ;the return number -; "string to count" and "in string to search" must not be a var betwen $R0 and $R4 -!macro UMUI_STRCOUNT COUNT IN - - !define UMUI_UNIQUEIDSTRCOUNT ${__LINE__} - - Push $R0 ; counter - Push $R1 ; the length of the string to count - Push $R2 ; the length of the string into search - Push $R3 ; char index counter - Push $R4 ; string for comparaison - - StrCpy $R0 0 - StrLen $R1 "${COUNT}" - StrLen $R2 "${IN}" - StrCpy $R3 0 - Loop${UMUI_UNIQUEIDSTRCOUNT}: - StrCpy $R4 "${IN}" $R1 $R3 - StrCmp $R3 $R2 End${UMUI_UNIQUEIDSTRCOUNT} - IntOp $R3 $R3 + 1 ; incremente counter - StrCmp $R4 "${COUNT}" 0 Loop${UMUI_UNIQUEIDSTRCOUNT} - IntOp $R0 $R0 + 1 - Goto Loop${UMUI_UNIQUEIDSTRCOUNT} - End${UMUI_UNIQUEIDSTRCOUNT}: - - Pop $R4 - Pop $R3 - Pop $R2 - Pop $R1 - Exch $R0 - - !undef UMUI_UNIQUEIDSTRCOUNT - -!macroend - - - -;Based on the VersionCompare v1.0 of Instructor -;Thanks Afrow UK (Based on his Function "VersionCheckNew2") -;Usage: -;!insertmacro UMUI_VERSIONCOMPARE VER1 VER2 -;Pop $Var ;the return 0: the same, 1: VER1 is newer, 2: VRE2 is newer -!macro UMUI_VERSIONCOMPARE VER1 VER2 - - !verbose push - !verbose ${MUI_VERBOSE} - - !define UMUI_UNIQUEIDVER ${__LINE__} - - Push $0 - Push $1 - Push $2 - Push $3 - Push $4 - Push $5 - Push $6 - Push $7 - - StrCpy $0 "${VER1}" - StrCpy $1 "${VER2}" - - begin${UMUI_UNIQUEIDVER}: - StrCpy $2 -1 - IntOp $2 $2 + 1 - StrCpy $3 $0 1 $2 - StrCmp $3 '' +2 - StrCmp $3 '.' 0 -3 - StrCpy $4 $0 $2 - IntOp $2 $2 + 1 - StrCpy $0 $0 '' $2 - - StrCpy $2 -1 - IntOp $2 $2 + 1 - StrCpy $3 $1 1 $2 - StrCmp $3 '' +2 - StrCmp $3 '.' 0 -3 - StrCpy $5 $1 $2 - IntOp $2 $2 + 1 - StrCpy $1 $1 '' $2 - - StrCmp $4$5 '' equal${UMUI_UNIQUEIDVER} - - StrCpy $6 -1 - IntOp $6 $6 + 1 - StrCpy $3 $4 1 $6 - StrCmp $3 '0' -2 - StrCmp $3 '' 0 +2 - StrCpy $4 0 - - StrCpy $7 -1 - IntOp $7 $7 + 1 - StrCpy $3 $5 1 $7 - StrCmp $3 '0' -2 - StrCmp $3 '' 0 +2 - StrCpy $5 0 - - StrCmp $4 0 0 +2 - StrCmp $5 0 begin${UMUI_UNIQUEIDVER} newer2${UMUI_UNIQUEIDVER} - StrCmp $5 0 newer1${UMUI_UNIQUEIDVER} - IntCmp $6 $7 0 newer1${UMUI_UNIQUEIDVER} newer2${UMUI_UNIQUEIDVER} - - StrCpy $4 '1$4' - StrCpy $5 '1$5' - IntCmp $4 $5 begin${UMUI_UNIQUEIDVER} newer2${UMUI_UNIQUEIDVER} newer1${UMUI_UNIQUEIDVER} - - equal${UMUI_UNIQUEIDVER}: - StrCpy $0 0 - Goto end${UMUI_UNIQUEIDVER} - newer1${UMUI_UNIQUEIDVER}: - StrCpy $0 1 - Goto end${UMUI_UNIQUEIDVER} - newer2${UMUI_UNIQUEIDVER}: - StrCpy $0 2 - - end${UMUI_UNIQUEIDVER}: - - Pop $7 - Pop $6 - Pop $5 - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Exch $0 - - !undef UMUI_UNIQUEIDVER - - !verbose pop - -!macroend - - -;Based on the VersionConvert v1.0 of Instructor -;Thanks Afrow UK (Based on his Function "CharIndexReplace") -;Usage: -;!insertmacro UMUI_VERSIONCONVERT VER -;Pop $Var ;get the coverted version -!macro UMUI_VERSIONCONVERT VER - - !verbose push - !verbose ${MUI_VERBOSE} - - !define UMUI_UNIQUEIDVER ${__LINE__} - - Push $0 ; Converted string - Push $1 ; Input version - Push $2 ; CharactersList - Push $3 ; Input String Indices - Push $4 ; Char extracted from input - Push $5 ; LastCharType - Push $6 - Push $7 - - StrCpy $0 "" - - StrCpy $1 "${VER}" - - StrCpy $2 "abcdefghijklmnopqrstuvwxyz#" - - IntOp $3 0 - 1 - - StrCpy $5 "dot" - - loop${UMUI_UNIQUEIDVER}: - IntOp $3 $3 + 1 - - StrCpy $4 $1 1 $3 - StrCmp $4 '' endcheck${UMUI_UNIQUEIDVER} - StrCmp $4 '.' dot${UMUI_UNIQUEIDVER} - StrCmp $4 '-' dot${UMUI_UNIQUEIDVER} - StrCmp $4 '_' dot${UMUI_UNIQUEIDVER} - StrCmp $4 ' ' dot${UMUI_UNIQUEIDVER} - StrCmp $4 '0' digit${UMUI_UNIQUEIDVER} - IntCmp $4 '0' letter${UMUI_UNIQUEIDVER} letter${UMUI_UNIQUEIDVER} digit${UMUI_UNIQUEIDVER} - - dot${UMUI_UNIQUEIDVER}: - StrCmp $5 "dot" loop${UMUI_UNIQUEIDVER} 0 - StrCpy $0 "$0." - StrCpy $5 "dot" - Goto loop${UMUI_UNIQUEIDVER} - - digit${UMUI_UNIQUEIDVER}: - StrCpy $0 "$0$4" - StrCpy $5 "digit" - Goto loop${UMUI_UNIQUEIDVER} - - letter${UMUI_UNIQUEIDVER}: - StrCmp $5 "digit" 0 +2 - StrCpy $0 "$0." - - StrCpy $5 "letter" - - IntOp $6 0 - 1 - - letterloop${UMUI_UNIQUEIDVER}: - IntOp $6 $6 + 1 - StrCpy $7 $2 1 $6 - StrCmp $7 '#' 0 +3 - StrCpy $0 "$099" - Goto loop${UMUI_UNIQUEIDVER} - - StrCmp $4 $7 0 letterloop${UMUI_UNIQUEIDVER} - IntCmp $6 9 0 0 +2 - StrCpy $0 "$00" - - StrCpy $0 "$0$6" - - Goto loop${UMUI_UNIQUEIDVER} - - endcheck${UMUI_UNIQUEIDVER}: - StrCpy $7 $0 1 -1 - StrCmp $7 '.' 0 end${UMUI_UNIQUEIDVER} - StrLen $6 $0 - IntOp $6 $6 - 1 - StrCpy $0 $0 $6 - Goto endcheck${UMUI_UNIQUEIDVER} - - end${UMUI_UNIQUEIDVER}: - - Pop $7 - Pop $6 - Pop $5 - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Exch $0 - - !undef UMUI_UNIQUEIDVER - - !verbose pop - -!macroend - - - -!macro UMUI_GETPARENTFOLDER FULPATH - - !verbose push - !verbose ${MUI_VERBOSE} - - Push $0 - Push $1 - - StrCpy $0 "${FULPATH}" - - StrCpy $1 $0 1 -1 - StrCmp $1 '\' +3 - StrCpy $0 $0 -1 - Goto -3 - - StrCpy $1 $0 1 -1 - - Pop $1 - Exch $0 - - !verbose pop - -!macroend - - -!macro UMUI_WELCOMEFINISHABORTPAGE_INIT UNINSTALLER - - !ifdef MUI_${UNINSTALLER}WELCOMEPAGE | MUI_${UNINSTALLER}FINISHPAGE | UMUI_${UNINSTALLER}ABORTPAGE | UMUI_${UNINSTALLER}MULTILANGUAGEPAGE - - !ifdef UMUI_USE_${UNINSTALLER}ALTERNATE_PAGE - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_${UNINSTALLER}ALTERNATEWELCOMEFINISHABORTPAGE_INI}" "ioSpecial.ini" - !else - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_${UNINSTALLER}WELCOMEFINISHABORTPAGE_INI}" "ioSpecial.ini" - !endif - - !ifdef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE - File "/oname=$PLUGINSDIR\modern-wizard.bmp" "${MUI_${UNINSTALLER}WELCOMEFINISHPAGE_BITMAP}" - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Text" "$PLUGINSDIR\modern-wizard.bmp" - - !ifdef MUI_${UNINSTALLER}WELCOMEFINISHPAGE_BITMAP_NOSTRETCH - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Flags" "" - !endif - - !endif - - !endif - -!macroend - -!macro MUI_HEADERIMAGE_INIT UNINSTALLER - - !ifdef MUI_HEADERIMAGE - - InitPluginsDir - - !ifdef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL - - StrCmp $(^RTL) 0 mui.headerimageinit_nortl - - File "/oname=$PLUGINSDIR\modern-header.bmp" "${MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL}" - - !ifndef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL_NOSTRETCH - SetBrandingImage /IMGID=1046 /RESIZETOFIT "$PLUGINSDIR\modern-header.bmp" - !else - SetBrandingImage /IMGID=1046 "$PLUGINSDIR\modern-header.bmp" - !endif - - Goto mui.headerimageinit_done - - mui.headerimageinit_nortl: - - !endif - - File "/oname=$PLUGINSDIR\modern-header.bmp" "${MUI_HEADERIMAGE_${UNINSTALLER}BITMAP}" - - !ifndef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_NOSTRETCH - SetBrandingImage /IMGID=1046 /RESIZETOFIT "$PLUGINSDIR\modern-header.bmp" - !else - SetBrandingImage /IMGID=1046 "$PLUGINSDIR\modern-header.bmp" - !endif - - !ifdef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL - - mui.headerimageinit_done: - - !endif - - !endif - -!macroend - -;-------------------------------- -;INTERFACE - FUNCTIONS - - -!macro UMUI_VERSION_SET - - !ifdef UMUI_VERBUILD_REGISTRY_VALUENAME - !ifndef UMUI_VERBUILD - !warning "UMUI_VERBUILD need to be defined with UMUI_VERBUILD_REGISTRY_VALUENAME. Ignored" - !undef UMUI_VERBUILD_REGISTRY_VALUENAME - !endif - !endif - !ifdef UMUI_VERSION_REGISTRY_VALUENAME - !ifndef UMUI_VERSION - !warning "UMUI_VERSION need to be defined with UMUI_VERSION_REGISTRY_VALUENAME. Ignored" - !undef UMUI_VERSION_REGISTRY_VALUENAME - !endif - !endif - - - !ifdef UMUI_VERBUILD_REGISTRY_VALUENAME - - !ifndef UMUI_VERBUILD_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_VERBUILD_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_VERBUILD_REGISTRY_VALUENAME, the UMUI_VERBUILD_REGISTRY_ROOT & UMUI_VERBUILD_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_VERBUILD_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_VERBUILD_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_VERBUILD_REGISTRY_VALUENAME, the UMUI_VERBUILD_REGISTRY_ROOT & UMUI_VERBUILD_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - ReadRegStr $MUI_TEMP1 ${UMUI_VERBUILD_REGISTRY_ROOT} "${UMUI_VERBUILD_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" - - StrCmp $MUI_TEMP1 "" endv 0 - - ClearErrors - - StrCmp $MUI_TEMP1 "${UMUI_VERBUILD}" 0 diff - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_SAMEVERSION} - !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_DIFFVERSION} - Goto endv - diff: - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_DIFFVERSION} - !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_SAMEVERSION} - - endv: - ClearErrors - - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_VERBUILD_REGISTRY_ROOT} "${UMUI_VERBUILD_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" "${UMUI_VERBUILD}" - - !endif - - !ifdef UMUI_VERSION_REGISTRY_VALUENAME & UMUI_VERSION - - !ifndef UMUI_VERSION_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_VERSION_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_VERSION_REGISTRY_VALUENAME, the UMUI_VERSION_REGISTRY_ROOT & UMUI_VERSION_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_VERSION_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_VERSION_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_VERSION_REGISTRY_VALUENAME, the UMUI_VERSION_REGISTRY_ROOT & UMUI_VERSION_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_VERSION_REGISTRY_ROOT} "${UMUI_VERSION_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" "${UMUI_VERSION}" - !endif - -!macroend - - - -!macro UMUI_PATH_SAVE - - !ifdef UMUI_UNINSTALLPATH_REGISTRY_VALUENAME - !ifndef UMUI_UNINSTALL_FULLPATH - !warning "UMUI_UNINSTALL_FULLPATH need to be defined with UMUI_UNINSTALLPATH_REGISTRY_VALUENAME. Ignored" - !undef UMUI_UNINSTALLPATH_REGISTRY_VALUENAME - !endif - - !ifndef UMUI_UNINSTALLPATH_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_UNINSTALLPATH_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_UNINSTALLPATH_REGISTRY_VALUENAME, the UMUI_UNINSTALLPATH_REGISTRY_ROOT & UMUI_UNINSTALLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_UNINSTALLPATH_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_UNINSTALLPATH_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_UNINSTALLPATH_REGISTRY_VALUENAME, the UMUI_UNINSTALLPATH_REGISTRY_ROOT & UMUI_UNINSTALLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - !ifndef UMUI_INSTALLERFULLPATH_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_INSTALLERFULLPATH_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME, the UMUI_INSTALLERFULLPATH_REGISTRY_ROOT & UMUI_INSTALLERFULLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_INSTALLERFULLPATH_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_INSTALLERFULLPATH_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME, the UMUI_INSTALLERFULLPATH_REGISTRY_ROOT & UMUI_INSTALLERFULLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - !endif - - !ifdef UMUI_UNINSTALLPATH_REGISTRY_VALUENAME & UMUI_UNINSTALL_FULLPATH - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_UNINSTALLPATH_REGISTRY_ROOT} "${UMUI_UNINSTALLPATH_REGISTRY_KEY}" "${UMUI_UNINSTALLPATH_REGISTRY_VALUENAME}" "${UMUI_UNINSTALL_FULLPATH}" - !endif - - !ifdef UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME - !ifdef UMUI_INSTALL_FULLPATH - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_INSTALLERFULLPATH_REGISTRY_ROOT} "${UMUI_INSTALLERFULLPATH_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" "${UMUI_INSTALL_FULLPATH}" - !else - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_INSTALLERFULLPATH_REGISTRY_ROOT} "${UMUI_INSTALLERFULLPATH_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" $EXEPATH - !endif - !endif - -!macroend - - - -!macro UMUI_MAINTENANCE_PARAMETERS_GET - - ClearErrors - !insertmacro UMUI_PARAMETERISSET "/remove" - Pop $MUI_TEMP1 - IfErrors noremove 0 - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_REMOVE} - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_ABORTFIRSTTIME} - !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} - Goto endsearch - - noremove: - !insertmacro UMUI_PARAMETERISSET "/modify" - Pop $MUI_TEMP1 - IfErrors nomodify 0 - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_MODIFY} - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_ABORTFIRSTTIME} - !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} - Goto endsearch - - nomodify: - !insertmacro UMUI_PARAMETERISSET "/repair" - Pop $MUI_TEMP1 - IfErrors norepair 0 - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_REPAIR} - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_ABORTFIRSTTIME} - !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} - Goto endsearch - - norepair: - !insertmacro UMUI_PARAMETERISSET "/continue" - Pop $MUI_TEMP1 - IfErrors endsearch 0 - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_CONTINUE_SETUP} - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_ABORTFIRSTTIME} - !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} - - endsearch: - ClearErrors - -!macroend - - -!macro MUI_FUNCTION_GUIINIT - - Function .onGUIInit - - !insertmacro MUI_GUIINIT - - !ifdef MUI_CUSTOMFUNCTION_GUIINIT - Call "${MUI_CUSTOMFUNCTION_GUIINIT}" - !endif - - !ifdef UMUI_BGSKIN | UMUI_USE_CUSTOMBG - !insertmacro UMUI_BG - !endif - - ;Only if not already set in the .onInit function - StrCmp $UMUI_INSTALLFLAG "" 0 +2 - StrCpy $UMUI_INSTALLFLAG 0 - - !insertmacro UMUI_VERSION_SET - - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} - - !insertmacro UMUI_MAINTENANCE_PARAMETERS_GET - - FunctionEnd - -!ifdef UMUI_CUSTOMFUNCTION_GUIEND | UMUI_BGSKIN | UMUI_USE_CUSTOMBG - - Function .onGUIEnd - - !ifdef UMUI_CUSTOMFUNCTION_GUIEND - Call "${UMUI_CUSTOMFUNCTION_GUIEND}" - !endif - - !ifdef UMUI_BGSKIN | UMUI_USE_CUSTOMBG - !insertmacro UMUI_BG_Destroy - !endif - - !insertmacro UMUI_DELETE_PLUGINDIR - - FunctionEnd - -!endif - -!macroend - -!macro MUI_FUNCTION_DESCRIPTION_BEGIN - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifndef MUI_VAR_TEXT - Var MUI_TEXT - !define MUI_VAR_TEXT - !endif - -; !define /redef MUI_PAGE_UNINSTALLER_PREFIX "" - Function .onMouseOverSection - !insertmacro MUI_DESCRIPTION_BEGIN - - !verbose pop - -!macroend - -!macro MUI_FUNCTION_DESCRIPTION_END - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_DESCRIPTION_END - !ifdef MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION - Call "${MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION}" - !endif - FunctionEnd -; !undef MUI_PAGE_UNINSTALLER_PREFIX - - !verbose pop - -!macroend - -!macro MUI_UNFUNCTION_DESCRIPTION_BEGIN - - !verbose push - !verbose ${MUI_VERBOSE} - -; !define /redef MUI_PAGE_UNINSTALLER_PREFIX "UN" - Function un.onMouseOverSection - !insertmacro MUI_DESCRIPTION_BEGIN - - !verbose pop - -!macroend - -!macro MUI_UNFUNCTION_DESCRIPTION_END - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_DESCRIPTION_END - !ifdef MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION - Call "${MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION}" - !endif - FunctionEnd -; !undef MUI_PAGE_UNINSTALLER_PREFIX - - !verbose pop - -!macroend - -!macro MUI_FUNCTION_ABORTWARNING - - Function .onUserAbort - !ifdef MUI_ABORTWARNING - !insertmacro MUI_ABORTWARNING - !endif - - !ifdef MUI_CUSTOMFUNCTION_ABORT - Call "${MUI_CUSTOMFUNCTION_ABORT}" - !endif - - !ifdef UMUI_ABORTPAGE - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_CANCELLED} - !ifdef UMUI_USE_INSTALLOPTIONSEX - !insertmacro UMUI_INSTALLOPTIONSEX_SKIPVALIDATION - !endif - SendMessage $HWNDPARENT "0x408" "1" "" - Abort - !else - !insertmacro UMUI_DELETE_PLUGINDIR - !endif - FunctionEnd - -!macroend - -!macro MUI_FUNCTION_UNABORTWARNING - - Function un.onUserAbort - !ifdef MUI_UNABORTWARNING - !insertmacro MUI_UNABORTWARNING - !endif - - !ifdef MUI_CUSTOMFUNCTION_UNABORT - Call "${MUI_CUSTOMFUNCTION_UNABORT}" - !endif - - !ifdef UMUI_UNABORTPAGE - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_CANCELLED} - !ifdef UMUI_USE_INSTALLOPTIONSEX - !insertmacro UMUI_INSTALLOPTIONSEX_SKIPVALIDATION - !endif - SendMessage $HWNDPARENT "0x408" "1" "" - Abort - !else - !insertmacro UMUI_DELETE_PLUGINDIR - !endif - FunctionEnd - -!macroend - -!macro MUI_UNFUNCTION_GUIINIT - - Function un.onGUIInit - - !insertmacro MUI_UNGUIINIT - - !ifdef MUI_CUSTOMFUNCTION_UNGUIINIT - Call "${MUI_CUSTOMFUNCTION_UNGUIINIT}" - !endif - - !ifdef UMUI_BGSKIN | UMUI_USE_CUSTOMBG - !insertmacro UMUI_BG - !endif - - ;Only if not already set in the un.onInit function - StrCmp $UMUI_INSTALLFLAG "" 0 +2 - StrCpy $UMUI_INSTALLFLAG 0 - - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_SAMEVERSION} - !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_DIFFVERSION} - !insertmacro UMUI_MAINTENANCE_PARAMETERS_GET - - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} - - FunctionEnd - - - !ifdef UMUI_CUSTOMFUNCTION_UNGUIEND | UMUI_BGSKIN | UMUI_USE_CUSTOMBG - - Function un.onGUIEnd - - !ifdef UMUI_CUSTOMFUNCTION_UNGUIEND - Call "${UMUI_CUSTOMFUNCTION_UNGUIEND}" - !endif - - !ifdef UMUI_BGSKIN | UMUI_USE_CUSTOMBG - !insertmacro UMUI_BG_Destroy - !endif - - !insertmacro UMUI_DELETE_PLUGINDIR - - FunctionEnd - - !endif - -!macroend - - -!macro UMUI_UNPAGE_LEFTMESSAGEBOX A B C - - !insertmacro UMUI_PAGE_LEFTMESSAGEBOX "${A}" "${B}" "${C}" - -!macroend - -!macro UMUI_PAGE_LEFTMESSAGEBOX A B C - - !warning "The UMUI_PAGE_LEFTMESSAGEBOX and UMUI_UNPAGE_LEFTMESSAGEBOX macros were removed since Ultra-Modern UI 1.00 beta 2." - !insertmacro MUI_UNSET UMUI_LEFTMESSAGEBOX_VAR - !insertmacro MUI_UNSET UMUI_LEFTMESSAGEBOX_LEFTFUNC - -!macroend - -!macro UMUI_LEFT_TEXTE A B - - !warning "The UMUI_LEFT_TEXTE macro was removed since Ultra-Modern UI 1.00 beta 2." - -!macroend - -!macro UMUI_LEFT_SETTIME A - - !warning "The UMUI_LEFT_SETTIME macro was removed since Ultra-Modern UI 1.00 beta 2." - -!macroend - -; Workaround for unkinning button after MessageBox validated -!macro UMUI_FIX_BUTTONS_SKIN - - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}BUTTONIMAGE_BMP - SendMessage $HWNDPARENT ${WM_MENUDRAG} 0 0 ; Do this to force reskin - !endif - -!macroend - -;-------------------------------- -;START MENU FOLDER - -!macro MUI_STARTMENU_GETFOLDER ID VAR - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifdef MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME - - ReadRegStr $MUI_TEMP1 "${MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME}" - - StrCmp $MUI_TEMP1 "" +3 - StrCpy "${VAR}" $MUI_TEMP1 - Goto +2 - - StrCpy "${VAR}" "${MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER}" - - !else - - StrCpy "${VAR}" "${MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER}" - - !endif - - !verbose pop - -!macroend - -!macro MUI_STARTMENU_WRITE_BEGIN ID - - !verbose push - !verbose ${MUI_VERBOSE} - - !define MUI_STARTMENUPAGE_CURRENT_ID "${ID}" - - StrCpy $MUI_TEMP1 "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" 1 - StrCmp $MUI_TEMP1 ">" mui.startmenu_write_${MUI_STARTMENUPAGE_CURRENT_ID}_done - - StrCmp "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" "" 0 mui.startmenu_writebegin_${MUI_STARTMENUPAGE_CURRENT_ID}_notempty - - !insertmacro MUI_STARTMENU_GETFOLDER "${MUI_STARTMENUPAGE_CURRENT_ID}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" - - mui.startmenu_writebegin_${MUI_STARTMENUPAGE_CURRENT_ID}_notempty: - - !verbose pop - -!macroend - -!macro MUI_STARTMENU_WRITE_END - - !verbose push - !verbose ${MUI_VERBOSE} - - mui.startmenu_write_${MUI_STARTMENUPAGE_CURRENT_ID}_done: - - !undef MUI_STARTMENUPAGE_CURRENT_ID - - !verbose pop - -!macroend - -;-------------------------------- -;PAGES - -!macro MUI_PAGE_INIT - - !insertmacro MUI_INTERFACE - - !define /IfNDef MUI_PAGE_UNINSTALLER_PREFIX "" - !define /IfNDef MUI_PAGE_UNINSTALLER_FUNCPREFIX "" - - !insertmacro MUI_UNSET MUI_UNIQUEID - - !define MUI_UNIQUEID ${__LINE__} - -!macroend - -!macro MUI_UNPAGE_INIT - - !define /IfNDef MUI_UNINSTALLER - - !define MUI_PAGE_UNINSTALLER - - !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER_PREFIX - !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER_FUNCPREFIX - - !define MUI_PAGE_UNINSTALLER_PREFIX "UN" - !define MUI_PAGE_UNINSTALLER_FUNCPREFIX "un." - -!macroend - -!macro MUI_UNPAGE_END - - !undef MUI_PAGE_UNINSTALLER - !undef MUI_PAGE_UNINSTALLER_PREFIX - !undef MUI_PAGE_UNINSTALLER_FUNCPREFIX - -!macroend - -!macro MUI_PAGE_WELCOME - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT MUI_WELCOMEPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TITLE)" - - !ifdef MUI_PAGE_UNINSTALLER - !insertmacro MUI_DEFAULT_IOCONVERT MUI_WELCOMEPAGE_TEXT "$(MUI_UNTEXT_WELCOME_INFO_TEXT)" - !else - !ifdef UMUI_WELCOMEPAGE_ALTERNATIVETEXT - !insertmacro MUI_DEFAULT_IOCONVERT MUI_WELCOMEPAGE_TEXT "$(UMUI_TEXT_WELCOME_ALTERNATIVEINFO_TEXT)" - !else - !insertmacro MUI_DEFAULT_IOCONVERT MUI_WELCOMEPAGE_TEXT "$(MUI_TEXT_WELCOME_INFO_TEXT)" - !endif - !endif - - !ifndef MUI_VAR_HWND - Var MUI_HWND - !define MUI_VAR_HWND - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID} - - PageExEnd - - !insertmacro MUI_FUNCTION_WELCOMEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE - !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE_3LINES - !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TEXT - !insertmacro MUI_UNSET UMUI_WELCOMEPAGE_ALTERNATIVETEXT - - !verbose pop - -!macroend - -!macro MUI_PAGE_LICENSE LICENSEDATA - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}LICENSEPAGE - - !define /IfNDef MUI_LICENSEPAGE_TEXT_TOP "$(MUI_INNERTEXT_LICENSE_TOP)" - !define /IfNDef MUI_LICENSEPAGE_BUTTON "" - !define /IfNDef MUI_LICENSEPAGE_CHECKBOX_TEXT "" - !define /IfNDef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT "" - !define /IfNDef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE "" - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}license - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicensePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseLeave_${MUI_UNIQUEID} - - Caption " " - - LicenseData "${LICENSEDATA}" - - !ifndef MUI_LICENSEPAGE_TEXT_BOTTOM - !ifndef MUI_LICENSEPAGE_CHECKBOX & MUI_LICENSEPAGE_RADIOBUTTONS - LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM)" "${MUI_LICENSEPAGE_BUTTON}" - !else ifdef MUI_LICENSEPAGE_CHECKBOX - LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM_CHECKBOX)" "${MUI_LICENSEPAGE_BUTTON}" - !else - LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS)" "${MUI_LICENSEPAGE_BUTTON}" - !endif - !else - LicenseText "${MUI_LICENSEPAGE_TEXT_BOTTOM}" "${MUI_LICENSEPAGE_BUTTON}" - !endif - - !ifdef MUI_LICENSEPAGE_CHECKBOX - LicenseForceSelection checkbox "${MUI_LICENSEPAGE_CHECKBOX_TEXT}" - !else ifdef MUI_LICENSEPAGE_RADIOBUTTONS - LicenseForceSelection radiobuttons "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT}" "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE}" - !endif - - PageExEnd - - !insertmacro MUI_FUNCTION_LICENSEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicensePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET MUI_LICENSEPAGE_TEXT_TOP - !insertmacro MUI_UNSET MUI_LICENSEPAGE_TEXT_BOTTOM - !insertmacro MUI_UNSET MUI_LICENSEPAGE_BUTTON - !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX - !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT - !insertmacro MUI_UNSET MUI_LICENSEPAGE_RADIOBUTTONS - !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT_ACCEPT - !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT_DECLINE - - !verbose pop - -!macroend - -!macro MUI_PAGE_COMPONENTS - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}COMPONENTSPAGE - - !define /IfNDef MUI_COMPONENTSPAGE_TEXT_TOP "" - !define /IfNDef MUI_COMPONENTSPAGE_TEXT_COMPLIST "" - !define /IfNDef MUI_COMPONENTSPAGE_TEXT_INSTTYPE "" - !define /IfNDef MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE)" - !define /IfNDef MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO)" - - !ifndef MUI_VAR_TEXT - Var MUI_TEXT - !define MUI_VAR_TEXT - !endif - - !ifdef UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME | UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME - !ifndef UMUI_VAR_UMUI_TEMP3 - Var UMUI_TEMP3 - !define UMUI_VAR_UMUI_TEMP3 - !endif - !endif - - !ifdef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME - !ifndef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME, the UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT & UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME, the UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT & UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !endif - - !ifdef UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME - !ifndef UMUI_COMPONENTSPAGE_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_COMPONENTSPAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME, the UMUI_COMPONENTSPAGE_REGISTRY_ROOT & UMUI_COMPONENTSPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_COMPONENTSPAGE_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_COMPONENTSPAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME, the UMUI_COMPONENTSPAGE_REGISTRY_ROOT & UMUI_COMPONENTSPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !endif - - !ifndef MUI_UNINSTALLER - !ifdef UMUI_MAINTENANCEPAGE - !ifndef UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME - !warning "With the maintenance page, you need to set the UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME define with a clean install function." - !endif - !endif - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}components - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsLeave_${MUI_UNIQUEID} - - Caption " " - - ComponentText "${MUI_COMPONENTSPAGE_TEXT_TOP}" "${MUI_COMPONENTSPAGE_TEXT_INSTTYPE}" "${MUI_COMPONENTSPAGE_TEXT_COMPLIST}" - - PageExEnd - - !insertmacro MUI_FUNCTION_COMPONENTSPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsLeave_${MUI_UNIQUEID} - - !undef MUI_COMPONENTSPAGE_TEXT_TOP - !undef MUI_COMPONENTSPAGE_TEXT_COMPLIST - !undef MUI_COMPONENTSPAGE_TEXT_INSTTYPE - !insertmacro MUI_UNSET MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE - !insertmacro MUI_UNSET MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO - - !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_REGISTRY_ROOT - !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_REGISTRY_KEY - !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME - !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT - !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY - !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME - - !verbose pop - -!macroend - -!macro MUI_PAGE_DIRECTORY - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}DIRECTORYPAGE - - !define /IfNDef MUI_DIRECTORYPAGE_TEXT_TOP "" - !define /IfNDef MUI_DIRECTORYPAGE_TEXT_DESTINATION "" - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}directory - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryLeave_${MUI_UNIQUEID} - - Caption " " - - DirText "${MUI_DIRECTORYPAGE_TEXT_TOP}" "${MUI_DIRECTORYPAGE_TEXT_DESTINATION}" - - !ifdef MUI_DIRECTORYPAGE_VARIABLE - DirVar "${MUI_DIRECTORYPAGE_VARIABLE}" - !endif - - !ifdef MUI_DIRECTORYPAGE_VERIFYONLEAVE - DirVerify leave - !endif - - PageExEnd - - !insertmacro MUI_FUNCTION_DIRECTORYPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryLeave_${MUI_UNIQUEID} - - !undef MUI_DIRECTORYPAGE_TEXT_TOP - !undef MUI_DIRECTORYPAGE_TEXT_DESTINATION - !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_BGCOLOR - !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_VARIABLE - !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_VERIFYONLEAVE - - !verbose pop - -!macroend - -!macro MUI_PAGE_STARTMENU ID VAR - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}STARTMENUPAGE - - !define /IfNDef MUI_STARTMENUPAGE_DEFAULTFOLDER "$(^Name)" - !define /IfNDef MUI_STARTMENUPAGE_TEXT_TOP "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_TOP)" - !define /IfNDef MUI_STARTMENUPAGE_TEXT_CHECKBOX "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_CHECKBOX)" - - !define MUI_STARTMENUPAGE_VARIABLE "${VAR}" - !define "MUI_STARTMENUPAGE_${ID}_VARIABLE" "${MUI_STARTMENUPAGE_VARIABLE}" - !define "MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME - !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" - - !ifndef MUI_STARTMENUPAGE_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For MUI_STARTMENUPAGE_REGISTRY_VALUENAME, the MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef MUI_STARTMENUPAGE_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define MUI_STARTMENUPAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For MUI_STARTMENUPAGE_REGISTRY_VALUENAME, the MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT" "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" - !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" - - !endif - - !ifdef UMUI_UNIQUEBGIMAGE | UMUI_PAGEBGIMAGE - !warning "The MUI_STARTMENU page does not work with the UMUI_UNIQUEBGIMAGE and UMUI_PAGEBGIMAGE defines. Use the UMUI_ALTERNATIVESTARTMENU page instead." - !endif - - !ifndef MUI_VAR_HWND - Var MUI_HWND - !define MUI_VAR_HWND - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro MUI_FUNCTION_STARTMENUPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuLeave_${MUI_UNIQUEID} - - !undef MUI_STARTMENUPAGE_VARIABLE - !undef MUI_STARTMENUPAGE_TEXT_TOP - !undef MUI_STARTMENUPAGE_TEXT_CHECKBOX - !undef MUI_STARTMENUPAGE_DEFAULTFOLDER - !insertmacro MUI_UNSET MUI_STARTMENUPAGE_NODISABLE - !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_ROOT - !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_KEY - !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_VALUENAME - !insertmacro MUI_UNSET MUI_STARTMENUPAGE_BGCOLOR - - !verbose pop - -!macroend - -!macro MUI_PAGE_INSTFILES - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INSTFILESPAGE - - !ifdef UMUI_INSTALLDIR_REGISTRY_VALUENAME - !ifndef UMUI_INSTALLDIR_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_INSTALLDIR_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_INSTALLDIR_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_INSTALLDIR_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}instfiles - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro MUI_FUNCTION_INSTFILESPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET MUI_INSTFILESPAGE_FINISHHEADER_TEXT - !insertmacro MUI_UNSET MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT - !insertmacro MUI_UNSET MUI_INSTFILESPAGE_ABORTWARNING_TEXT - !insertmacro MUI_UNSET MUI_INSTFILESPAGE_ABORTWARNING_SUBTEXT - - !verbose pop - -!macroend - -!macro MUI_PAGE_FINISH - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_BUTTON "$(MUI_BUTTONTEXT_FINISH)" - !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT_REBOOT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_REBOOT)" - !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT_REBOOTNOW "$(MUI_TEXT_FINISH_REBOOTNOW)" - !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT_REBOOTLATER "$(MUI_TEXT_FINISH_REBOOTLATER)" - !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_RUN_TEXT "$(MUI_TEXT_FINISH_RUN)" - !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_SHOWREADME_TEXT "$(MUI_TEXT_FINISH_SHOWREADME)" - - !define /IfNDef MUI_FINISHPAGE_LINK_COLOR "${UMUI_TEXT_LIGHTCOLOR}" - - !ifndef MUI_VAR_HWND - Var MUI_HWND - !define MUI_VAR_HWND - !endif - - !ifndef MUI_PAGE_UNINSTALLER - !ifndef MUI_FINISHPAGE_NOAUTOCLOSE - AutoCloseWindow true - !endif - !endif - - !ifdef MUI_FINISHPAGE_CANCEL_ENABLED - !ifndef MUI_VAR_NOABORTWARNING - !define MUI_VAR_NOABORTWARNING - Var MUI_NOABORTWARNING - !endif - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro MUI_FUNCTION_FINISHPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE - !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE_3LINES - !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT - !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_LARGE - !insertmacro MUI_UNSET MUI_FINISHPAGE_BUTTON - !insertmacro MUI_UNSET MUI_FINISHPAGE_CANCEL_ENABLED - !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOT - !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOTNOW - !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOTLATER - !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTLATER_DEFAULT - !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN - !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_TEXT - !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_PARAMETERS - !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_NOTCHECKED - !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_FUNCTION - !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME - !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_TEXT - !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_NOTCHECKED - !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_FUNCTION - !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK - !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_LOCATION - !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_COLOR - !insertmacro MUI_UNSET MUI_FINISHPAGE_NOREBOOTSUPPORT - - !insertmacro MUI_UNSET MUI_FINISHPAGE_CURFIELD_TOP - !insertmacro MUI_UNSET MUI_FINISHPAGE_CURFIELD_BOTTOM - - !verbose pop - -!macroend - -!macro MUI_UNPAGE_WELCOME - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro MUI_PAGE_WELCOME - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - -!macro MUI_UNPAGE_CONFIRM - - !verbose push - !verbose ${MUI_VERBOSE} - - !define /IfNDef MUI_UNINSTALLER - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef MUI_UNCONFIRMPAGE - - !define /IfNDef MUI_UNCONFIRMPAGE_TEXT_TOP "" - !define /IfNDef MUI_UNCONFIRMPAGE_TEXT_LOCATION "" - - PageEx un.uninstConfirm - - PageCallbacks un.mui.ConfirmPre_${MUI_UNIQUEID} un.mui.ConfirmShow_${MUI_UNIQUEID} un.mui.ConfirmLeave_${MUI_UNIQUEID} - - Caption " " - - UninstallText "${MUI_UNCONFIRMPAGE_TEXT_TOP}" "${MUI_UNCONFIRMPAGE_TEXT_LOCATION}" - - !ifdef MUI_UNCONFIRMPAGE_VARIABLE - DirVar "${MUI_UNCONFIRMPAGE_VARIABLE}" - !endif - - PageExEnd - - !insertmacro MUI_UNFUNCTION_CONFIRMPAGE un.mui.ConfirmPre_${MUI_UNIQUEID} un.mui.ConfirmShow_${MUI_UNIQUEID} un.mui.ConfirmLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET MUI_UNCONFIRMPAGE_TEXT_TOP - !insertmacro MUI_UNSET MUI_UNCONFIRMPAGE_TEXT_LOCATION - - !verbose pop - -!macroend - -!macro MUI_UNPAGE_LICENSE LICENSEDATA - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro MUI_PAGE_LICENSE "${LICENSEDATA}" - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - -!macro MUI_UNPAGE_COMPONENTS - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro MUI_PAGE_COMPONENTS - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - -!macro MUI_UNPAGE_DIRECTORY - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro MUI_PAGE_DIRECTORY - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - -!macro MUI_UNPAGE_INSTFILES - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro MUI_PAGE_INSTFILES - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - -!macro MUI_UNPAGE_FINISH - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro MUI_PAGE_FINISH - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - -;-------------------------------- -;PAGE FUNCTIONS - - -; TODO: Rewrite the INSTALLFLAGS Macros to be able to use conditions like: ~X|Y&~Z|~V&~W|~U meaning (~X)|(Y&~Z)|(~V&~W)|(U) - - -; Convert a string VALUE1|VALUE2|VALUE4 to a OR bit by bit VALUE7 integer. -; Convert a string VALUE1&VALUE2&VALUE4 to a OR bit by bit VALUE7 integer. -; Usage: -; !insertmacro UMUI_STR2INT string -; Pop $VAR <INT Value> -; IntOp $VAR $VAR ~ only to have a NAND bit by bit VALUE inteder. - -!macro UMUI_STR2INT VALUE - Push $0 ; The source - Push $1 ; The output - Push $2 ; Temporary char - Push $3 ; Temporary integer - - !define UMUI_UNIQUEIDSTR2INT ${__LINE__} - - StrCpy $0 ${VALUE} ; Initialise the source - StrCpy $1 0 ; Initialise the output - StrCpy $3 0 ; Initialise the temporary integer - - loop${UMUI_UNIQUEIDSTR2INT}: - StrCpy $2 $0 1 ; Get the next source char - StrCmp $2 "" done${UMUI_UNIQUEIDSTR2INT} ; Abort when none left - StrCpy $0 $0 "" 1 ; Remove it from the source - StrCmp $2 "|" +2 +1 ; | OR Bit by bit - StrCmp $2 "&" 0 +4 ; & AND Bit by bit - IntOp $1 $1 | $3 - StrCpy $3 0 - Goto loop${UMUI_UNIQUEIDSTR2INT} - IntOp $3 $3 * 10 - IntOp $3 $3 + $2 - Goto loop${UMUI_UNIQUEIDSTR2INT} - - done${UMUI_UNIQUEIDSTR2INT}: - IntOp $1 $1 | $3 - - !undef UMUI_UNIQUEIDSTR2INT - - StrCpy $0 $1 - Pop $3 - Pop $2 - Pop $1 - Exch $0 -!macroend - - - - -!macro UMUI_ABORT_IF_INSTALLFLAG_IS VALUE - Push $0 - - ; convert INT|INT|INT string into an integer value - !ifndef UMUI_ABORT_IF_INSTALLFLAG_IS - !insertmacro UMUI_STR2INT ${VALUE} - !else - !insertmacro UMUI_STR2INT ${UMUI_ABORT_IF_INSTALLFLAG_IS} - !undef UMUI_ABORT_IF_INSTALLFLAG_IS - !endif - - Pop $0 - - StrCmp $0 "none" +5 0 - IntOp $0 $UMUI_INSTALLFLAG & $0 - IntCmp $0 0 +3 0 0 - Pop $0 - Abort - - Pop $0 -!macroend - -!macro UMUI_ABORT_IF_INSTALLFLAG_ISNOT VALUE - Push $0 - Push $1 - - ; convert INT|INT|INT string into an integer value - !ifndef UMUI_ABORT_IF_INSTALLFLAG_ISNOT - !insertmacro UMUI_STR2INT ${VALUE} - !else - !insertmacro UMUI_STR2INT ${UMUI_ABORT_IF_INSTALLFLAG_ISNOT} - !undef UMUI_ABORT_IF_INSTALLFLAG_ISNOT - !endif - - Pop $0 - - StrCmp $0 "none" +5 0 - - IntOp $0 $0 ~ - IntOp $1 $UMUI_INSTALLFLAG | $0 - IntCmp $1 $0 0 +4 +4 - Pop $1 - Pop $0 - Abort - - Pop $1 - Pop $0 -!macroend - - - -!macro UMUI_IF_INSTALLFLAG_ISNOT VALUE - - Push $0 - - !ifndef UMUI_POPVAR1 - Push $1 - !define UMUI_POPVAR1 - !endif - - !ifdef UMUI_UNIQUEIDIS - !define UMUI_UNIQUEIDISIMB ${__LINE__} - !else - !define UMUI_UNIQUEIDIS ${__LINE__} - !endif - - !insertmacro UMUI_STR2INT ${VALUE} - - Pop $0 - - !ifdef UMUI_UNIQUEIDISIMB - - StrCmp $0 "none" endpop${UMUI_UNIQUEIDISIMB} 0 - - IntOp $0 $0 ~ - IntOp $1 $UMUI_INSTALLFLAG | $0 - - IntCmp $1 $0 0 endpop${UMUI_UNIQUEIDISIMB} endpop${UMUI_UNIQUEIDISIMB} - - !else - - StrCmp $0 "none" endpop${UMUI_UNIQUEIDIS} 0 - - IntOp $0 $0 ~ - IntOp $1 $UMUI_INSTALLFLAG | $0 - - IntCmp $1 $0 0 endpop${UMUI_UNIQUEIDIS} endpop${UMUI_UNIQUEIDIS} - - !endif - - Pop $1 - Pop $0 - -!macroend - - -!macro UMUI_IF_INSTALLFLAG_IS VALUE - - Push $0 - - !ifdef UMUI_UNIQUEIDIS - !define UMUI_UNIQUEIDISIMB ${__LINE__} - !else - !define UMUI_UNIQUEIDIS ${__LINE__} - !endif - - !insertmacro UMUI_STR2INT ${VALUE} - - Pop $0 - - !ifdef UMUI_UNIQUEIDISIMB - - StrCmp $0 "none" endpop${UMUI_UNIQUEIDISIMB} 0 - - IntOp $0 $UMUI_INSTALLFLAG & $0 - IntCmp $0 0 endpop${UMUI_UNIQUEIDISIMB} 0 0 - - !else - - StrCmp $0 "none" endpop${UMUI_UNIQUEIDIS} 0 - - IntOp $0 $UMUI_INSTALLFLAG & $0 - IntCmp $0 0 endpop${UMUI_UNIQUEIDIS} 0 0 - - !endif - - Pop $0 - -!macroend - - -!macro UMUI_ENDIF_INSTALLFLAG - - !ifdef UMUI_UNIQUEIDISIMB - - Goto end${UMUI_UNIQUEIDISIMB} - - endpop${UMUI_UNIQUEIDISIMB}: - !ifdef UMUI_POPVAR1 - Pop $1 - !undef UMUI_POPVAR1 - !endif -; Pop $0 ; Cause an invalide opcode - - end${UMUI_UNIQUEIDISIMB}: - - !undef UMUI_UNIQUEIDISIMB - - !else - - Goto end${UMUI_UNIQUEIDIS} - - endpop${UMUI_UNIQUEIDIS}: - !ifdef UMUI_POPVAR1 - Pop $1 - !undef UMUI_POPVAR1 - !endif - Pop $0 - - end${UMUI_UNIQUEIDIS}: - - !undef UMUI_UNIQUEIDIS - - !endif - -!macroend - - -!macro UMUI_SET_INSTALLFLAG VALUE - Push $0 - - ; convert INT|INT|INT string into an integer value - !insertmacro UMUI_STR2INT ${VALUE} - Pop $0 - - IntOp $UMUI_INSTALLFLAG $UMUI_INSTALLFLAG | $0 - - Pop $0 -!macroend - -!macro UMUI_UNSET_INSTALLFLAG VALUE - Push $0 - - ; convert INT|INT|INT string into an integer value - !insertmacro UMUI_STR2INT ${VALUE} - Pop $0 - - IntOp $0 $0 ~ - IntOp $UMUI_INSTALLFLAG $UMUI_INSTALLFLAG & $0 - - Pop $0 -!macroend - - - - -!macro UMUI_UMUI_HIDEBACKBUTTON - - !ifdef UMUI_HIDEFIRSTBACKBUTTON - GetDlgItem $MUI_TEMP1 $HWNDPARENT 3 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - !else - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_HIDEBACKBUTTON} - GetDlgItem $MUI_TEMP1 $HWNDPARENT 3 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - !insertmacro UMUI_ENDIF_INSTALLFLAG - !endif - - !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} - - !ifndef UMUI_HIDENEXTBACKBUTTON - !insertmacro MUI_UNSET UMUI_HIDEFIRSTBACKBUTTON - !else - !define /IfNDef UMUI_HIDEFIRSTBACKBUTTON - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} - !undef UMUI_HIDENEXTBACKBUTTON - !endif - -!macroend - - -!macro MUI_PAGE_FUNCTION_CUSTOM TYPE - - !ifdef MUI_PAGE_CUSTOMFUNCTION_${TYPE} - Call "${MUI_PAGE_CUSTOMFUNCTION_${TYPE}}" - !undef MUI_PAGE_CUSTOMFUNCTION_${TYPE} - !endif - -!macroend - -!macro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM - - !ifdef MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT - Call "${MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT}" - !undef MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT - !endif - -!macroend - - - -!macro MUI_FUNCTION_WELCOMEPAGE PRE LEAVE - - !ifndef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE - !define UMUI_INTERNAL_WNUMFIELDS 2 - !define UMUI_INTERNAL_WFIELDTITLE 1 - !define UMUI_INTERNAL_WFIELDTEXT 2 - !define UMUI_INTERNAL_WIDTITLE 1200 - !define UMUI_INTERNAL_WIDTEXT 1201 - !else - !define UMUI_INTERNAL_WNUMFIELDS 3 - !define UMUI_INTERNAL_WFIELDTITLE 2 - !define UMUI_INTERNAL_WFIELDTEXT 3 - !define UMUI_INTERNAL_WIDTITLE 1201 - !define UMUI_INTERNAL_WIDTEXT 1202 - !endif - - Function "${PRE}" - - ; IF setup cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} - - !insertmacro MUI_HEADER_TEXT_PAGE "" "" - - !insertmacro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NumFields" "${UMUI_INTERNAL_WNUMFIELDS}" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NextButtonText" "" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "CancelEnabled" "" - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTITLE}" "Text" "MUI_WELCOMEPAGE_TITLE" - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef MUI_WELCOMEPAGE_TITLE_3LINES - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTITLE}" "Bottom" "55" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTEXT}" "Top" "62" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTITLE}" "Bottom" "62" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTEXT}" "Top" "69" - !endif - !endif - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTEXT}" "Bottom" "-1" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTEXT}" "Text" "MUI_WELCOMEPAGE_TEXT" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - LockWindow on - -!ifdef USE_MUIEx -;----------------- - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 - ShowWindow $MUI_TEMP1 ${SW_HIDE} -!endif -;----------------- - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - LockWindow off - - - !insertmacro INSTALLOPTIONS_INITDIALOG "ioSpecial.ini" - Pop $MUI_HWND - - !insertmacro UMUI_WFAPAGEBGTRANSPARENT_INIT $MUI_HWND - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_WIDTITLE} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - CreateFont $MUI_TEMP2 "$(^Font)" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" - SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_WIDTEXT} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - - !else - - ;alternate page - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_WIDTITLE} - CreateFont $MUI_TEMP2 "MS Sans Serif" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" - SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 $MUI_TEMP2 - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_WIDTEXT} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - - !endif - - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 3 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_SHOW - - LockWindow on - -!ifdef USE_MUIEx -;----------------- - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} -!endif -;----------------- - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - LockWindow off - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - FunctionEnd - - !undef UMUI_INTERNAL_WNUMFIELDS - !undef UMUI_INTERNAL_WFIELDTITLE - !undef UMUI_INTERNAL_WFIELDTEXT - !undef UMUI_INTERNAL_WIDTITLE - !undef UMUI_INTERNAL_WIDTEXT - -!macroend - - - -!macro MUI_FUNCTION_LICENSEPAGE PRE SHOW LEAVE - - Function "${PRE}" - - ; IF setup cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_LICENSE_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_LICENSE_SUBTITLE) - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${SHOW}" - - !insertmacro UMUI_UMUI_HIDEBACKBUTTON - - !insertmacro UMUI_PAGEBGTRANSPARENT_INIT - - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1040 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1036 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1006 - - !if "${UMUI_XPSTYLE}" == "On" - !insertmacro UMUI_PAGECTL_INIT 1034 - !insertmacro UMUI_PAGECTL_INIT 1035 - !else - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1034 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1035 - !endif - - !insertmacro MUI_INNERDIALOG_TEXT 1040 "${MUI_LICENSEPAGE_TEXT_TOP}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - FunctionEnd - -!macroend - - -!macro MUI_FUNCTION_COMPONENTSPAGE PRE SHOW LEAVE - - Function "${PRE}" - - !ifdef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME | UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME - - !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_MINIMAL}&${UMUI_STANDARD}&${UMUI_COMPLETE}&${UMUI_COMPONENTSSET} - - !ifdef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME - - ReadRegStr $MUI_TEMP1 ${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" - StrCmp $MUI_TEMP1 "" endis - - ;search the ID of the saved InstType - ClearErrors - StrCpy $MUI_TEMP2 0 - loopis: - InstTypeGetText $MUI_TEMP2 $UMUI_TEMP3 - IfErrors endis - StrCmp $UMUI_TEMP3 $MUI_TEMP1 foundis - IntOp $MUI_TEMP2 $MUI_TEMP2 + 1 - Goto loopis - foundis: - SetCurInstType $MUI_TEMP2 - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_COMPONENTSSET} - endis: - ClearErrors - - ; IF page skipped save - GetCurInstType $MUI_TEMP1 - InstTypeGetText $MUI_TEMP1 $MUI_TEMP2 - StrCmp $MUI_TEMP1 "32" 0 +2 - StrCpy $MUI_TEMP2 "" - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" $MUI_TEMP2 - - !endif - - !ifdef UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME - - !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_COMPONENTSSET} - - ReadRegStr $MUI_TEMP1 ${UMUI_COMPONENTSPAGE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" - StrCmp $MUI_TEMP1 "" End - ClearErrors - Call "${MUI_PAGE_UNINSTALLER_FUNCPREFIX}umui_components" - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_COMPONENTSSET} - End: - ClearErrors - - !insertmacro UMUI_ENDIF_INSTALLFLAG - - ; IF page skipped save - StrCpy $MUI_TEMP1 "save" - !ifdef UMUI_PREUNINSTALL_FUNCTION - StrCpy $MUI_TEMP2 "" - !else - ReadRegStr $MUI_TEMP2 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" - ClearErrors - !endif - Call "${MUI_PAGE_UNINSTALLER_FUNCPREFIX}umui_components" - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_COMPONENTSPAGE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" $MUI_TEMP2 - - !endif - - !insertmacro UMUI_ENDIF_INSTALLFLAG - - !endif - - ; IF setup cancelled or setuptype choosen - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MINIMAL}|${UMUI_STANDARD}|${UMUI_COMPLETE}|${UMUI_REPAIR}|${UMUI_UPDATE} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_COMPONENTS_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_COMPONENTS_SUBTITLE) - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${SHOW}" - - !insertmacro UMUI_UMUI_HIDEBACKBUTTON - - !insertmacro UMUI_PAGEBGTRANSPARENT_INIT - !insertmacro UMUI_PAGEINPUTCTL_INIT 1017 - !insertmacro UMUI_PAGEINPUTCTL_INIT 1032 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1022 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1021 - !insertmacro UMUI_PAGECTL_INIT 1023 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1006 - !insertmacro UMUI_PAGECTL_INIT 1043 -; !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1043 - !insertmacro UMUI_PAGECTLLIGHT_INIT 1042 - - !insertmacro MUI_INNERDIALOG_TEXT 1042 "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE}" - - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043 - -!ifndef USE_MUIEx -;---------------- - !ifndef UMUI_ENABLE_DESCRIPTION_TEXT - EnableWindow $MUI_TEMP1 0 - !else - !insertmacro UMUI_PAGECTLLIGHT_INIT 1043 -; !insertmacro UMUI_PAGECTLLIGHTTRANSPARENT_INIT 1043 - EnableWindow $MUI_TEMP1 1 - !endif -!else -;----- - EnableWindow $MUI_TEMP1 0 -!endif -;----- - - !insertmacro MUI_INNERDIALOG_TEXT 1043 "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO}" - StrCpy $MUI_TEXT "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO}" - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - FunctionEnd - - Function "${LEAVE}" - - !ifdef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME - - GetCurInstType $MUI_TEMP1 - InstTypeGetText $MUI_TEMP1 $MUI_TEMP2 - StrCmp $MUI_TEMP1 "32" 0 +2 - StrCpy $MUI_TEMP2 "" - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" $MUI_TEMP2 - - !endif - - !ifdef UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME - - StrCpy $MUI_TEMP1 "save" - !ifdef UMUI_PREUNINSTALL_FUNCTION - StrCpy $MUI_TEMP2 "" - !else - ReadRegStr $MUI_TEMP2 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" - ClearErrors - !endif - - Call "${MUI_PAGE_UNINSTALLER_FUNCPREFIX}umui_components" - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_COMPONENTSPAGE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" $MUI_TEMP2 - - !endif - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - FunctionEnd - -!macroend - -!macro UMUI_DECLARECOMPONENTS_BEGIN - Function umui_components -!macroend - -!macro UMUI_DECLAREUNCOMPONENTS_BEGIN - Function un.umui_components -!macroend - -; TODO: Develop the version number comparison -!macro UMUI_COMPONENT SEC - - Push $0 ; len of "${SEC}=" - Push $1 ; temporary compare string - Push $2 ; characters to test - Push $3 ; Len to compare - Push $4 ; Counter - - StrCmp "$MUI_TEMP1" "save" 0 "read${SEC}" - ;Save choosen components - SectionGetFlags "${${SEC}}" "$UMUI_TEMP3" - IntOp "$UMUI_TEMP3" "$UMUI_TEMP3" & 1 ; 1 is ${SF_SELECTED} - StrCmp "$UMUI_TEMP3" 1 0 "end${SEC}" - - ;delete "${SEC}=*|" from $MUI_TEMP2 if already in - StrLen $0 "${SEC}=" - StrCpy $2 "$MUI_TEMP2" - StrCpy $4 0 - - "loops${SEC}:" - StrCpy $1 $2 $0 - StrLen $3 $2 - IntCmp $3 $0 0 "notfounds${SEC}" 0 - StrCmp "$1" "${SEC}=" "founds${SEC}" - StrCpy $2 $2 "" 1 - IntOp $4 $4 + 1 - Goto "loops${SEC}" - "founds${SEC}:" - ;$0 the temporary new $MUI_TEMP2 string - StrCpy $0 "$MUI_TEMP2" $4 - "loopsc${SEC}:" - StrCpy $1 $2 1 - StrCmp $1 "|" "foundsc${SEC}" - StrCpy $2 $2 "" 1 - Goto "loopsc${SEC}" - "foundsc${SEC}:" - StrCpy $2 $2 "" 1 - StrCpy "$MUI_TEMP2" "$0$2" - "notfounds${SEC}:" - !ifdef UMUI_COMPONENT_VERSION - StrCpy "$MUI_TEMP2" "$MUI_TEMP2${SEC}=${VER}|" - !else - StrCpy "$MUI_TEMP2" "$MUI_TEMP2${SEC}=|" - !endif - Goto "end${SEC}" - - ;Read choosen components - "read${SEC}:" - - StrLen $0 "${SEC}=" - StrCpy $2 "$MUI_TEMP1" - - "loop${SEC}:" - StrCpy $1 $2 $0 - StrLen $3 $2 - IntCmp $3 $0 0 "notfound${SEC}" 0 - StrCmp $1 "${SEC}=" "found${SEC}" - StrCpy $2 $2 "" 1 - Goto "loop${SEC}" - - "found${SEC}:" - ; select component - SectionGetFlags "${${SEC}}" $0 - IntOp $0 $0 | 1 ; 0x00000001 is ${SF_SELECTED} - SectionSetFlags "${${SEC}}" $0 - - Goto "end${SEC}" - "notfound${SEC}:" - ; unselect component - SectionGetFlags "${${SEC}}" $0 - IntOp $0 $0 & 0xFFFFFFFE ; 0xFFFFFFFE is ${SECTION_OFF} - SectionSetFlags "${${SEC}}" $0 - - "end${SEC}:" - - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Pop $0 - - !insertmacro MUI_UNSET UMUI_COMPONENT_VERSION - -!macroend - -!macro UMUI_DECLARECOMPONENTS_END - FunctionEnd -!macroend - -!macro UMUI_DECLAREUNCOMPONENTS_END - FunctionEnd -!macroend - - -!macro MUI_FUNCTION_DIRECTORYPAGE PRE SHOW LEAVE - - Function "${PRE}" - - ; IF setup cancelled or setuptype choosen - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MINIMAL}|${UMUI_STANDARD}|${UMUI_COMPLETE}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_DIRECTORY_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_DIRECTORY_SUBTITLE) - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${SHOW}" - - !insertmacro UMUI_UMUI_HIDEBACKBUTTON - - !insertmacro UMUI_PAGEBGTRANSPARENT_INIT - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1001 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1008 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1006 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1023 - !insertmacro UMUI_PAGECTL_INIT 1024 - !insertmacro UMUI_PAGECTLLIGHT_INIT 1020 - - !ifdef MUI_DIRECTORYPAGE_BGCOLOR - !insertmacro MUI_DEFAULT MUI_DIRECTORYPAGE_TEXTCOLOR "" - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1019 - SetCtlColors $MUI_TEMP1 "${MUI_DIRECTORYPAGE_TEXTCOLOR}" "${MUI_DIRECTORYPAGE_BGCOLOR}" - !else - !insertmacro UMUI_PAGEINPUTCTL_INIT 1019 - !endif - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - FunctionEnd - -!macroend - -!macro MUI_FUNCTION_STARTMENUPAGE PRE LEAVE - - Function "${PRE}" - - !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME - StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 +4 - - ReadRegStr $MUI_TEMP1 ${MUI_STARTMENUPAGE_REGISTRY_ROOT} "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" - - StrCmp $MUI_TEMP1 "" +2 - StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" $MUI_TEMP1 - - !endif - - ; IF setup cancelled or steuptype complete - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MINIMAL}|${UMUI_STANDARD}|${UMUI_COMPLETE}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} - - !insertmacro UMUI_UMUI_HIDEBACKBUTTON - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE) - - StrCmp $(^RTL) 0 mui.startmenu_nortl - !ifndef MUI_STARTMENUPAGE_NODISABLE - StartMenu::Init /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - !else - StartMenu::Init /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - !endif - Goto mui.startmenu_initdone - mui.startmenu_nortl: - !ifndef MUI_STARTMENUPAGE_NODISABLE - StartMenu::Init /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - !else - StartMenu::Init /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - !endif - mui.startmenu_initdone: - - Pop $MUI_HWND - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - -!ifndef USE_MUIEx -;----------------- - - !insertmacro UMUI_IOPAGEBG_INIT $MUI_HWND - - GetDlgItem $MUI_TEMP1 $MUI_HWND 1003 - !insertmacro UMUI_IOPAGECTL_INIT $MUI_TEMP1 - GetDlgItem $MUI_TEMP1 $MUI_HWND 1005 - !insertmacro UMUI_IOPAGECTL_INIT $MUI_TEMP1 - -!endif -;----- - - !ifdef MUI_STARTMENUPAGE_BGCOLOR - !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_TEXTCOLOR "" - GetDlgItem $MUI_TEMP1 $MUI_HWND 1002 - SetCtlColors $MUI_TEMP1 "${MUI_STARTMENUPAGE_TEXTCOLOR}" "${MUI_STARTMENUPAGE_BGCOLOR}" - GetDlgItem $MUI_TEMP1 $MUI_HWND 1004 - SetCtlColors $MUI_TEMP1 "${MUI_STARTMENUPAGE_TEXTCOLOR}" "${MUI_STARTMENUPAGE_BGCOLOR}" - !else - GetDlgItem $MUI_TEMP1 $MUI_HWND 1002 - !insertmacro UMUI_IOPAGEINPUTCTL_INIT $MUI_TEMP1 - GetDlgItem $MUI_TEMP1 $MUI_HWND 1004 - !insertmacro UMUI_IOPAGEINPUTCTL_INIT $MUI_TEMP1 - !endif - - StartMenu::Show - !insertmacro MUI_PAGE_FUNCTION_CUSTOM DESTROYED - - Pop $MUI_TEMP1 - StrCmp $MUI_TEMP1 "success" 0 +2 - Pop "${MUI_STARTMENUPAGE_VARIABLE}" - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${MUI_STARTMENUPAGE_REGISTRY_ROOT} "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" "${MUI_STARTMENUPAGE_VARIABLE}" - !endif - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - FunctionEnd - -!macroend - - -!macro MUI_FUNCTION_INSTFILESPAGE PRE SHOW LEAVE - - !ifdef UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON - !ifndef UMUI_NB_CALL_FUNCTION_CANCEL_DEFINED - !define UMUI_NB_CALL_FUNCTION_CANCEL_DEFINED - Var UMUI_NB_CALL_FUNCTION_CANCEL - !endif - !endif - - Function "${PRE}" - - ;IF setup is cancelled - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - SetAutoClose true - !insertmacro UMUI_ENDIF_INSTALLFLAG - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_SUBTITLE) - - !ifdef UMUI_INSTALLDIR_REGISTRY_VALUENAME - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_INSTALLDIR_REGISTRY_ROOT} "${UMUI_INSTALLDIR_REGISTRY_KEY}" "${UMUI_INSTALLDIR_REGISTRY_VALUENAME}" $INSTDIR - !endif - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${SHOW}" - - !insertmacro UMUI_UMUI_HIDEBACKBUTTON - - !insertmacro UMUI_PAGEBGTRANSPARENT_INIT - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1027 - !insertmacro UMUI_PAGECTL_INIT 1006 - !insertmacro UMUI_PAGECTLLIGHT_INIT 1004 - - !ifdef UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON - StrCpy $UMUI_NB_CALL_FUNCTION_CANCEL 0 - GetDlgItem $MUI_TEMP1 $HWNDPARENT 2 - EnableWindow $MUI_TEMP1 1 - !endif - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - FunctionEnd - - Function "${LEAVE}" - - IfAbort 0 noabort - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_CANCELLED} - noabort: - - !ifdef UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - StrCmp $UMUI_NB_CALL_FUNCTION_CANCEL 0 0 +3 - StrCpy $UMUI_NB_CALL_FUNCTION_CANCEL 1 - Call ${UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON} - !insertmacro UMUI_ENDIF_INSTALLFLAG - !endif - - !insertmacro MUI_UNSET UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - !insertmacro UMUI_ADDSHELLVARCONTEXTTOSAVETOREGISTRY - - ; Save paths - !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} - StrCmp ${MUI_PAGE_UNINSTALLER_PREFIX} "" 0 endPathSave - !insertmacro UMUI_PATH_SAVE - endPathSave: - !insertmacro UMUI_ENDIF_INSTALLFLAG - - ;Save all parameters - !insertmacro UMUI_SAVEPARAMSTOREGISTRY - - !ifdef MUI_UNFINISHPAGE_NOAUTOCLOSE - !insertmacro MUI_ENDHEADER - !endif - - FunctionEnd - -!ifndef USE_MUIEx -;----------------- - - ;This is a workaround for the background of the progress bar that wasn't drawn properly with background image - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - !ifndef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}SECTION_WORKAROUND_INSERTED - !define UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}SECTION_WORKAROUND_INSERTED - - Section "${MUI_PAGE_UNINSTALLER_FUNCPREFIX}" - SetDetailsPrint none - - FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1004 - - System::Call "user32::InvalidateRect(i,i,i)i ($MUI_TEMP1, 0, 1)" - - SetDetailsPrint both - SectionEnd - - !endif - !endif - -!endif -;----------------- - - !ifndef MUI_UNINSTALLER - !ifdef UMUI_PREUNINSTALL_FUNCTION - - !ifndef UMUI_SECTION_PREUNINSTALL - !define UMUI_SECTION_PREUNINSTALL - - Section "" - ClearErrors - IfFileExists $INSTDIR 0 end - - Call "${UMUI_PREUNINSTALL_FUNCTION}" - - end: - ClearErrors - SectionEnd - - !endif - - !endif - !endif - -!macroend - -!macro MUI_FUNCTION_FINISHPAGE PRE LEAVE - - !ifndef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE - !define UMUI_INTERNAL_FNUMFIELDS_3ADDITIONALCONTROLS 5 - !define UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS 4 - !define UMUI_INTERNAL_FNUMFIELDS_1ADDITIONALCONTROLS 3 - !define UMUI_INTERNAL_FIELDTITLE 1 - !define UMUI_INTERNAL_FIELDTEXT 2 - !define UMUI_INTERNAL_FIELDTHIRD 3 - !define UMUI_INTERNAL_FIELDFOURTH 4 - !define UMUI_INTERNAL_FIELDFIFTH 5 - !define UMUI_INTERNAL_FIDTITLE 1200 - !define UMUI_INTERNAL_FIDTEXT 1201 - !define UMUI_INTERNAL_FIDTHIRD 1202 - !define UMUI_INTERNAL_FIDFOURTH 1203 - !define UMUI_INTERNAL_FIDFIFTH 1204 - !define UMUI_INTERNAL_FPOSLINKLEFT 22 - !define UMUI_INTERNAL_FOPTIONCHECKLEFT 26 - !else - !define UMUI_INTERNAL_FNUMFIELDS_3ADDITIONALCONTROLS 6 - !define UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS 5 - !define UMUI_INTERNAL_FNUMFIELDS_1ADDITIONALCONTROLS 4 - !define UMUI_INTERNAL_FIELDTITLE 2 - !define UMUI_INTERNAL_FIELDTEXT 3 - !define UMUI_INTERNAL_FIELDTHIRD 4 - !define UMUI_INTERNAL_FIELDFOURTH 5 - !define UMUI_INTERNAL_FIELDFIFTH 6 - !define UMUI_INTERNAL_FIDTITLE 1201 - !define UMUI_INTERNAL_FIDTEXT 1202 - !define UMUI_INTERNAL_FIDTHIRD 1203 - !define UMUI_INTERNAL_FIDFOURTH 1204 - !define UMUI_INTERNAL_FIDFIFTH 1205 - !define UMUI_INTERNAL_FPOSLINKLEFT 130 - !define UMUI_INTERNAL_FOPTIONCHECKLEFT 134 - !endif - - Function "${PRE}" - - ; IF setup cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - - !insertmacro MUI_HEADER_TEXT_PAGE "" "" - - !insertmacro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM - - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NextButtonText" "${MUI_FINISHPAGE_BUTTON}" - - !ifdef MUI_FINISHPAGE_CANCEL_ENABLED - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "CancelEnabled" "1" - !endif - - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTITLE}" "Text" "MUI_FINISHPAGE_TITLE" - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef MUI_FINISHPAGE_TITLE_3LINES - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTITLE}" "Bottom" "38" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Top" "45" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTITLE}" "Bottom" "48" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Top" "55" - !endif - !endif - - !ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef MUI_FINISHPAGE_TITLE_3LINES - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "85" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "115" - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "95" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "125" - !endif - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "124" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "139" - !endif - !endif - !else - !ifndef MUI_FINISHPAGE_LINK - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "-1" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "-15" - !endif - !endif - - !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT - - IfRebootFlag 0 mui.finish_noreboot_init - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef MUI_FINISHPAGE_TITLE_3LINES - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "85" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "115" - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "95" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "125" - !endif - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "124" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "151" - !endif - !endif - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Text" "MUI_FINISHPAGE_TEXT_REBOOT" - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS}" - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Type" "RadioButton" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Text" "MUI_FINISHPAGE_TEXT_REBOOTNOW" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Left" "${UMUI_INTERNAL_FOPTIONCHECKLEFT}" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Right" "-15" - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef MUI_FINISHPAGE_TITLE_3LINES - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "90" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "100" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "120" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "130" - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "100" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "110" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "130" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "140" - !endif - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "129" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "139" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "159" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "169" - !endif - !endif - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Type" "RadioButton" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Text" "MUI_FINISHPAGE_TEXT_REBOOTLATER" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Left" "${UMUI_INTERNAL_FOPTIONCHECKLEFT}" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Right" "-15" - - !ifdef MUI_FINISHPAGE_REBOOTLATER_DEFAULT - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "State" "0" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "State" "1" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "State" "1" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "State" "0" - !endif - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef MUI_FINISHPAGE_TITLE_3LINES - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Top" "110" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Bottom" "120" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Top" "110" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Bottom" "120" - !endif - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Top" "149" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Bottom" "159" - !endif - - Goto mui.finish_load - - mui.finish_noreboot_init: - - !endif - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Text" "MUI_FINISHPAGE_TEXT" - - !ifdef MUI_FINISHPAGE_RUN - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Type" "CheckBox" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Text" "MUI_FINISHPAGE_RUN_TEXT" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Left" "${UMUI_INTERNAL_FOPTIONCHECKLEFT}" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Right" "-15" - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef MUI_FINISHPAGE_TITLE_3LINES - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "90" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "100" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "120" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "130" - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "100" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "110" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "130" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "140" - !endif - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "129" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "139" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "139" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "149" - !endif - !endif - - !ifndef MUI_FINISHPAGE_RUN_NOTCHECKED - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "State" "1" - !endif - - !endif - - - !ifdef MUI_FINISHPAGE_SHOWREADME - - !ifdef MUI_FINISHPAGE_CURFIELD_NO - !undef MUI_FINISHPAGE_CURFIELD_NO - !endif - - !ifndef MUI_FINISHPAGE_RUN - !define MUI_FINISHPAGE_CURFIELD_NO ${UMUI_INTERNAL_FIELDTHIRD} - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef MUI_FINISHPAGE_TITLE_3LINES - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !define MUI_FINISHPAGE_CURFIELD_TOP 90 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 100 - !else - !define MUI_FINISHPAGE_CURFIELD_TOP 120 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 130 - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !define MUI_FINISHPAGE_CURFIELD_TOP 100 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 110 - !else - !define MUI_FINISHPAGE_CURFIELD_TOP 130 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 140 - !endif - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !define MUI_FINISHPAGE_CURFIELD_TOP 144 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 159 - !else - !define MUI_FINISHPAGE_CURFIELD_TOP 174 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 189 - !endif - !endif - ; finishpagerun - !else - !define MUI_FINISHPAGE_CURFIELD_NO ${UMUI_INTERNAL_FIELDFOURTH} - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef MUI_FINISHPAGE_TITLE_3LINES - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !define MUI_FINISHPAGE_CURFIELD_TOP 110 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 120 - !else - !define MUI_FINISHPAGE_CURFIELD_TOP 140 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 150 - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !define MUI_FINISHPAGE_CURFIELD_TOP 120 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 130 - !else - !define MUI_FINISHPAGE_CURFIELD_TOP 150 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 160 - !endif - !endif - !else - !ifndef MUI_FINISHPAGE_TEXT_LARGE - !define MUI_FINISHPAGE_CURFIELD_TOP 150 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 160 - !else - !define MUI_FINISHPAGE_CURFIELD_TOP 160 - !define MUI_FINISHPAGE_CURFIELD_BOTTOM 170 - !endif - !endif - !endif - - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Type" "CheckBox" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Text" "MUI_FINISHPAGE_SHOWREADME_TEXT" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Left" "${UMUI_INTERNAL_FOPTIONCHECKLEFT}" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Right" "-15" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Top" "${MUI_FINISHPAGE_CURFIELD_TOP}" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Bottom" "${MUI_FINISHPAGE_CURFIELD_BOTTOM}" - !ifndef MUI_FINISHPAGE_SHOWREADME_NOTCHECKED - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "State" "1" - !endif - - !endif - - !ifdef MUI_FINISHPAGE_LINK - - !ifdef MUI_FINISHPAGE_CURFIELD_NO - !undef MUI_FINISHPAGE_CURFIELD_NO - !endif - - !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME - !define MUI_FINISHPAGE_CURFIELD_NO ${UMUI_INTERNAL_FIELDFIFTH} - !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME - !define MUI_FINISHPAGE_CURFIELD_NO ${UMUI_INTERNAL_FIELDFOURTH} - !else - !define MUI_FINISHPAGE_CURFIELD_NO ${UMUI_INTERNAL_FIELDTHIRD} - !endif - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Type" "Link" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Text" "MUI_FINISHPAGE_LINK" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Left" "${UMUI_INTERNAL_FPOSLINKLEFT}" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Right" "-15" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Top" "-14" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Bottom" "-5" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "State" "MUI_FINISHPAGE_LINK_LOCATION" - - !endif - - - !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME & MUI_FINISHPAGE_LINK - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_3ADDITIONALCONTROLS}" - !else ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS}" - !else ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_LINK - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS}" - !else ifdef MUI_FINISHPAGE_SHOWREADME & MUI_FINISHPAGE_LINK - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS}" - !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME | MUI_FINISHPAGE_LINK - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_1ADDITIONALCONTROLS}" - !endif - - - !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT - mui.finish_load: - !endif - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - LockWindow on - -!ifdef USE_MUIEx -;----------------- - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 - ShowWindow $MUI_TEMP1 ${SW_HIDE} -!endif -;----------------- - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - LockWindow off - - - !insertmacro INSTALLOPTIONS_INITDIALOG "ioSpecial.ini" - Pop $MUI_HWND - - !insertmacro UMUI_WFAPAGEBGTRANSPARENT_INIT $MUI_HWND - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTITLE} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - CreateFont $MUI_TEMP2 "$(^Font)" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" - SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTEXT} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - - !else - - ;alternate page - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTITLE} - CreateFont $MUI_TEMP2 "MS Sans Serif" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" - SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 $MUI_TEMP2 - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTEXT} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - - !endif - - - !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT - - IfRebootFlag 0 mui.finish_noreboot_show - - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFOURTH} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - - Goto mui.finish_show - - mui.finish_noreboot_show: - - !endif - - !ifdef MUI_FINISHPAGE_RUN - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - !endif - - !ifdef MUI_FINISHPAGE_SHOWREADME - !ifndef MUI_FINISHPAGE_RUN - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} - !else - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFOURTH} - !endif - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - !endif - - !ifdef MUI_FINISHPAGE_LINK - !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFIFTH} - !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFOURTH} - !else - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} - !endif - - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - SetCtlColors $MUI_TEMP1 "${MUI_FINISHPAGE_LINK_COLOR}" "transparent" - !else - SetCtlColors $MUI_TEMP1 "${MUI_FINISHPAGE_LINK_COLOR}" "${MUI_BGCOLOR}" - !endif - - !endif - - - !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT - mui.finish_show: - !endif - - !if "${UMUI_XPSTYLE}" == "On" - !ifndef MUI_FORCECLASSICCONTROLS - ${If} ${IsHighContrastModeActive} - !endif - ; SetCtlColors does not change the check/radio text color (bug #443) - !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} - System::Call 'UXTHEME::SetWindowTheme(p$MUI_TEMP1,w" ",w" ")' - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFOURTH} - System::Call 'UXTHEME::SetWindowTheme(p$MUI_TEMP1,w" ",w" ")' - !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} - System::Call 'UXTHEME::SetWindowTheme(p$MUI_TEMP1,w" ",w" ")' - !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFOURTH} - System::Call 'UXTHEME::SetWindowTheme(p$MUI_TEMP1,w" ",w" ")' - !endif - !endif - !ifndef MUI_FORCECLASSICCONTROLS - ${EndIf} - !endif - !endif - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 3 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem $MUI_TEMP1 $HWNDPARENT 2 - EnableWindow $MUI_TEMP1 0 - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !ifdef MUI_FINISHPAGE_CANCEL_ENABLED - StrCpy $MUI_NOABORTWARNING "1" - !endif - - !insertmacro INSTALLOPTIONS_SHOW - - !ifdef MUI_FINISHPAGE_CANCEL_ENABLED - StrCpy $MUI_NOABORTWARNING "" - !endif - - LockWindow on - -!ifdef USE_MUIEx -;----------------- - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} -!endif -;----------------- - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - LockWindow off - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT - - IfRebootFlag "" mui.finish_noreboot_end - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "State" - - StrCmp $MUI_TEMP1 "1" 0 +2 - Reboot - - Return - - mui.finish_noreboot_end: - - !endif - - !ifdef MUI_FINISHPAGE_RUN - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "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: - - !endif - - !ifdef MUI_FINISHPAGE_SHOWREADME - - !ifndef MUI_FINISHPAGE_RUN - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "State" - !else - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "State" - !endif - - StrCmp $MUI_TEMP1 "1" 0 mui.finish_noshowreadme - !ifndef MUI_FINISHPAGE_SHOWREADME_FUNCTION - ExecShell "open" "${MUI_FINISHPAGE_SHOWREADME}" - !else - Call "${MUI_FINISHPAGE_SHOWREADME_FUNCTION}" - !endif - - mui.finish_noshowreadme: - - !endif - - FunctionEnd - - !undef UMUI_INTERNAL_FNUMFIELDS_3ADDITIONALCONTROLS - !undef UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS - !undef UMUI_INTERNAL_FNUMFIELDS_1ADDITIONALCONTROLS - !undef UMUI_INTERNAL_FIELDTITLE - !undef UMUI_INTERNAL_FIELDTEXT - !undef UMUI_INTERNAL_FIELDTHIRD - !undef UMUI_INTERNAL_FIELDFOURTH - !undef UMUI_INTERNAL_FIELDFIFTH - !undef UMUI_INTERNAL_FIDTITLE - !undef UMUI_INTERNAL_FIDTEXT - !undef UMUI_INTERNAL_FIDTHIRD - !undef UMUI_INTERNAL_FIDFOURTH - !undef UMUI_INTERNAL_FIDFIFTH - !undef UMUI_INTERNAL_FPOSLINKLEFT - !undef UMUI_INTERNAL_FOPTIONCHECKLEFT - -!macroend - -!macro MUI_UNFUNCTION_CONFIRMPAGE PRE SHOW LEAVE - - Function "${PRE}" - - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_UNTEXT_CONFIRM_TITLE) $(MUI_UNTEXT_CONFIRM_SUBTITLE) - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${SHOW}" - - !insertmacro UMUI_PAGEBGTRANSPARENT_INIT - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1029 - !insertmacro UMUI_PAGECTLLIGHT_INIT 1000 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1006 - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - FunctionEnd - -!macroend - - - - -; ======================== -; New UltraModern page -; ======================== - - - -!macro UMUI_PAGE_MULTILANGUAGE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}MULTILANGUAGEPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MULTILANGUAGEPAGE_TITLE "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_MULTILANGUAGE_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MULTILANGUAGEPAGE_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_MULTILANGUAGE_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MULTILANGUAGEPAGE_LANGUAGE "$(UMUI_TEXT_MULTILANGUAGE_LANGUAGE)" - - !ifndef MUI_VAR_HWND - Var MUI_HWND - !define MUI_VAR_HWND - !endif - - !ifndef UMUI_VAR_LANGLIST - Var UMUI_LANGLIST - !define UMUI_VAR_LANGLIST - !endif - - !ifndef UMUI_VAR_UMUI_TEMP3 - Var UMUI_TEMP3 - !define UMUI_VAR_UMUI_TEMP3 - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.MultiLanguagePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.MultiLanguageLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro UMUI_FUNCTION_MULTILANGUAGEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.MultiLanguagePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.MultiLanguageLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET UMUI_MULTILANGUAGEPAGE_TITLE - !insertmacro MUI_UNSET UMUI_MULTILANGUAGEPAGE_TEXT - !insertmacro MUI_UNSET UMUI_MULTILANGUAGEPAGE_LANGUAGE - !insertmacro MUI_UNSET UMUI_MULTILANGUAGEPAGE_TITLE_3LINES - - !verbose pop - -!macroend - - -!macro UMUI_UNPAGE_MULTILANGUAGE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro UMUI_PAGE_MULTILANGUAGE - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - - -!macro UMUI_FUNCTION_MULTILANGUAGEPAGE PRE LEAVE - - !ifndef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE - !define UMUI_INTERNAL_MNUMFIELDS 4 - !define UMUI_INTERNAL_MFIELDTITLE 1 - !define UMUI_INTERNAL_MFIELDTEXT 2 - !define UMUI_INTERNAL_MFIELDGROUPBOX 3 - !define UMUI_INTERNAL_MFIELDDROPDOWN 4 - !define UMUI_INTERNAL_MIDTITLE 1200 - !define UMUI_INTERNAL_MIDTEXT 1201 - !define UMUI_INTERNAL_MIDGROUPBOX 1202 - !define UMUI_INTERNAL_MIDDROPDOWN 1203 - !define UMUI_INTERNAL_MPOSGROUPBOXLEFT 75 - !define UMUI_INTERNAL_MPOSGROUPBOXRIGHT -75 - !define UMUI_INTERNAL_MPOSDROPDOWNLEFT 105 - !define UMUI_INTERNAL_MPOSDROPDOWNRIGHT -105 - !else - !define UMUI_INTERNAL_MNUMFIELDS 5 - !define UMUI_INTERNAL_MFIELDTITLE 2 - !define UMUI_INTERNAL_MFIELDTEXT 3 - !define UMUI_INTERNAL_MFIELDGROUPBOX 4 - !define UMUI_INTERNAL_MFIELDDROPDOWN 5 - !define UMUI_INTERNAL_MIDTITLE 1201 - !define UMUI_INTERNAL_MIDTEXT 1202 - !define UMUI_INTERNAL_MIDGROUPBOX 1203 - !define UMUI_INTERNAL_MIDDROPDOWN 1204 - !define UMUI_INTERNAL_MPOSGROUPBOXLEFT 140 - !define UMUI_INTERNAL_MPOSGROUPBOXRIGHT -30 - !define UMUI_INTERNAL_MPOSDROPDOWNLEFT 170 - !define UMUI_INTERNAL_MPOSDROPDOWNRIGHT -60 - !endif - - !define /IfNDef UMUI_HIDENEXTBACKBUTTON - - Function "${PRE}" - - ; IF setup cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_LANGISSET} - - !insertmacro MUI_HEADER_TEXT_PAGE "" "" - - ; save the old language id - StrCpy $UMUI_TEMP3 $LANGUAGE - - StrCmp $UMUI_LANGLIST "" 0 +2 - MessageBox MB_OK|MB_ICONSTOP "Ultra-Modern UI error: You have forgotten to insert the UMUI_MULTILANG_GET macro in your ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}.oninit function." - - ClearErrors - ; Get the current language id - nsArray::Get LangMap $LANGUAGE - Pop $MUI_TEMP1 - - ;if don't exist - IfErrors 0 foundLang - - ;search for english - nsArray::Get LangMap "1033" - Pop $MUI_TEMP1 - - ;if don't exist - IfErrors 0 foundLang - - ;english an system language was not been inserted - StrCpy $MUI_TEMP1 "" - - foundLang: - - CopyFiles /SILENT "$PLUGINSDIR\ioSpecial.ini" "$PLUGINSDIR\MultiLanguage.ini" - - - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Settings" "NumFields" "${UMUI_INTERNAL_MNUMFIELDS}" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Settings" "NextButtonText" "" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Settings" "CancelEnabled" "" - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTITLE}" "Text" "UMUI_MULTILANGUAGEPAGE_TITLE" - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef UMUI_MULTILANGUAGEPAGE_TITLE_3LINES - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTITLE}" "Bottom" "55" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTEXT}" "Top" "62" - !else - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTITLE}" "Bottom" "62" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTEXT}" "Top" "69" - !endif - !endif - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTEXT}" "Text" "UMUI_MULTILANGUAGEPAGE_TEXT" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTEXT}" "Bottom" "120" - - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Type" "GroupBox" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Text" "UMUI_MULTILANGUAGEPAGE_LANGUAGE" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Left" "${UMUI_INTERNAL_MPOSGROUPBOXLEFT}" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Right" "${UMUI_INTERNAL_MPOSGROUPBOXRIGHT}" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Top" "120" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Bottom" "160" - - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "Type" "DropList" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "ListItems" "$UMUI_LANGLIST" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "State" $MUI_TEMP1 - - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "Left" "${UMUI_INTERNAL_MPOSDROPDOWNLEFT}" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "Right" "${UMUI_INTERNAL_MPOSDROPDOWNRIGHT}" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "Top" "135" - !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "Bottom" "-1" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - LockWindow on - -!ifdef USE_MUIEx -;----------------- - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 - ShowWindow $MUI_TEMP1 ${SW_HIDE} -!endif -;----------------- - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - LockWindow off - - - !insertmacro INSTALLOPTIONS_INITDIALOG "MultiLanguage.ini" - Pop $MUI_HWND - - !insertmacro UMUI_WFAPAGEBGTRANSPARENT_INIT $MUI_HWND - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDTITLE} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - CreateFont $MUI_TEMP2 "$(^Font)" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" - SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDTEXT} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - - !else - - ;alternate page - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDTITLE} - CreateFont $MUI_TEMP2 "MS Sans Serif" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" - SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 $MUI_TEMP2 - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDTEXT} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - - !endif - - - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDGROUPBOX} - !insertmacro UMUI_IOPAGECTLLIGHT_INIT $MUI_TEMP1 - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDDROPDOWN} - !insertmacro UMUI_IOPAGEINPUTCTL_INIT $MUI_TEMP1 - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_SHOW - - LockWindow on - -!ifdef USE_MUIEx -;----------------- - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} -!endif -;----------------- - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - LockWindow off - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - ; Get the choosed language name - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "State" - - ;Search key of selcted value - ClearErrors - langLoop: - nsArray::Iterate LangMap - Pop $LANGUAGE - Pop $MUI_TEMP2 - StrCmp $MUI_TEMP1 $MUI_TEMP2 +2 0 - IfErrors 0 langLoop - - nsArray::Clear LangMap - - ; if we choose the same language - StrCmp $UMUI_TEMP3 $LANGUAGE 0 reloadinstall - - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_LANGISSET} - - !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" "$LANGUAGE" - !endif - - Goto end - reloadinstall: - - ;Recall this programm and quit - !insertmacro UMUI_GET_PARAMETERS - Pop $MUI_TEMP2 - - !insertmacro UMUI_DELETE_PLUGINDIR - HideWindow - - !ifndef MUI_UNINSTALLER - ExecWait "$EXEPATH $MUI_TEMP2 /L=$LANGUAGE /NCRC" - !else - ExecWait "$EXEPATH $MUI_TEMP2 /L=$LANGUAGE _?=$INSTDIR" - !endif - Quit - - end: - - - !insertmacro UMUI_ENDIF_INSTALLFLAG - - FunctionEnd - - !undef UMUI_INTERNAL_MNUMFIELDS - !undef UMUI_INTERNAL_MFIELDTITLE - !undef UMUI_INTERNAL_MFIELDTEXT - !undef UMUI_INTERNAL_MFIELDGROUPBOX - !undef UMUI_INTERNAL_MFIELDDROPDOWN - !undef UMUI_INTERNAL_MIDTITLE - !undef UMUI_INTERNAL_MIDTEXT - !undef UMUI_INTERNAL_MIDGROUPBOX - !undef UMUI_INTERNAL_MIDDROPDOWN - !undef UMUI_INTERNAL_MPOSGROUPBOXLEFT - !undef UMUI_INTERNAL_MPOSGROUPBOXRIGHT - !undef UMUI_INTERNAL_MPOSDROPDOWNLEFT - !undef UMUI_INTERNAL_MPOSDROPDOWNRIGHT - -!macroend - - -!macro UMUI_PAGE_CONFIRM - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}CONFIRMPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_CONFIRMPAGE_TEXT_TOP "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_INSTCONFIRM_TEXT_TOP)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_CONFIRMPAGE_TEXT_BOTTOM "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_TITLE)" - - !ifdef UMUI_CONFIRMPAGE_TEXTBOX - !ifndef UMUI_VAR_UMUI_TEMP3 - Var UMUI_TEMP3 - !define UMUI_VAR_UMUI_TEMP3 - !endif - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ConfirmPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ConfirmLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro UMUI_FUNCTION_CONFIRMPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ConfirmPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ConfirmLeave_${MUI_UNIQUEID} - - !undef UMUI_CONFIRMPAGE_TEXT_TOP - !undef UMUI_CONFIRMPAGE_TEXT_BOTTOM - - !insertmacro MUI_UNSET UMUI_CONFIRMPAGE_TEXTBOX - - !verbose pop - -!macroend - -!macro UMUI_UNPAGE_CONFIRM - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro UMUI_PAGE_CONFIRM - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - -!macro UMUI_FUNCTION_CONFIRMPAGE PRE LEAVE - - Function "${PRE}" - - ; IF setup cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_CONFIRMPAGE_INI}" "Confirm.ini" - - ; Bodenseematze-2016-09-15: missing PRE-Function support added: - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_INSTCONFIRM_TITLE)" "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_INSTCONFIRM_SUBTITLE)" - - !ifdef UMUI_CONFIRMPAGE_TEXTBOX - FlushINI "$PLUGINSDIR\Confirm.ini" - - FileOpen $MUI_TEMP2 "$PLUGINSDIR\Confirm.ini" a - !ifdef NSIS_UNICODE - FileSeek $MUI_TEMP2 -4 END - !else - FileSeek $MUI_TEMP2 -2 END - !endif - - Call "${UMUI_CONFIRMPAGE_TEXTBOX}" - - FileClose $MUI_TEMP2 - - !insertmacro INSTALLOPTIONS_WRITE "Confirm.ini" "Settings" NumFields "3" - - !endif - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Confirm.ini" "Field 1" "Text" "UMUI_CONFIRMPAGE_TEXT_TOP" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Confirm.ini" "Field 2" "Text" "UMUI_CONFIRMPAGE_TEXT_BOTTOM" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_DISPLAY "Confirm.ini" - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - FunctionEnd - -!macroend - -!macro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE STR - - StrCpy $UMUI_TEMP3 "${STR}" - - !insertmacro UMUI_STRREPLACE $UMUI_TEMP3 "\" "\\" $UMUI_TEMP3 - - !ifdef NSIS_UNICODE - FileWriteUTF16LE $MUI_TEMP2 "$UMUI_TEMP3\r\n" - !else - FileWrite $MUI_TEMP2 "$UMUI_TEMP3\r\n" - !endif - - ClearErrors - -!macroend - - - - - - - -!macro UMUI_PAGE_ABORT - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}ABORTPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_ABORTPAGE_TITLE "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_INFO_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_ABORTPAGE_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_INFO_TEXT)" - - !define /IfNDef UMUI_ABORTPAGE_LINK_COLOR "${UMUI_TEXT_LIGHTCOLOR}" - - !ifndef MUI_VAR_HWND - Var MUI_HWND - !define MUI_VAR_HWND - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ABORTPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ABORTLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro UMUI_FUNCTION_ABORTPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ABORTPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ABORTLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET UMUI_ABORTPAGE_TITLE - !insertmacro MUI_UNSET UMUI_ABORTPAGE_TITLE_3LINES - !insertmacro MUI_UNSET UMUI_ABORTPAGE_TEXT - !insertmacro MUI_UNSET UMUI_ABORTPAGE_LINK - !insertmacro MUI_UNSET UMUI_ABORTPAGE_LINK_LOCATION - !insertmacro MUI_UNSET UMUI_ABORTPAGE_LINK_COLOR - - !verbose pop - -!macroend - - -!macro UMUI_UNPAGE_ABORT - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro UMUI_PAGE_ABORT - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - - -!macro UMUI_FUNCTION_ABORTPAGE PRE LEAVE - - !ifndef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE - !define UMUI_INTERNAL_ANUMFIELDS 2 - !define UMUI_INTERNAL_ANUMFIELDSLINK 3 - !define UMUI_INTERNAL_AFIELDTITLE 1 - !define UMUI_INTERNAL_AFIELDTEXT 2 - !define UMUI_INTERNAL_AFIELDLINK 3 - !define UMUI_INTERNAL_AIDTITLE 1200 - !define UMUI_INTERNAL_AIDTEXT 1201 - !define UMUI_INTERNAL_AIDLINK 1202 - !define UMUI_INTERNAL_APOSLINKLEFT 22 - !else - !define UMUI_INTERNAL_ANUMFIELDS 3 - !define UMUI_INTERNAL_ANUMFIELDSLINK 4 - !define UMUI_INTERNAL_AFIELDTITLE 2 - !define UMUI_INTERNAL_AFIELDTEXT 3 - !define UMUI_INTERNAL_AFIELDLINK 4 - !define UMUI_INTERNAL_AIDTITLE 1201 - !define UMUI_INTERNAL_AIDTEXT 1202 - !define UMUI_INTERNAL_AIDLINK 1203 - !define UMUI_INTERNAL_APOSLINKLEFT 130 - !endif - - Function "${PRE}" - - ;If setup is not cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} - - !insertmacro MUI_HEADER_TEXT_PAGE "" "" - - !insertmacro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" NextButtonText "$(^CloseBtn)" - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NumFields" "${UMUI_INTERNAL_ANUMFIELDS}" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTITLE}" "Text" "UMUI_ABORTPAGE_TITLE" - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - !ifndef UMUI_ABORTPAGE_TITLE_3LINES - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTITLE}" "Bottom" "55" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTEXT}" "Top" "62" - !else - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTITLE}" "Bottom" "62" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTEXT}" "Top" "69" - !endif - !endif - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTEXT}" "Bottom" "-15" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTEXT}" "Text" "UMUI_ABORTPAGE_TEXT" - - !ifdef UMUI_ABORTPAGE_LINK - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" NumFields "${UMUI_INTERNAL_ANUMFIELDSLINK}" - - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Type" "Link" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Text" "UMUI_ABORTPAGE_LINK" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Left" "${UMUI_INTERNAL_APOSLINKLEFT}" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Right" "-15" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Top" "-14" - !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Bottom" "-5" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "State" "UMUI_ABORTPAGE_LINK_LOCATION" - - !endif - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - LockWindow on - -!ifdef USE_MUIEx -;----------------- - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 - ShowWindow $MUI_TEMP1 ${SW_HIDE} -!endif -;----------------- - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - LockWindow off - - - !insertmacro INSTALLOPTIONS_INITDIALOG "ioSpecial.ini" - Pop $MUI_HWND - - !insertmacro UMUI_WFAPAGEBGTRANSPARENT_INIT $MUI_HWND - - !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE - - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_AIDTITLE} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - CreateFont $MUI_TEMP2 "$(^Font)" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" - SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_AIDTEXT} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - - !else - - ;alternate page - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_AIDTITLE} - CreateFont $MUI_TEMP2 "MS Sans Serif" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" - SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 $MUI_TEMP2 - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_AIDTEXT} - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 - - !endif - - - !ifdef UMUI_ABORTPAGE_LINK - GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_AIDLINK} - !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE - SetCtlColors $MUI_TEMP1 "${UMUI_ABORTPAGE_LINK_COLOR}" "transparent" - !else - SetCtlColors $MUI_TEMP1 "${UMUI_ABORTPAGE_LINK_COLOR}" "${MUI_BGCOLOR}" - !endif - !endif - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 3 - EnableWindow $MUI_TEMP1 0 - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_SHOW - - LockWindow on - -!ifdef USE_MUIEx -;----------------- - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 - ShowWindow $MUI_TEMP1 ${SW_NORMAL} -!endif -;----------------- - - GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - LockWindow off - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - !insertmacro UMUI_DELETE_PLUGINDIR - - FunctionEnd - - !undef UMUI_INTERNAL_ANUMFIELDS - !undef UMUI_INTERNAL_ANUMFIELDSLINK - !undef UMUI_INTERNAL_AFIELDTITLE - !undef UMUI_INTERNAL_AFIELDTEXT - !undef UMUI_INTERNAL_AFIELDLINK - !undef UMUI_INTERNAL_AIDTITLE - !undef UMUI_INTERNAL_AIDTEXT - !undef UMUI_INTERNAL_AIDLINK - !undef UMUI_INTERNAL_APOSLINKLEFT - -!macroend - - - - - -!macro UMUI_PAGE_INFORMATION FILE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}INFORMATIONPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_INFORMATIONPAGE_TEXT "$(UMUI_TEXT_INFORMATION_INFO_TEXT)" - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InformationPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InformationLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro UMUI_FUNCTION_INFORMATIONPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InformationPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InformationLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET UMUI_INFORMATIONPAGE_TEXT - !insertmacro MUI_UNSET UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT - - !verbose pop - -!macroend - - -!macro UMUI_UNPAGE_INFORMATION FILE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro UMUI_PAGE_INFORMATION "${FILE}" - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - - -!macro UMUI_FUNCTION_INFORMATIONPAGE PRE LEAVE - - Function "${PRE}" - - ; IF setup cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} - - !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_TEXT_INFORMATION_TITLE)" "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_INFORMATION_SUBTITLE)" - - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_INFORMATIONPAGE_INI}" "Information.ini" - - SetOutPath $PLUGINSDIR - File "${FILE}" - - ; search file names by removing characters before back-slash - ; $MUI_TEMP1 : file name - ; $R0 : character to read - ; $0 : seek - Push $R0 - Push $0 - - StrLen $0 "${FILE}" - - loopfile: - IntOp $0 $0 - 1 - StrCmp $0 '0' endfile - StrCpy $R0 "${FILE}" 1 $0 - StrCmp $R0 '\' endfile - Goto loopfile - endfile: - StrCpy $MUI_TEMP1 "${FILE}" "" $0 - - StrCpy $R0 $MUI_TEMP1 1 - StrCmp $R0 '\' 0 +2 - StrCpy $MUI_TEMP1 $MUI_TEMP1 "" 1 - - Pop $0 - Pop $R0 - - ; Determine the file name based on the current language - ; if '*' was used in the file name, it will be replaced by the $LANGUAGE - !insertmacro UMUI_STRREPLACE $MUI_TEMP2 "*" "$LANGUAGE" $MUI_TEMP1 - IfFileExists '$PLUGINSDIR\$MUI_TEMP2' fileFound - ClearErrors - !insertmacro UMUI_STRREPLACE $MUI_TEMP2 "*" "" $MUI_TEMP1 - IfFileExists '$PLUGINSDIR\$MUI_TEMP2' fileFound - StrCpy $MUI_TEMP2 "" - fileFound: - StrCpy $MUI_TEMP1 $MUI_TEMP2 - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !ifdef UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT - - !ifndef UMUI_USE_INSTALLOPTIONSEX - !error "The Rich Text Control that you want to use with the UMUI_USE_INSTALLOPTIONSEX define work only with InstallOptionEx but it seen that you don't use it. Use the define UMUI_USE_INSTALLOPTIONSEX" - !endif - - !insertmacro INSTALLOPTIONS_WRITE "Information.ini" "Field 2" Type "RichText" - - StrCmp $MUI_TEMP1 "" fileNotFound - !insertmacro INSTALLOPTIONS_WRITE "Information.ini" "Field 2" State '$PLUGINSDIR\$MUI_TEMP1' - - !insertmacro INSTALLOPTIONS_WRITE "Information.ini" "Field 2" Notify ONCLICK - - !else - - StrCmp $MUI_TEMP1 "" fileNotFound - - ; $MUI_TEMP1 : txt file - ; $MUI_TEMP2 : ini file - ; $R0 : text read on one line - ; $R1 : test if the end of line is $\r$\n - ; $0 : 1 if UTF16LE, 0 if ANSI - - Push $R1 - Push $R0 - Push $0 - - FlushINI "$PLUGINSDIR\Information.ini" - - ClearErrors - !ifdef NSIS_UNICODE - !insertmacro UMUI_FILE_IS_UTF16LE "$PLUGINSDIR\$MUI_TEMP1" $0 - !endif - IfErrors doneWrite - - FileOpen $MUI_TEMP1 "$PLUGINSDIR\$MUI_TEMP1" r - IfErrors 0 +2 - Abort - FileOpen $MUI_TEMP2 "$PLUGINSDIR\Information.ini" a - IfErrors 0 +2 - Abort - !ifdef NSIS_UNICODE - FileSeek $MUI_TEMP2 -4 END - FileWriteUTF16LE $MUI_TEMP2 "$\"" - !else - FileSeek $MUI_TEMP2 -2 END - FileWrite $MUI_TEMP2 "$\"" - !endif - IfErrors doneWrite - - loopWrite: - !ifdef NSIS_UNICODE - StrCmp $0 1 0 +3 ; if UTF16LE - FileReadUTF16LE $MUI_TEMP1 $R0 - Goto +2 - !endif - FileRead $MUI_TEMP1 $R0 - IfErrors doneWrite ; if End Of File - - StrCpy $R1 "$R0" "" -1 - StrCmp $R1 $\n 0 write - StrCpy $R0 "$R0" -1 - StrCpy $R1 "$R0" "" -1 - StrCmp $R1 $\r 0 +2 - StrCpy $R0 "$R0" -1 - StrCpy $R0 "$R0\r\n" - - write: - !ifdef NSIS_UNICODE - FileWriteUTF16LE $MUI_TEMP2 "$R0" - !else - FileWrite $MUI_TEMP2 "$R0" - !endif - Goto loopWrite - doneWrite: - !ifdef NSIS_UNICODE - FileWriteUTF16LE $MUI_TEMP2 "$\"" - !else - FileWrite $MUI_TEMP2 "$\"" - !endif - - FileClose $MUI_TEMP1 - FileClose $MUI_TEMP2 - ClearErrors - - Pop $0 - Pop $R0 - Pop $R1 - - !endif - - fileNotFound: - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Information.ini" "Field 1" "Text" "UMUI_INFORMATIONPAGE_TEXT" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_DISPLAY "Information.ini" - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - !ifdef UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "Information.ini" "Settings" Notify - StrCmp $MUI_TEMP1 "ONNEXT" +2 0 - Abort - - !endif - - FunctionEnd - -!macroend - -!macro UMUI_FILE_IS_UTF16LE FILE RESULT_VAR - Push $2 - Push $1 - - StrCpy ${RESULT_VAR} 0 ; is not UFT16LE - FileOpen $2 "${FILE}" r - FileReadByte $2 $1 - IntCmpU $1 0xFF "" doneUTF16LE doneUTF16LE - FileReadByte $2 $1 - IntCmpU $1 0xFE "" doneUTF16LE doneUTF16LE - StrCpy ${RESULT_VAR} 1 ; is UFT16LE - doneUTF16LE: - FileClose $2 - - Pop $1 - Pop $2 -!macroend - - - -!macro UMUI_PAGE_ADDITIONALTASKS ADDTASKS_FUNC - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}ADDITIONALTASKSPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_ADDITIONALTASKSPAGE_TEXT_TOP "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ADDITIONALTASKS_INFO_TEXT)" - - !ifndef UMUI_VAR_UMUI_TEMP3 - Var UMUI_TEMP3 - !define UMUI_VAR_UMUI_TEMP3 - !endif - - !ifndef UMUI_VAR_UMUI_TEMP4 - Var UMUI_TEMP4 - !define UMUI_VAR_UMUI_TEMP4 - !endif - - !ifdef UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME - !ifndef UMUI_ADDITIONALTASKS_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_ADDITIONALTASKS_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME, the UMUI_ADDITIONALTASKS_REGISTRY_ROOT & UMUI_ADDITIONALTASKS_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_ADDITIONALTASKS_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_ADDITIONALTASKS_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME, the UMUI_ADDITIONALTASKS_REGISTRY_ROOT & UMUI_ADDITIONALTASKS_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AdditionalTasksPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AdditionalTasksLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro UMUI_FUNCTION_ADDITIONALTASKSPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AdditionalTasksPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AdditionalTasksLeave_${MUI_UNIQUEID} - - !undef UMUI_ADDITIONALTASKSPAGE_TEXT_TOP - - !verbose pop - -!macroend - -!macro UMUI_UNPAGE_ADDITIONALTASKS ADDTASKS_FUNC - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro UMUI_PAGE_ADDITIONALTASKS ${ADDTASKS_FUNC} - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - -!macro UMUI_FUNCTION_ADDITIONALTASKSPAGE PRE LEAVE - - Function "${PRE}" - - ; Bodenseematze-2016-09-15: missing PRE-Function support added: - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_TEXT_ADDITIONALTASKS_TITLE)" "$(UMUI_TEXT_ADDITIONALTASKS_SUBTITLE)" - - IfFileExists "$PLUGINSDIR\AdditionalTasks${ADDTASKS_FUNC}.ini" alreadyExists - - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_ADDITIONALTASKSPAGE_INI}" "AdditionalTasks${ADDTASKS_FUNC}.ini" - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AdditionalTasks${ADDTASKS_FUNC}.ini" "Field 1" "Text" "UMUI_ADDITIONALTASKSPAGE_TEXT_TOP" - - StrCpy $UMUI_TEMP3 1 ; number of field - StrCpy $UMUI_TEMP4 24 ; height of all fields - - StrCpy $MUI_TEMP1 "AdditionalTasks${ADDTASKS_FUNC}.ini" ; name of the ini file - Push $MUI_TEMP1 - - Call "${ADDTASKS_FUNC}" - - ; IF page skipped save - !ifdef UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME - !insertmacro UMUI_INTERNAL_ADDITIONALTASKSPAGE_ADDPARAMTOSAVETOREGISTRY - !endif - - alreadyExists: - - ; IF setup cancelled or setuptype choosen - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MINIMAL}|${UMUI_STANDARD}|${UMUI_COMPLETE}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_DISPLAY "AdditionalTasks${ADDTASKS_FUNC}.ini" - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro INSTALLOPTIONS_READ $UMUI_TEMP3 "AdditionalTasks${ADDTASKS_FUNC}.ini" "Settings" NumFields - StrCpy $UMUI_TEMP4 1 ;init at 1 because of the label text top - - ;do - loop: - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 1 - - ;get task ID - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AdditionalTasks${ADDTASKS_FUNC}.ini" "Field $UMUI_TEMP4" TaskID - ;if field is not a CheckBox or a RadioButton break - StrCmp $MUI_TEMP1 "" endloop 0 - - ;get task State - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AdditionalTasks${ADDTASKS_FUNC}.ini" "Field $UMUI_TEMP4" State - ;save task State - !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "Task $MUI_TEMP1" State "$MUI_TEMP2" - - endloop: - ;while $UMUI_TEMP4 < $UMUI_TEMP3 - IntCmp $UMUI_TEMP4 $UMUI_TEMP3 0 loop 0 - - ClearErrors - - ;save into the registery - !ifdef UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME - !insertmacro UMUI_INTERNAL_ADDITIONALTASKSPAGE_ADDPARAMTOSAVETOREGISTRY - !endif - - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - FunctionEnd - -!macroend - -!macro UMUI_INTERNAL_ADDITIONALTASKSPAGE_ADDPARAMTOSAVETOREGISTRY - - Push $R9 - - !insertmacro INSTALLOPTIONS_READ $UMUI_TEMP3 "AdditionalTasksList.ini" "Settings" NumTasks - StrCpy $UMUI_TEMP4 0 ;init at 1 because the label text top - StrCpy $R9 "" - - ;do - loops: - - ;get task ID - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AdditionalTasksList.ini" "$UMUI_TEMP4" TaskID - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AdditionalTasksList.ini" "Task $MUI_TEMP1" State - - StrCpy $R9 "$R9|$MUI_TEMP1=$MUI_TEMP2" - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 1 - - ;while $UMUI_TEMP4 < $UMUI_TEMP3 - IntCmp $UMUI_TEMP4 $UMUI_TEMP3 0 loops 0 - - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_ADDITIONALTASKS_REGISTRY_ROOT} "${UMUI_ADDITIONALTASKS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" "$R9" - - Pop $R9 - - ClearErrors - -!macroend - -!macro UMUI_INTERNAL_ADDITIONALTASKSPAGE_REGISTRY_SET_STATE ID DEFSTATE - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifdef UMUI_UNIQUEID - !undef UMUI_UNIQUEID - !endif - - !define UMUI_UNIQUEID ${__LINE__} - - ;Search in the registery - !ifdef UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME - Push $0 - Push $1 - Push $2 - Push $3 - Push $4 - - ReadRegStr $0 ${UMUI_ADDITIONALTASKS_REGISTRY_ROOT} "${UMUI_ADDITIONALTASKS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" - StrCmp $0 "" end${UMUI_UNIQUEID} - - ;search the state of the ID - ClearErrors - - StrCpy $4 "|${ID}=" ; string to search - StrLen $3 $4 ; len of the task to found - - loop${UMUI_UNIQUEID}: - StrCpy $2 $0 $3 - - StrCmp $2 $4 found${UMUI_UNIQUEID} 0 - StrLen $5 $0 - IntCmp $5 $3 end${UMUI_UNIQUEID} end${UMUI_UNIQUEID} 0 ;if there is not suffitiently char end - StrCpy $0 $0 "" 1 - Goto loop${UMUI_UNIQUEID} - - found${UMUI_UNIQUEID}: - StrCpy $2 $0 1 $3 - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "0" - StrCmp $2 1 0 end${UMUI_UNIQUEID} - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "1" - - end${UMUI_UNIQUEID}: - ClearErrors - - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Pop $0 - !endif - - !undef UMUI_UNIQUEID - - !verbose pop - -!macroend - - - - - -!macro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL STR - - !verbose push - !verbose ${MUI_VERBOSE} - - Pop $MUI_TEMP1 - Pop $MUI_TEMP2 - - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "Label" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "${STR}" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "5" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-5" - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 6 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" - - Push $0 - Push $1 - Push $2 - Push $3 - - !ifdef UMUI_UNIQUEID - !undef UMUI_UNIQUEID - !endif - - !define UMUI_UNIQUEID ${__LINE__} - - StrCpy $0 "${STR}" - StrCpy $2 0 - StrCpy $3 0 - - loop${UMUI_UNIQUEID}: - StrCpy $1 $0 4 - IntOp $2 $2 + 1 - - StrCmp $1 "" end${UMUI_UNIQUEID} 0 - - StrCmp $1 "\r\n" 0 +3 ; a new line if \n\r appear - IntOp $3 $3 + 1 - StrCpy $2 0 - - StrCmp $2 75 0 +3 ; a new line if character number on this line is > 75 - IntOp $3 $3 + 1 - StrCpy $2 0 - - StrCpy $0 $0 "" 1 - Goto loop${UMUI_UNIQUEID} - end${UMUI_UNIQUEID}: - - !undef UMUI_UNIQUEID - - IntOp $MUI_TEMP2 $3 * 8 - - Pop $3 - Pop $2 - Pop $1 - Pop $0 - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 12 - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + $MUI_TEMP2 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" - - !ifndef UMUI_NEWGROUP - !define UMUI_NEWGROUP - !endif - - ClearErrors - - Push $MUI_TEMP2 - Push $MUI_TEMP1 - - !verbose pop - -!macroend - -!macro UMUI_ADDITIONALTASKSPAGE_ADD_TASK ID DEFSTATE STR - - !verbose push - !verbose ${MUI_VERBOSE} - - Pop $MUI_TEMP1 - Pop $MUI_TEMP2 - - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "CheckBox" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "${STR}" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "${DEFSTATE}" - !insertmacro UMUI_INTERNAL_ADDITIONALTASKSPAGE_REGISTRY_SET_STATE "${ID}" "${DEFSTATE}" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" TaskID "${ID}" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "10" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-10" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 12 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "$MUI_TEMP1" "Field $UMUI_TEMP3" State - !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "Task ${ID}" State "$MUI_TEMP2" - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AdditionalTasksList.ini" "Settings" NumTasks - StrCmp $MUI_TEMP2 "" 0 +2 - StrCpy $MUI_TEMP2 0 - !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "$MUI_TEMP2" TaskID "${ID}" - IntOp $MUI_TEMP2 $MUI_TEMP2 + 1 - !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "Settings" NumTasks "$MUI_TEMP2" - - ClearErrors - - Push $MUI_TEMP2 - Push $MUI_TEMP1 - - !verbose pop - -!macroend - -!macro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ID DEFSTATE STR - - !verbose push - !verbose ${MUI_VERBOSE} - - Pop $MUI_TEMP1 - Pop $MUI_TEMP2 - - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "RadioButton" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "${STR}" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "${DEFSTATE}" - !insertmacro UMUI_INTERNAL_ADDITIONALTASKSPAGE_REGISTRY_SET_STATE "${ID}" "${DEFSTATE}" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" TaskID "${ID}" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "10" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-10" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 12 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" - - !ifdef UMUI_NEWGROUP - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Flags "GROUP" - !undef UMUI_NEWGROUP - !endif - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "$MUI_TEMP1" "Field $UMUI_TEMP3" State - !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "Task ${ID}" State "$MUI_TEMP2" - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AdditionalTasksList.ini" "Settings" NumTasks - StrCmp $MUI_TEMP2 "" 0 +2 - StrCpy $MUI_TEMP2 0 - !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "$MUI_TEMP2" TaskID "${ID}" - IntOp $MUI_TEMP2 $MUI_TEMP2 + 1 - !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "Settings" NumTasks "$MUI_TEMP2" - - ClearErrors - - Push $MUI_TEMP2 - Push $MUI_TEMP1 - - !verbose pop - -!macroend - -!macro UMUI_ADDITIONALTASKSPAGE_ADD_EMPTYLINE - - !verbose push - !verbose ${MUI_VERBOSE} - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 6 - - !verbose pop - -!macroend - -!macro UMUI_ADDITIONALTASKSPAGE_ADD_LINE - - !verbose push - !verbose ${MUI_VERBOSE} - - Pop $MUI_TEMP1 - - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "HLine" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "5" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-5" - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 3 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" - - Push $MUI_TEMP1 - - !verbose pop - -!macroend - -; listid can be a string containing ID1|ID2|ID3 -!macro UMUI_ADDITIONALTASKS_IF_CKECKED LISTID - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifdef UMUI_UNIQUEID - !undef UMUI_UNIQUEID - !endif - - !define UMUI_UNIQUEID ${__LINE__} - - Push $0 - Push $1 - Push $2 - - StrCpy $0 "${LISTID}" ;the sources - StrCpy $1 "" ;an id - StrCpy $MUI_TEMP1 0 ; 0 = false , 1 = true - - loop${UMUI_UNIQUEID}: - ;copy one id - loopid${UMUI_UNIQUEID}: - StrCpy $2 $0 1 - StrCmp $2 "" check${UMUI_UNIQUEID} 0 - StrCpy $0 $0 "" 1 - StrCmp $2 "|" check${UMUI_UNIQUEID} 0 - StrCpy $1 "$1$2" - Goto loopid${UMUI_UNIQUEID} - check${UMUI_UNIQUEID}: - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AdditionalTasksList.ini" "Task $1" State - StrCpy $1 "" - StrCmp $MUI_TEMP1 1 endloop${UMUI_UNIQUEID} - StrCpy $MUI_TEMP1 0 - StrCmp $2 "" endloop${UMUI_UNIQUEID} loop${UMUI_UNIQUEID} - endloop${UMUI_UNIQUEID}: - - ClearErrors - - Pop $2 - Pop $1 - Pop $0 - - ; if any of VALS is checked goto done - StrCmp $MUI_TEMP1 1 0 done_${UMUI_UNIQUEID} - - !verbose pop - -!macroend - -; listid can be a string containing ID1&ID2&ID3 -!macro UMUI_ADDITIONALTASKS_IF_NOT_CKECKED LISTID - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifdef UMUI_UNIQUEID - !undef UMUI_UNIQUEID - !endif - - !define UMUI_UNIQUEID ${__LINE__} - - Push $0 - Push $1 - Push $2 - - StrCpy $0 "${LISTID}" ;the sources - StrCpy $1 "" ;an id - StrCpy $MUI_TEMP1 1 ; 0 = false , 1 = true - - loop${UMUI_UNIQUEID}: - ;copy one id - loopid${UMUI_UNIQUEID}: - StrCpy $2 $0 1 - StrCmp $2 "" check${UMUI_UNIQUEID} 0 - StrCpy $0 $0 "" 1 - StrCmp $2 "&" check${UMUI_UNIQUEID} 0 - StrCpy $1 "$1$2" - Goto loopid${UMUI_UNIQUEID} - check${UMUI_UNIQUEID}: - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AdditionalTasksList.ini" "Task $1" State - StrCpy $1 "" - StrCmp $MUI_TEMP1 0 endloop${UMUI_UNIQUEID} - StrCpy $MUI_TEMP1 1 - StrCmp $2 "" endloop${UMUI_UNIQUEID} loop${UMUI_UNIQUEID} - endloop${UMUI_UNIQUEID}: - - ClearErrors - - Pop $2 - Pop $1 - Pop $0 - - ; if any of VALS is checked goto done - StrCmp $MUI_TEMP1 0 0 done_${UMUI_UNIQUEID} - - !verbose pop - -!macroend - -!macro UMUI_ADDITIONALTASKS_ENDIF - - !verbose push - !verbose ${MUI_VERBOSE} - - done_${UMUI_UNIQUEID}: - - !undef UMUI_UNIQUEID - - !verbose pop - -!macroend - - - - -!macro UMUI_PAGE_SERIALNUMBER SERIAL_FUNC - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}SERIALNUMBERPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SERIALNUMBERPAGE_TEXT_TOP "$(UMUI_TEXT_SERIALNUMBER_INFO_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SERIALNUMBERPAGE_INVALIDATE_TEXT "$(UMUI_TEXT_SERIALNUMBER_INVALIDATE_TEXT)" - - !ifndef UMUI_VAR_UMUI_TEMP3 - Var UMUI_TEMP3 - !define UMUI_VAR_UMUI_TEMP3 - !endif - - !ifndef UMUI_VAR_UMUI_TEMP4 - Var UMUI_TEMP4 - !define UMUI_VAR_UMUI_TEMP4 - !endif - - !ifndef UMUI_VAR_UMUI_SNTEXT - Var UMUI_SNTEXT - !define UMUI_VAR_UMUI_SNTEXT - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.serialnumberPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.serialnumberLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro UMUI_FUNCTION_SERIALNUMBERPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.serialnumberPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.serialnumberLeave_${MUI_UNIQUEID} - - !undef UMUI_SERIALNUMBERPAGE_TEXT_TOP - - !verbose pop - -!macroend - -!macro UMUI_UNPAGE_SERIALNUMBER SERIAL_FUNC - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro UMUI_PAGE_SERIALNUMBER ${SERIAL_FUNC} - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - -!macro UMUI_FUNCTION_SERIALNUMBERPAGE PRE LEAVE - - Function "${PRE}" - - ; IF setup cancelled or setuptype choosen - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} - - ; Bodenseematze-2016-09-15: missing PRE-Function support added: - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_TEXT_SERIALNUMBER_TITLE)" "$(UMUI_TEXT_SERIALNUMBER_SUBTITLE)" - - IfFileExists "$PLUGINSDIR\SerialNumber_${SERIAL_FUNC}.ini" alreadyExists - - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_SERIALNUMBERPAGE_INI}" "SerialNumber_${SERIAL_FUNC}.ini" - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SerialNumber_${SERIAL_FUNC}.ini" "Field 1" "Text" "UMUI_SERIALNUMBERPAGE_TEXT_TOP" - - StrCpy $MUI_TEMP1 "SerialNumber_${SERIAL_FUNC}.ini" ; name of the ini file - StrCpy $MUI_TEMP2 0 ; serials counter - StrCpy $UMUI_TEMP3 1 ; field counter - StrCpy $UMUI_TEMP4 30 ; height of all fields - - Call "${SERIAL_FUNC}" - - !insertmacro UMUI_SERIALNUMBERPAGE_APPLYFLAGS "SerialNumber_${SERIAL_FUNC}.ini" - - !insertmacro UMUI_SERIALNUMBERPAGE_SAVE "SerialNumber_${SERIAL_FUNC}.ini" - - alreadyExists: - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_DISPLAY "SerialNumber_${SERIAL_FUNC}.ini" - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} - - !ifdef UMUI_USE_INSTALLOPTIONSEX - - Push $0 - Push $1 - Push $2 - Push $3 - Push $4 - - ; $MUI_TEMP1 : Current field number - ; $0 : max lenght - ; $1 : state of the current field - ; $2 : lenght of the state - ; $3 : back/next field number - ; $4 : HWND of the back/next field - - ClearErrors - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "SerialNumber_${SERIAL_FUNC}.ini" "Settings" State - StrCmp $MUI_TEMP1 "0" ok 0 - - !insertmacro INSTALLOPTIONS_READ $1 "SerialNumber_${SERIAL_FUNC}.ini" "Field $MUI_TEMP1" State - - StrCmp $1 "" 0 next - - !insertmacro INSTALLOPTIONS_READ $3 "SerialNumber_${SERIAL_FUNC}.ini" "Field $MUI_TEMP1" BackField - IfErrors abort - - !insertmacro INSTALLOPTIONS_READ $4 "SerialNumber_${SERIAL_FUNC}.ini" "Field $3" HWND - IfErrors abort - - !insertmacro UMUI_INSTALLOPTIONSEX_SETFOCUS $4 - - next: - - !insertmacro INSTALLOPTIONS_READ $0 "SerialNumber_${SERIAL_FUNC}.ini" "Field $MUI_TEMP1" MaxLen - IfErrors abort - - StrLen $2 $1 - StrCmp $2 $0 0 abort - - !insertmacro INSTALLOPTIONS_READ $3 "SerialNumber_${SERIAL_FUNC}.ini" "Field $MUI_TEMP1" NextField - IfErrors abort - - !insertmacro INSTALLOPTIONS_READ $4 "SerialNumber_${SERIAL_FUNC}.ini" "Field $3" HWND - IfErrors abort - - !insertmacro UMUI_INSTALLOPTIONSEX_SETFOCUS $4 - - abort: - - ClearErrors - - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Pop $0 - - Abort - - ok: - - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Pop $0 - - !endif - - !insertmacro UMUI_SERIALNUMBERPAGE_APPLYFLAGS "SerialNumber_${SERIAL_FUNC}.ini" - - !insertmacro UMUI_SERIALNUMBERPAGE_SAVE "SerialNumber_${SERIAL_FUNC}.ini" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - !insertmacro UMUI_ENDIF_INSTALLFLAG - - FunctionEnd - -!macroend - - -!macro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_OWNER VAR - ClearErrors - ; Windows NT - ReadRegStr $${VAR} HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "RegisteredOwner" - IfErrors 0 +2 - ; Windows 9x - ReadRegStr $${VAR} HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion" "RegisteredOwner" - ClearErrors -!macroend - -!macro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_ORGANIZATION VAR - ClearErrors - ; Windows NT - ReadRegStr $${VAR} HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "RegisteredOrganization" - IfErrors 0 +2 - ; Windows 9x - ReadRegStr $${VAR} HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion" "RegisteredOrganization" - ClearErrors -!macroend - - - -!macro UMUI_SERIALNUMBERPAGE_APPLYFLAGS FILE - - Push $0 - Push $1 - Push $2 - Push $4 - Push $6 - Push $7 - Push $8 - Push $9 - - ; $MUI_TEMP2 : serials line number - ; $0 : System::Call return success if ok - ; $1 : curent ID - ; $2 : curent FLAGS - ; $4 : the curent serial number - ; $6 : one portion of the $5 serial number - ; $7 : Is FLAGS == "TOLOWER" - ; $8 : Is FLAGS == "TOUPPER" - ; $9 : current field - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "${FILE}" Settings NumTasks - - StrCpy $4 0 - - loopApplyFlags: - - ClearErrors - - IntOp $4 $4 + 1 - IntCmp $4 $MUI_TEMP2 0 0 endApplyFlags - - !insertmacro INSTALLOPTIONS_READ $1 "${FILE}" $4 SerialID - !insertmacro INSTALLOPTIONS_READ $9 "${FILE}" $4 FirstField - !insertmacro INSTALLOPTIONS_READ $2 "${FILE}" $4 FLAGS - - !insertmacro UMUI_STRCOUNT "NUMBERS" "$2" - Pop $7 - IntCmp $7 0 0 loopApplyFlags loopApplyFlags - - !insertmacro UMUI_STRCOUNT "TOLOWER" "$2" - Pop $7 - !insertmacro UMUI_STRCOUNT "TOUPPER" "$2" - Pop $8 - - ;if $7 = $8 = 0 goto end - IntCmp $7 0 0 +2 +2 - IntCmp $8 0 loopApplyFlags 0 0 - - ;if $7 != 0 && $8 != 0 goto end - IntCmp $7 0 +2 0 0 - IntCmp $8 0 0 loopApplyFlags loopApplyFlags - - loopSerialApplyFlags: - !insertmacro INSTALLOPTIONS_READ $6 "${FILE}" "Field $9" State - - ;if flag is lower - IntCmp $7 0 +2 0 0 - ;then - System::Call "User32::CharLower(t r6 r6)i" - ;endif - - ;if flag is upper - IntCmp $8 0 +2 0 0 - ;then - System::Call "User32::CharUpper(t r6 r6)i" - ;endif - - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field $9" State $6 - - !insertmacro INSTALLOPTIONS_READ $0 "${FILE}" "Field $9" HWND - IfErrors +2 0 - SendMessage $0 ${WM_SETTEXT} 0 "STR:$6" - ClearErrors - - !insertmacro INSTALLOPTIONS_READ $9 "${FILE}" "Field $9" NextField - IfErrors 0 loopSerialApplyFlags - - Goto loopApplyFlags - endApplyFlags: - - Pop $9 - Pop $8 - Pop $7 - Pop $6 - Pop $4 - Pop $2 - Pop $1 - Pop $0 - -!macroend - - - -!macro UMUI_SERIALNUMBERPAGE_SAVE FILE - - Push $0 - Push $1 - Push $2 - Push $3 - Push $4 - Push $5 - Push $6 - Push $7 - Push $8 - Push $9 - - ; $MUI_TEMP2 : serials line number - ; $0 : temp var - ; $1 : curent ID - ; $2 : curent FLAGS - ; $3 : temp var - ; $4 : the curent serial number - ; $5 : full serial number - ; $6 : one portion of the $5 serial number - ; $7 : temp var - ; $8 : Is FLAGS == "NODASHS" - ; $9 : current field - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "${FILE}" Settings NumTasks - - StrCpy $4 0 - - loopSave: - - ClearErrors - StrCpy $5 "" - - IntOp $4 $4 + 1 - IntCmp $4 $MUI_TEMP2 0 0 endSave - - !insertmacro INSTALLOPTIONS_READ $1 "${FILE}" $4 SerialID - !insertmacro INSTALLOPTIONS_READ $9 "${FILE}" $4 FirstField - !insertmacro INSTALLOPTIONS_READ $2 "${FILE}" $4 FLAGS - - !insertmacro UMUI_STRCOUNT "NODASHS" "$2" - Pop $8 - - loopSerial: - - !insertmacro INSTALLOPTIONS_READ $6 "${FILE}" "Field $9" State - - ;if $8 != 0 - IntCmp $8 0 +3 0 0 - ;then - StrCpy $5 "$5$6" - Goto +2 - ;else - StrCpy $5 "$5-$6" - ;endif - - !insertmacro INSTALLOPTIONS_READ $9 "${FILE}" "Field $9" NextField - StrCmp $9 "" 0 loopSerial - ClearErrors - - StrCpy $0 $5 1 ; get first char - StrCmp $0 "-" 0 +2 - StrCpy $5 $5 "" 1 - - !insertmacro INSTALLOPTIONS_WRITE "SerialNumberList.ini" "Serial $1" SN "$5" - - !insertmacro INSTALLOPTIONS_READ $3 "SerialNumberList.ini" "Serial $1" REGISTRY_VALUENAME - IfErrors loopSave 0 - - !insertmacro INSTALLOPTIONS_READ $0 "SerialNumberList.ini" "Serial $1" REGISTRY_ROOT - !insertmacro INSTALLOPTIONS_READ $7 "SerialNumberList.ini" "Serial $1" REGISTRY_KEY - - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY "$0" "$7" "$3" "$5" - - Goto loopSave - endSave: - - Pop $9 - Pop $8 - Pop $7 - Pop $6 - Pop $5 - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Pop $0 - -!macroend - - -!macro UMUI_SERIALNUMBERPAGE_ADD_LINE - - !verbose push - !verbose ${MUI_VERBOSE} - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 6 - - !verbose pop - -!macroend - -!macro UMUI_SERIALNUMBERPAGE_ADD_HLINE - - !verbose push - !verbose ${MUI_VERBOSE} - - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "HLine" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "5" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-1" - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 3 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 4 - - !verbose pop - -!macroend - -!macro UMUI_SERIALNUMBERPAGE_ADD_LABEL TEXT - - !verbose push - !verbose ${MUI_VERBOSE} - - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "Label" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "${TEXT}" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "5" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-5" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 10 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" - - !verbose pop - -!macroend - -; ID: A unique identifiant for this serial number -; STR: 555 for 3 inputs of 5 characters each -; FLAGS: "", NODASHS, TOUPPER, TOLOWER, NUMBERS, CANBEEMPTY -; DEFAULT: XXXXX-XXXXX-XXXXX OR XXXXXXXXXXXXXXX -; WIDTH: The initial width -!macro UMUI_SERIALNUMBERPAGE_CREATE ID STR FLAGS DEFAULT TEXT WIDTH - - !define UMUI_UNIQUEIDSN ${__LINE__} - - Push $0 - Push $1 - Push $2 - Push $3 - Push $4 - Push $5 - Push $6 - Push $7 - Push $8 - Push $9 - Push $R0 - - ; $MUI_TEMP1 : name of the ini file - ; $MUI_TEMP2 : serials line counter - ; $UMUI_TEMP3 : field counter for all the page - ; $UMUI_TEMP4 : current height of all fields - ; $0 : source str (555 for 3 inputs of 5 characters each) - ; $1 : temp var - ; $2 : one of the $0 numbers - ; $3 : the current width - ; $4 : the curent serial value - ; $5 : the next chars of the curent serial value - ; $6 : one portion of the $5 serial number - ; $7 : temp var - ; $8 : Is FLAGS == "NUMBERS" - ; $9 : first field - ; $R0 : Is FLAGS == "CANBEEMPTY" - - StrCpy $0 "${STR}" - StrCpy $7 0 - StrCpy $3 "${WIDTH}" - - !ifdef UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME - !ifndef UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME, the UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT & UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME, the UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT & UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - ClearErrors - ReadRegStr $5 "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT}" "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY}" "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME}" - IfErrors 0 +2 - StrCpy $5 "${DEFAULT}" - ClearErrors - !else - StrCpy $5 "${DEFAULT}" - !endif - - StrCpy $4 $5 - - !insertmacro UMUI_STRCOUNT "NUMBERS" "${FLAGS}" - Pop $8 - !insertmacro UMUI_STRCOUNT "CANBEEMPTY" "${FLAGS}" - Pop $R0 - - ;foreach number of $0 AS $2 - loop1${UMUI_UNIQUEIDSN}: - StrCpy $2 $0 1 ; Get the next source char - - StrCmp $2 "" done1${UMUI_UNIQUEIDSN} ; Abort when none left - StrCpy $0 $0 "" 1 ; Remove it from the source - - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 - - ; add the on text change notify if installoptionsex - !ifdef UMUI_USE_INSTALLOPTIONSEX - StrLen $1 "${STR}" - StrCmp $1 1 endTextChange${UMUI_UNIQUEIDSN} 0 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Notify ONTEXTCHANGE - endTextChange${UMUI_UNIQUEIDSN}: - !endif - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "text" - - changeLine${UMUI_UNIQUEIDSN}: - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "$3" - - ;if $2 = 0 - IntCmp $2 0 0 +3 +3 - ;then - StrCpy $3 -1 - Goto +3 - ;else - IntOp $1 $2 * 7 - IntOp $3 $1 + $3 - ;endif - -!ifdef USE_MUIEx | UMUI_ULTRAMODERN_SMALL -;---------------- - IntCmp $3 300 +4 +4 0 -!else -;---------------- - IntCmp $3 315 +4 +4 0 -!endif -;---------------- - StrCpy $3 ${WIDTH} - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 14 - Goto changeLine${UMUI_UNIQUEIDSN} - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "$3" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 12 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" - IntOp $UMUI_TEMP4 $UMUI_TEMP4 - 12 - - ;if $2 = 0 ; no limit - IntCmp $2 0 0 notnull${UMUI_UNIQUEIDSN} notnull${UMUI_UNIQUEIDSN} - ;then - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "$5" - Goto done2${UMUI_UNIQUEIDSN} - ;else - notnull${UMUI_UNIQUEIDSN}: - StrCpy $6 $5 $2 ; Get $2 next source char - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "$6" - - StrCpy $5 $5 "" $2 ; Remove it from the source - - ;if $5 next char is "-" remove - StrCpy $6 $5 1 ; Get the next source char - StrCmp $6 "-" 0 +2 - StrCpy $5 $5 "" 1 ; Remove it from the source - ;endif - ;endif - done2${UMUI_UNIQUEIDSN}: - - ;if $2 != 0 - IntCmp $2 0 null${UMUI_UNIQUEIDSN} 0 0 - ;then - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" MaxLen "$2" - - ;if $R0 == 0 - IntCmp $R0 0 0 endCanBeEmpty${UMUI_UNIQUEIDSN} endCanBeEmpty${UMUI_UNIQUEIDSN} - ;then - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" MinLen "$2" - ;end - endCanBeEmpty${UMUI_UNIQUEIDSN}: - - StrCpy $UMUI_SNTEXT "${TEXT}" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" ValidateText "${UMUI_SERIALNUMBERPAGE_INVALIDATE_TEXT}" - Goto endnull${UMUI_UNIQUEIDSN} - - ;else - null${UMUI_UNIQUEIDSN}: - - ;if $R0 == 0 - IntCmp $R0 0 0 endCanBeEmpty2${UMUI_UNIQUEIDSN} endCanBeEmpty2${UMUI_UNIQUEIDSN} - ;then - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" MinLen "1" - StrCpy $UMUI_SNTEXT "${TEXT}" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" ValidateText "${UMUI_SERIALNUMBERPAGE_INVALIDATE_TEXT}" - ;end - endCanBeEmpty2${UMUI_UNIQUEIDSN}: - - ;endif - endnull${UMUI_UNIQUEIDSN}: - - ;if $8 != 0 - IntCmp $8 0 flagNoNumbers${UMUI_UNIQUEIDSN} 0 0 - ;then - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Flags "ONLY_NUMBERS" - ;endif - flagNoNumbers${UMUI_UNIQUEIDSN}: - - ;if $7 != 0 - IntCmp $7 0 isfirst${UMUI_UNIQUEIDSN} - ;then - IntOp $1 $UMUI_TEMP3 - 2 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" BackField "$1" - Goto endfirst${UMUI_UNIQUEIDSN} - ;else - isfirst${UMUI_UNIQUEIDSN}: - StrCpy $9 $UMUI_TEMP3 - ;endif - endfirst${UMUI_UNIQUEIDSN}: - - IntOp $7 $7 + 1 - - ;if $2 == 0 done1 - IntCmp $2 0 done1${UMUI_UNIQUEIDSN} 0 0 - - ; draw "_" - StrCpy $2 $0 1 ; Get the next source char - StrCmp $2 "" done1${UMUI_UNIQUEIDSN} ; Abort when none left - - IntOp $1 $UMUI_TEMP3 + 2 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" NextField "$1" - - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "label" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "_" - IntOp $UMUI_TEMP4 $UMUI_TEMP4 - 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 10 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" - IntOp $UMUI_TEMP4 $UMUI_TEMP4 - 9 - IntOp $3 $3 + 3 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "$3" - IntOp $3 $3 + 7 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "$3" - - Goto loop1${UMUI_UNIQUEIDSN} - - done1${UMUI_UNIQUEIDSN}: - ;endforeach - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 15 - - ;save to list serial ini - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "$MUI_TEMP1" "Settings" NumTasks - - IntOp $MUI_TEMP2 $MUI_TEMP2 + 1 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumTasks "$MUI_TEMP2" - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "$MUI_TEMP2" SerialID "${ID}" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "$MUI_TEMP2" FirstField "$9" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "$MUI_TEMP2" FLAGS "${FLAGS}" - - !ifdef UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME - !insertmacro INSTALLOPTIONS_WRITE "SerialNumberList.ini" "Serial ${ID}" REGISTRY_ROOT "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT}" - !insertmacro INSTALLOPTIONS_WRITE "SerialNumberList.ini" "Serial ${ID}" REGISTRY_KEY "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY}" - !insertmacro INSTALLOPTIONS_WRITE "SerialNumberList.ini" "Serial ${ID}" REGISTRY_VALUENAME "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME}" - !endif - - ClearErrors - - !insertmacro MUI_UNSET UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME - - !undef UMUI_UNIQUEIDSN - - Pop $R0 - Pop $9 - Pop $8 - Pop $7 - Pop $6 - Pop $5 - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Pop $0 - -!macroend - - - -!macro UMUI_SERIALNUMBERPAGE_ADD_SERIAL ID STR FLAGS DEFAULT - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro UMUI_SERIALNUMBERPAGE_CREATE "${ID}" "${STR}" "${FLAGS}" "${DEFAULT}" "${ID}" "5" - - !verbose pop - -!macroend - - -!macro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL ID STR FLAGS DEFAULT TEXT - - !verbose push - !verbose ${MUI_VERBOSE} - - ;label - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 - - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "Label" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "${TEXT}:" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "5" - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "78" - - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 2 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" - IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 10 - !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" - IntOp $UMUI_TEMP4 $UMUI_TEMP4 - 12 - - ;inputs - !insertmacro UMUI_SERIALNUMBERPAGE_CREATE "${ID}" "${STR}" "${FLAGS}" "${DEFAULT}" "${TEXT}" "79" - - !verbose pop - -!macroend - - -!macro UMUI_SERIALNUMBER_GET ID VAR - - !insertmacro INSTALLOPTIONS_READ $${VAR} "SerialNumberList.ini" "Serial ${ID}" SN - ClearErrors - -!macroend - - - - - - - -!macro UMUI_PAGE_ALTERNATIVESTARTMENU ID VAR - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}STARTMENUPAGE - !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATIVESTARTMENUPAGE - - !define /IfNDef MUI_STARTMENUPAGE_DEFAULTFOLDER "$(^Name)" - !insertmacro MUI_DEFAULT_IOCONVERT MUI_STARTMENUPAGE_TEXT_TOP "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_TOP)" - !insertmacro MUI_DEFAULT_IOCONVERT MUI_STARTMENUPAGE_TEXT_CHECKBOX "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_CHECKBOX)" - - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_STARTMENUPAGE_SHELL_VAR_CONTEXT_TITLE "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_STARTMENUPAGE_TEXT_FOR_ALL_USERS "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_STARTMENUPAGE_TEXT_FOR_THE_CURRENT_USER "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - - !define MUI_STARTMENUPAGE_VARIABLE "${VAR}" - !define "MUI_STARTMENUPAGE_${ID}_VARIABLE" "${MUI_STARTMENUPAGE_VARIABLE}" - !define "MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME - !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" - - !ifndef MUI_STARTMENUPAGE_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For MUI_STARTMENUPAGE_REGISTRY_VALUENAME, the MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef MUI_STARTMENUPAGE_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define MUI_STARTMENUPAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For MUI_STARTMENUPAGE_REGISTRY_VALUENAME, the MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT" "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" - !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" - - !endif - - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW - !ifndef UMUI_USE_INSTALLOPTIONSEX - !error "You want to use a TreeView in the ALTERNATIVESTARTMENU page but you don't use InstallOptionEx. This page won't work without the UMUI_USE_INSTALLOPTIONSEX define." - !endif - !endif - - !ifndef MUI_VAR_HWND - Var MUI_HWND - !define MUI_VAR_HWND - !endif - - !ifndef UMUI_VAR_UMUI_TEMP3 - Var UMUI_TEMP3 - !define UMUI_VAR_UMUI_TEMP3 - !endif - - !ifndef UMUI_VAR_UMUI_TEMP4 - Var UMUI_TEMP4 - !define UMUI_VAR_UMUI_TEMP4 - !endif - - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT - !ifndef UMUI_VAR_UMUI_TEMP5 - Var UMUI_TEMP5 - !define UMUI_VAR_UMUI_TEMP5 - !endif - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AlternativeStartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AlternativeStartmenuLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro UMUI_FUNCTION_ALTERNATIVESTARTMENUPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AlternativeStartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AlternativeStartmenuLeave_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AlternativeStartmenuCreateList_${MUI_UNIQUEID} - - !undef MUI_STARTMENUPAGE_VARIABLE - !undef MUI_STARTMENUPAGE_TEXT_TOP - !undef MUI_STARTMENUPAGE_TEXT_CHECKBOX - !undef MUI_STARTMENUPAGE_DEFAULTFOLDER - - !undef UMUI_STARTMENUPAGE_SHELL_VAR_CONTEXT_TITLE - !undef UMUI_STARTMENUPAGE_TEXT_FOR_ALL_USERS - !undef UMUI_STARTMENUPAGE_TEXT_FOR_THE_CURRENT_USER - - !insertmacro MUI_UNSET MUI_STARTMENUPAGE_NODISABLE - !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_ROOT - !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_KEY - !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_VALUENAME - - !insertmacro MUI_UNSET UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT - !insertmacro MUI_UNSET UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW - - !verbose pop - -!macroend - - -!macro UMUI_FUNCTION_ALTERNATIVESTARTMENUPAGE PRE LEAVE CREATELIST - - !ifdef MUI_STARTMENUPAGE_NODISABLE - !define UMUI_INTERNAL_ASMGOUPBOXFIELD 4 - !define UMUI_INTERNAL_ASMALLOPTFIELD 5 - !define UMUI_INTERNAL_ASMCURRENTOPTFIELD 6 - !else - !define UMUI_INTERNAL_ASMGOUPBOXFIELD 5 - !define UMUI_INTERNAL_ASMALLOPTFIELD 6 - !define UMUI_INTERNAL_ASMCURRENTOPTFIELD 7 - !endif - - Function "${PRE}" - - StrCpy $UMUI_TEMP4 "" - - !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME - - Push $R0 - Push $R1 - Push $R2 - - ClearErrors - - StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 endreg - - ReadRegStr $MUI_TEMP1 ${MUI_STARTMENUPAGE_REGISTRY_ROOT} "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" - - StrCmp $MUI_TEMP1 "" endreg - StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" $MUI_TEMP1 - StrLen $R0 $MUI_TEMP1 - StrLen $R1 "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - - IntCmp $R0 $R1 endreg endreg 0 - ;delete de default folder from the path if it is in. - IntOp $R0 $R0 - $R1 - IntOp $R0 $R0 - 1 - - StrCpy $UMUI_TEMP4 $MUI_TEMP1 $R0 - - ;Convert this Folder path into a IOEx string - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW - !insertmacro UMUI_STRREPLACE $UMUI_TEMP4 "\" "{" $UMUI_TEMP4 - !insertmacro UMUI_STRCOUNT "{" $UMUI_TEMP4 - Pop $R0 - - loopadd: - StrCmp $R0 "0" endreg - StrCpy $UMUI_TEMP4 "$UMUI_TEMP4}" - - IntOp $R0 $R0 - 1 - Goto loopadd - !endif - - endreg: - - Pop $R2 - Pop $R1 - Pop $R0 - - !endif - - StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 +2 - StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - - !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME ; IF page skipped save - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${MUI_STARTMENUPAGE_REGISTRY_ROOT} "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" "${MUI_STARTMENUPAGE_VARIABLE}" - !endif - - ; IF setup cancelled or steuptype complete - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MINIMAL}|${UMUI_STANDARD}|${UMUI_COMPLETE}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE) - - ; disable sellvarcontext radio buttons if no admin rights - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT - UserInfo::GetAccountType - Pop $UMUI_TEMP5 - StrCmp $UMUI_TEMP5 "Admin" endcheck - StrCmp $UMUI_TEMP5 "User" endcheck - StrCmp $UMUI_TEMP5 "Power" 0 +3 - StrCpy $UMUI_TEMP5 "Admin" - Goto endcheck - StrCmp $UMUI_TEMP5 "Guest" 0 +3 - StrCpy $UMUI_TEMP5 "User" - Goto endcheck - ;if error or win 95 - StrCpy $UMUI_TEMP5 "Admin" - - endcheck: - !endif - - IfFileExists "$PLUGINSDIR\AlternativeStartMenu${ID}.ini" alreadyExists - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_ALTERNATIVESTARTMENUPAGE_INI}" "AlternativeStartMenu${ID}.ini" - - ; serach all directory and add it in the listbox/treeview - - ;Save the current ShellVarContext - !insertmacro UMUI_GETSHELLVARCONTEXT - Pop $MUI_TEMP2 - - ; In treeview mod, the create list function directly write into the ini because of the string lengh limit to 1024 characters - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW - - FlushINI "$PLUGINSDIR\AlternativeStartMenu${ID}.ini" - - FileOpen $MUI_TEMP1 "$PLUGINSDIR\AlternativeStartMenu${ID}.ini" a - - ;search the last "ListItems=" in the ini and seek just after - Push $R0 - - StrCpy $UMUI_TEMP3 0 - seekloop: - IntOp $UMUI_TEMP3 $UMUI_TEMP3 - 1 - FileSeek $MUI_TEMP1 $UMUI_TEMP3 END - !ifdef NSIS_UNICODE - FileReadUTF16LE $MUI_TEMP1 $R0 10 - !else - FileRead $MUI_TEMP1 $R0 10 - !endif - StrCmp $R0 "ListItems=" 0 seekloop - !ifdef NSIS_UNICODE - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 20 - !else - IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 10 - !endif - FileSeek $MUI_TEMP1 $UMUI_TEMP3 END - - Pop $R0 - - Push 0 - Push "" - - Call ${CREATELIST} - - FileClose $MUI_TEMP1 - - !else - - Call ${CREATELIST} - - Pop $MUI_TEMP1 - - !endif - - ;Save the saved ShellVarContext - StrCmp $MUI_TEMP2 "current" 0 +3 - SetShellVarContext current - Goto +2 - SetShellVarContext all - - ClearErrors - - - ;end search all directory and add it in the listbox/treeview - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AlternativeStartMenu${ID}.ini" "Field 1" "Text" "MUI_STARTMENUPAGE_TEXT_TOP" - - ;if in the old install the startmenu folder was disabled - StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" ">" 0 +5 - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 2" State "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 2" Flags "DISABLED" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" Flags "NOTIFY|DISABLED" - Goto +3 - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 2" State "${MUI_STARTMENUPAGE_VARIABLE}" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" State "$UMUI_TEMP4" - - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" Type "TreeView" - !endif - - ; we write only if it was not already doing by the createlist function (in case of the list lenght is > to 1024 character) - !ifndef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" ListItems "$MUI_TEMP1" - !endif - - !ifndef MUI_STARTMENUPAGE_NODISABLE - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" Bottom -12 - - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Type "CheckBox" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AlternativeStartMenu${ID}.ini" "Field 4" "Text" "MUI_STARTMENUPAGE_TEXT_CHECKBOX" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Left 0 - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Right -1 - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Top -12 - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Bottom -1 - - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" State 0 - - StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" ">" 0 +2 - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" State 1 - - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Flags NOTIFY - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Notify ONCLICK - - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Settings" NumFields 4 - !endif - - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT - - !ifdef MUI_STARTMENUPAGE_NODISABLE - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" "Bottom" "-40" - !else - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" "Top" "-52" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" "Bottom" "-40" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" "Bottom" "-53" - !endif - - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Type" "GroupBox" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Text" "UMUI_STARTMENUPAGE_SHELL_VAR_CONTEXT_TITLE" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Left" "70" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Right" "-70" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Top" "-40" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Bottom" "-1" - - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Type" "RadioButton" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Text" "UMUI_STARTMENUPAGE_TEXT_FOR_ALL_USERS" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Left" "80" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Right" "-80" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Top" "-29" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Bottom" "-19" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Flag" "GROUP" - - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Type" "RadioButton" - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Text" "UMUI_STARTMENUPAGE_TEXT_FOR_THE_CURRENT_USER" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Left" "80" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Right" "-80" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Top" "-17" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Bottom" "-7" - - StrCmp $UMUI_TEMP5 "User" 0 admin - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" Flags "DISABLED" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" Flags "DISABLED" - - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "State" "1" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "State" "0" - Goto endcontext - admin: - StrCmp $MUI_TEMP2 "current" 0 +4 - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "State" "1" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "State" "0" - Goto +3 - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "State" "1" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "State" "0" - endcontext: - - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Settings" NumFields "${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" - !endif - - alreadyExists: - - StrCpy $UMUI_TEMP3 ">" - - !ifndef MUI_STARTMENUPAGE_NODISABLE - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AlternativeStartMenu${ID}.ini" "Field 4" State - - StrCmp $MUI_TEMP1 "1" 0 nodisable - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 2" Flags "DISABLED" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" Flags "NOTIFY|DISABLED" - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" Flags "DISABLED" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" Flags "DISABLED" - !endif - Goto endnodisable - nodisable: - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 2" "State" - StrCmp $MUI_TEMP2 "" 0 +3 - GetDlgItem $MUI_HWND $HWNDPARENT 1 ;next - EnableWindow $MUI_HWND 0 - - endnodisable: - - !else - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Settings" NumFields "3" - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 2" "State" - StrCmp $MUI_TEMP2 "" 0 +3 - GetDlgItem $MUI_HWND $HWNDPARENT 1 ;next - EnableWindow $MUI_HWND 0 - - !endif - - StrCmp $MUI_TEMP1 "0" 0 noenable - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 2" Flags "" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" Flags "NOTIFY" - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT - StrCmp $UMUI_TEMP5 "Admin" 0 noenable - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" Flags "" - !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" Flags "" - !endif - noenable: - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_DISPLAY_RETURN "AlternativeStartMenu${ID}.ini" - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - ;only the first time, get the HWND - StrCmp $UMUI_TEMP3 ">" 0 +2 - Pop $UMUI_TEMP3 - - GetDlgItem $MUI_HWND $HWNDPARENT 1 ;next - EnableWindow $MUI_HWND 1 - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AlternativeStartMenu${ID}.ini" "Settings" State - - ; if not next, back or cancel - StrCmp $MUI_TEMP1 "0" ok 0 - - ; if inputtext - StrCmp $MUI_TEMP1 "2" 0 noinputtext - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 2" "State" - StrCmp $MUI_TEMP2 "" 0 +2 - EnableWindow $MUI_HWND 0 - - ClearErrors - Abort - - noinputtext: - ; if listbox or treeview - StrCmp $MUI_TEMP1 "3" 0 checkbox - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 3" "State" - - ;Conversion IOEx State string into Folder string - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW - !insertmacro UMUI_STRREPLACE $MUI_TEMP2 "{" "\" $MUI_TEMP2 - !insertmacro UMUI_STRREPLACE $MUI_TEMP2 "}" "" $MUI_TEMP2 - !endif - - GetDlgItem $MUI_HWND $UMUI_TEMP3 1201 ;"Field 2" "HWND" - SendMessage $MUI_HWND ${WM_SETTEXT} 0 "STR:$MUI_TEMP2\${MUI_STARTMENUPAGE_DEFAULTFOLDER}" - - ClearErrors - Abort - - checkbox: - !ifndef MUI_STARTMENUPAGE_NODISABLE - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 4" "State" - StrCmp $MUI_TEMP2 "0" 0 +3 - StrCpy $MUI_TEMP2 1 - Goto +2 - StrCpy $MUI_TEMP2 0 - - GetDlgItem $MUI_HWND $UMUI_TEMP3 1201 ;"Field 2" "HWND" - EnableWindow $MUI_HWND $MUI_TEMP2 - GetDlgItem $MUI_HWND $UMUI_TEMP3 1202 ;"Field 3" "HWND" - EnableWindow $MUI_HWND $MUI_TEMP2 - - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT - - ; enable only if admin rights - StrCmp $UMUI_TEMP5 "Admin" 0 +5 - - GetDlgItem $MUI_HWND $UMUI_TEMP3 1205 ;"Field 6" "HWND" - EnableWindow $MUI_HWND $MUI_TEMP2 - GetDlgItem $MUI_HWND $UMUI_TEMP3 1206 ;"Field 7" "HWND" - EnableWindow $MUI_HWND $MUI_TEMP2 - - !endif - - StrCmp $MUI_TEMP2 "1" 0 endcheckbox - - GetDlgItem $MUI_HWND $HWNDPARENT 1 ;next - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 2" "State" - StrCmp $MUI_TEMP2 "" 0 +2 - EnableWindow $MUI_HWND 0 - - endcheckbox: - - Abort - - !endif - - Goto end - ok: - - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT - - !ifdef UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME - !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_SHELLVARCONTEXT_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_SHELLVARCONTEXT_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !endif - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" State - StrCmp $MUI_TEMP1 "1" 0 current - SetShellVarContext all - !ifdef UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_SHELLVARCONTEXT_REGISTRY_ROOT} "${UMUI_SHELLVARCONTEXT_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" "all" - !endif - Goto endcontext - - current: - SetShellVarContext current - !ifdef UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_SHELLVARCONTEXT_REGISTRY_ROOT} "${UMUI_SHELLVARCONTEXT_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" "current" - !endif - endcontext: - - !endif - - ClearErrors - - !ifndef MUI_STARTMENUPAGE_NODISABLE - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AlternativeStartMenu${ID}.ini" "Field 4" State - StrCmp $MUI_TEMP1 "1" 0 +3 - StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" ">" - Goto +2 - !endif - - !insertmacro INSTALLOPTIONS_READ "${MUI_STARTMENUPAGE_VARIABLE}" "AlternativeStartMenu${ID}.ini" "Field 2" State - - !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${MUI_STARTMENUPAGE_REGISTRY_ROOT} "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" "${MUI_STARTMENUPAGE_VARIABLE}" - !endif - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - end: - - FunctionEnd - - Function "${CREATELIST}" - - !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW - !insertmacro UMUI_INTERNAL_CREATE_SMTREELIST - !else - !insertmacro UMUI_INTERNAL_CREATE_SMLIST - !endif - - FunctionEnd - - !undef UMUI_INTERNAL_ASMGOUPBOXFIELD - !undef UMUI_INTERNAL_ASMALLOPTFIELD - !undef UMUI_INTERNAL_ASMCURRENTOPTFIELD - -!macroend - - -!macro UMUI_INTERNAL_CREATE_SMLIST_LOOP SHELLVARCONTEXT - - SetShellVarContext ${SHELLVARCONTEXT} - - FindFirst $R3 $R1 "$SMPROGRAMS\$R4\*" - FindNext $R3 $R1 - - loop${SHELLVARCONTEXT}: - FindNext $R3 $R1 - - StrCmp $R1 "" exit${SHELLVARCONTEXT} - IfFileExists "$SMPROGRAMS\$R4\$R1\*" 0 loop${SHELLVARCONTEXT} - nsArray::Set "SMProgList$R2" /key='$R1' '$R1' - Goto loop${SHELLVARCONTEXT} - - exit${SHELLVARCONTEXT}: - FindClose $R3 - -!macroend - -; Generate the folder list for a listview -!macro UMUI_INTERNAL_CREATE_SMLIST - - Push $R4 ; directory to explore and the returned item list - Push $R1 ; current folder to look - Push $R3 ; the folder handle - Push $R2 ; Array name level (empty in this macro) - - StrCpy $R4 "" - StrCpy $R2 "" - - !insertmacro UMUI_INTERNAL_CREATE_SMLIST_LOOP all - !insertmacro UMUI_INTERNAL_CREATE_SMLIST_LOOP current - - nsArray::Sort "SMProgList$R2" 4 - - nsArray::Join "SMProgList$R2" "|" - Pop $R4 - - nsArray::Clear "SMProgList$R2" - - Pop $R2 - Pop $R3 - Pop $R1 - - Exch $R4 ; return the item list - -!macroend - - -; Generate the folder list for a treeview -!macro UMUI_INTERNAL_CREATE_SMTREELIST - - Exch $R4 ; directory to explore - Exch ; $R4 under $R2 - Exch $R2 ; Array name level number - - Push $R0 ; counter of the number of items added in this subdirectory - Push $R1 ; current folder to look and treeview: pop the return of the recursive function - Push $R3 ; the folder handle - Push $R5 ; the number of the level - Push $R6 ; the current item returned by the Read function - - !insertmacro UMUI_INTERNAL_CREATE_SMLIST_LOOP all - !insertmacro UMUI_INTERNAL_CREATE_SMLIST_LOOP current - - nsArray::Sort "SMProgList$R2" 4 - - IntOp $R5 $R2 + 1 - StrCpy $R1 0 - StrCpy $R0 0 - - ;for each item of the $R2 level, begin with the end - loop: - ClearErrors - nsArray::Get "SMProgList$R2" /at=$R0 - IfErrors end 0 - Pop $R6 ; key - Pop $R6 ; value - - StrCmp $R2 "0" endfirstleveltest 0 - StrCmp $R0 "0" 0 +3 - !ifdef NSIS_UNICODE - FileWriteUTF16LE $MUI_TEMP1 "{" - !else - FileWrite $MUI_TEMP1 "{" - !endif - Goto endfirstleveltest - StrCmp $R1 "}" +2 0 - !ifdef NSIS_UNICODE - FileWriteUTF16LE $MUI_TEMP1 "|" - !else - FileWrite $MUI_TEMP1 "|" - !endif - endfirstleveltest: - StrCmp $R2 "0" 0 +4 - StrCmp $R0 "0" +3 0 - StrCmp $R1 "}" +2 0 - !ifdef NSIS_UNICODE - FileWriteUTF16LE $MUI_TEMP1 "|" - !else - FileWrite $MUI_TEMP1 "|" - !endif - - !ifdef NSIS_UNICODE - FileWriteUTF16LE $MUI_TEMP1 "$R6" - !else - FileWrite $MUI_TEMP1 "$R6" - !endif - - Push $R5 - Push "$R4\$R6" - Call ${CREATELIST} - Pop $R1 - - IntOp $R0 $R0 + 1 - - Goto loop - end: - - StrCpy $R4 "0" - - StrCmp $R2 "0" +4 0 - StrCmp $R0 "0" +3 0 - !ifdef NSIS_UNICODE - FileWriteUTF16LE $MUI_TEMP1 "}" - !else - FileWrite $MUI_TEMP1 "}" - !endif - StrCpy $R4 "}" - - nsArray::Clear "SMProgList$R2" - - Pop $R6 - Pop $R5 - Pop $R3 - Pop $R1 - Pop $R0 - - StrCmp $R2 "0" 0 nolevel0 - Pop $R2 - Pop $R4 - Goto +3 - nolevel0: - Pop $R2 - Exch $R4 ; return "}" if it is the last character writed in the ini file, "0" otherwise and nothing if root directory - -!macroend - - - - -!macro UMUI_INTERNAL_PAGES_SETUPTYPE_MAINTENANCE_INI_4OPTIONS FILE - - !ifdef UMUI_USE_SMALL_PAGES - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 1" Bottom 17 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 2" Top 17 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 2" Bottom 27 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 3" Top 27 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 3" Bottom 47 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 4" Top 27 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 4" Bottom 48 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 5" Top 48 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 5" Bottom 58 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 6" Top 58 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 6" Bottom 78 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 7" Top 58 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 7" Bottom 79 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 8" Top 79 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 8" Bottom 89 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 9" Top 89 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 9" Bottom 109 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 10" Top 89 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 10" Bottom 110 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 11" Top 110 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 11" Bottom 120 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 12" Top 120 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 12" Bottom 140 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 13" Top 120 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 13" Bottom 140 - !endif - -!macroend - - - -!macro UMUI_PAGE_SETUPTYPE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}SETUPTYPEPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_INFO_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_MINIMAL_TITLE "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_MINIMAL_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_MINIMAL_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_STANDARD_TITLE "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_STANDARD_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_STANDARD_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_COMPLETE_TITLE "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_COMPLETE_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_COMPLETE_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_CUSTOM_TITLE "$(UMUI_TEXT_SETUPTYPE_CUSTOM_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_CUSTOM_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_CUSTOM_TEXT)" - -!ifndef USE_MUIEx -;----------------- - !define /IfNDef UMUI_SETUPTYPEPAGE_MINIMALBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Minimal.bmp" - !define /IfNDef UMUI_SETUPTYPEPAGE_STANDARDBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Standard.bmp" - !define /IfNDef UMUI_SETUPTYPEPAGE_COMPLETEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Complete.bmp" - !define /IfNDef UMUI_SETUPTYPEPAGE_CUSTOMBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Custom.bmp" -!else -;----- - !define /IfNDef UMUI_SETUPTYPEPAGE_MINIMALBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\MinimalEx.bmp" - !define /IfNDef UMUI_SETUPTYPEPAGE_STANDARDBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\StandardEx.bmp" - !define /IfNDef UMUI_SETUPTYPEPAGE_COMPLETEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\CompleteEx.bmp" - !define /IfNDef UMUI_SETUPTYPEPAGE_CUSTOMBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\CustomEx.bmp" -!endif -;------ - - !define /IfNDef UMUI_SETUPTYPEPAGE_DEFAULTCHOICE ${UMUI_CUSTOM} - - !ifdef UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME - !ifndef UMUI_SETUPTYPEPAGE_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_SETUPTYPEPAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME, the UMUI_SETUPTYPEPAGE_REGISTRY_ROOT & UMUI_SETUPTYPEPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_SETUPTYPEPAGE_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_SETUPTYPEPAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME, the UMUI_SETUPTYPEPAGE_REGISTRY_ROOT & UMUI_SETUPTYPEPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !endif - - !ifndef UMUI_VAR_UMUI_TEMP3 - Var UMUI_TEMP3 - !define UMUI_VAR_UMUI_TEMP3 - !endif - - !ifndef UMUI_VAR_UMUI_TEMP4 - Var UMUI_TEMP4 - !define UMUI_VAR_UMUI_TEMP4 - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypeLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro UMUI_FUNCTION_SETUPTYPEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypeLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_TEXT - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_MINIMAL_TITLE - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_MINIMAL_TEXT - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_STANDARD_TITLE - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_STANDARD_TEXT - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_COMPLETE_TITLE - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_COMPLETE_TEXT - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_CUSTOM_TITLE - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_CUSTOM_TEXT - - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_MINIMALBITMAP - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_STANDARDBITMAP - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_COMPLETEBITMAP - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_CUSTOMBITMAP - - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_MINIMAL - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_STANDARD - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_COMPLETE - - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_DEFAULTCHOICE - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_REGISTRY_ROOT - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_REGISTRY_KEY - !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME - - !verbose pop - -!macroend - - -!macro UMUI_UNPAGE_SETUPTYPE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro UMUI_PAGE_SETUPTYPE - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - - -!macro UMUI_FUNCTION_SETUPTYPEPAGE PRE LEAVE - - Function "${PRE}" - - IfFileExists "$PLUGINSDIR\SetupType.ini" alreadyExists - - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI}" "SetupType.ini" - - ;reduce the size of the page win 4 options and a small installer - !ifdef UMUI_SETUPTYPEPAGE_MINIMAL & UMUI_SETUPTYPEPAGE_STANDARD & UMUI_SETUPTYPEPAGE_COMPLETE - !insertmacro UMUI_INTERNAL_PAGES_SETUPTYPE_MAINTENANCE_INI_4OPTIONS "SetupType.ini" - !endif - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SetupType.ini" "Field 1" "Text" "UMUI_SETUPTYPEPAGE_TEXT" - - ;Get registry and set the insttype - StrCpy $UMUI_TEMP4 ${UMUI_SETUPTYPEPAGE_DEFAULTCHOICE} - - !ifdef UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME - - ReadRegStr $MUI_TEMP1 ${UMUI_SETUPTYPEPAGE_REGISTRY_ROOT} "${UMUI_SETUPTYPEPAGE_REGISTRY_KEY}" "${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" - - StrCmp $MUI_TEMP1 "MINIMAL" 0 nominimal - StrCpy $UMUI_TEMP4 ${UMUI_MINIMAL} - Goto endreg - nominimal: - StrCmp $MUI_TEMP1 "STANDARD" 0 nostandard - StrCpy $UMUI_TEMP4 ${UMUI_STANDARD} - Goto endreg - nostandard: - StrCmp $MUI_TEMP1 "COMPLETE" 0 nocomplete - StrCpy $UMUI_TEMP4 ${UMUI_COMPLETE} - Goto endreg - nocomplete: - StrCmp $MUI_TEMP1 "CUSTOM" 0 endreg - StrCpy $UMUI_TEMP4 ${UMUI_CUSTOM} - endreg: - - ClearErrors - - ; IF page skipped save - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_SETUPTYPEPAGE_REGISTRY_ROOT} "${UMUI_SETUPTYPEPAGE_REGISTRY_KEY}" "${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" $MUI_TEMP1 - - !endif - - !define UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER 1 - - !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_ADDOPTION MINIMAL - !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_ADDOPTION STANDARD - !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_ADDOPTION COMPLETE - - File "/oname=$PLUGINSDIR\Custom.bmp" "${UMUI_SETUPTYPEPAGE_CUSTOMBITMAP}" - !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 - - StrCmp $UMUI_TEMP4 ${UMUI_CUSTOM} 0 +3 - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" State "1" - Goto +2 - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" State "0" - - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeID "-1" - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeOption "${UMUI_CUSTOM}" - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeOptionName "CUSTOM" - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "UMUI_SETUPTYPEPAGE_CUSTOM_TITLE" - !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "$PLUGINSDIR\Custom.bmp" - !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "UMUI_SETUPTYPEPAGE_CUSTOM_TEXT" - - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Settings" "NumFields" "${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" - - !undef UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER - - alreadyExists: - - ; IF setup cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_REPAIR}|${UMUI_UPDATE} - - ; Bodenseematze-2016-09-15: missing PRE-Function support added: - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_TITLE)" "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_SUBTITLE)" - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_DISPLAY "SetupType.ini" - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_GETOPTION 2 - !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_GETOPTION 5 - !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_GETOPTION 8 - !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_GETOPTION 11 - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - FunctionEnd - -!macroend - -!macro UMUI_INTERNAL_PAGE_SETUPTYPE_ADDOPTION OPTION - - !ifdef UMUI_SETUPTYPEPAGE_${OPTION} - File "/oname=$PLUGINSDIR\${OPTION}.bmp" "${UMUI_SETUPTYPEPAGE_${OPTION}BITMAP}" - !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 - - ;search the ID of the InstType Associated to this option - ClearErrors - StrCpy $MUI_TEMP2 0 - loop${OPTION}: - InstTypeGetText $MUI_TEMP2 $UMUI_TEMP3 - IfErrors notfound${OPTION} - StrCmp $UMUI_TEMP3 "${UMUI_SETUPTYPEPAGE_${OPTION}}" found${OPTION} 0 - IntOp $MUI_TEMP2 $MUI_TEMP2 + 1 - Goto loop${OPTION} - found${OPTION}: - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeID "$MUI_TEMP2" - Goto end${OPTION} - notfound${OPTION}: - ClearErrors - MessageBox MB_OK "Error: ${UMUI_SETUPTYPEPAGE_${OPTION}} is not an defined InstType...$\nThis option will not work." - end${OPTION}: - - StrCmp $UMUI_TEMP4 ${UMUI_${OPTION}} 0 +4 - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" State "1" - SetCurInstType $MUI_TEMP2 - Goto +2 - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" State "0" - - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeOption "${UMUI_${OPTION}}" - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeOptionName "${OPTION}" - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "UMUI_SETUPTYPEPAGE_${OPTION}_TITLE" - !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 - !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "$PLUGINSDIR\${OPTION}.bmp" - !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "UMUI_SETUPTYPEPAGE_${OPTION}_TEXT" - !endif - -!macroend - -!macro UMUI_INTERNAL_PAGE_SETUPTYPE_GETOPTION FIELDNUMBER - - !insertmacro INSTALLOPTIONS_READ $UMUI_TEMP3 "SetupType.ini" "Field ${FIELDNUMBER}" "InstTypeOption" - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "SetupType.ini" "Field ${FIELDNUMBER}" "State" - StrCmp $MUI_TEMP1 "1" 0 no${FIELDNUMBER} - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "SetupType.ini" "Field ${FIELDNUMBER}" "InstTypeID" - StrCmp $MUI_TEMP2 "-1" +2 0 - SetCurInstType $MUI_TEMP2 - - !insertmacro UMUI_SET_INSTALLFLAG $UMUI_TEMP3 - - !ifdef UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "SetupType.ini" "Field ${FIELDNUMBER}" "InstTypeOptionName" - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_SETUPTYPEPAGE_REGISTRY_ROOT} "${UMUI_SETUPTYPEPAGE_REGISTRY_KEY}" "${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" $MUI_TEMP1 - !endif - - Goto end${FIELDNUMBER} - no${FIELDNUMBER}: - !insertmacro UMUI_UNSET_INSTALLFLAG $UMUI_TEMP3 - end${FIELDNUMBER}: - -!macroend - -!macro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT - - Push $R0 - Push $R1 - - !insertmacro INSTALLOPTIONS_READ $R1 "SetupType.ini" "Field 2" "State" - StrCmp $R1 "1" 0 +3 - !insertmacro INSTALLOPTIONS_READ $R0 "SetupType.ini" "Field 2" "Text" - Goto end - - !insertmacro INSTALLOPTIONS_READ $R1 "SetupType.ini" "Field 5" "State" - StrCmp $R1 "1" 0 +3 - !insertmacro INSTALLOPTIONS_READ $R0 "SetupType.ini" "Field 5" "Text" - Goto end - - !insertmacro INSTALLOPTIONS_READ $R1 "SetupType.ini" "Field 8" "State" - StrCmp $R1 "1" 0 +3 - !insertmacro INSTALLOPTIONS_READ $R0 "SetupType.ini" "Field 8" "Text" - Goto end - - !insertmacro INSTALLOPTIONS_READ $R0 "SetupType.ini" "Field 11" "Text" - - end: - - Push $R1 - Exch $R0 - -!macroend - - - -!macro UMUI_PAGE_MAINTENANCE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}MAINTENANCEPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_TEXT "$(UMUI_TEXT_MAINTENANCE_INFO_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_MODIFY_TITLE "$(UMUI_TEXT_MAINTENANCE_MODIFY_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_MODIFY_TEXT "$(UMUI_TEXT_MAINTENANCE_MODIFY_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_REPAIR_TITLE "$(UMUI_TEXT_MAINTENANCE_REPAIR_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_REPAIR_TEXT "$(UMUI_TEXT_MAINTENANCE_REPAIR_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_REMOVE_TITLE "$(UMUI_TEXT_MAINTENANCE_REMOVE_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_REMOVE_TEXT "$(UMUI_TEXT_MAINTENANCE_REMOVE_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TITLE "$(UMUI_TEXT_MAINTENANCE_CONTINUE_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TEXT "$(UMUI_TEXT_MAINTENANCE_CONTINUE_TEXT)" - -!ifndef USE_MUIEx -;----------------- - !define /IfNDef UMUI_MAINTENANCEPAGE_MODIFYBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Modify.bmp" - !define /IfNDef UMUI_MAINTENANCEPAGE_REPAIRBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Repair.bmp" - !define /IfNDef UMUI_MAINTENANCEPAGE_REMOVEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Remove.bmp" - !define /IfNDef UMUI_MAINTENANCEPAGE_CONTINUE_SETUPBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Continue.bmp" -!else -;----- - !define /IfNDef UMUI_MAINTENANCEPAGE_MODIFYBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\ModifyEx.bmp" - !define /IfNDef UMUI_MAINTENANCEPAGE_REPAIRBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\RepairEx.bmp" - !define /IfNDef UMUI_MAINTENANCEPAGE_REMOVEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\RemoveEx.bmp" - !define /IfNDef UMUI_MAINTENANCEPAGE_CONTINUE_SETUPBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\ContinueEx.bmp" -!endif -;------ - - !ifdef UMUI_MAINTENANCEPAGE_MODIFY - !define /IfNDef UMUI_MAINTENANCEPAGE_DEFAULTCHOICE ${UMUI_MODIFY} - !else ifdef UMUI_MAINTENANCEPAGE_REPAIR - !define /IfNDef UMUI_MAINTENANCEPAGE_DEFAULTCHOICE ${UMUI_REPAIR} - !endif - - !ifndef UMUI_MAINTENANCEPAGE_MODIFY & UMUI_MAINTENANCEPAGE_REPAIR - !error "Maintenance page: You need to define at least one of these options: UMUI_MAINTENANCEPAGE_MODIFY or UMUI_MAINTENANCEPAGE_REPAIR." - !endif - - !ifdef UMUI_MAINTENANCEPAGE_REMOVE - !ifndef UMUI_UNINSTALL_FULLPATH | UMUI_UNINSTALLPATH_REGISTRY_VALUENAME - !error "Maintenance page: You need to set the UMUI_UNINSTALL_FULLPATH and UMUI_UNINSTALLPATH_REGISTRY_VALUENAME defines with the UMUI_MAINTENANCEPAGE_REMOVE option." - !endif - !endif - - !ifndef UMUI_PREUNINSTALL_FUNCTION - !warning "Maintenance page: You need to set the UMUI_PREUNINSTALL_FUNCTION define with a clean install function." - !endif - - !ifndef UMUI_VERBUILD_REGISTRY_VALUENAME | UMUI_VERBUILD - !error "Maintenance page: You need to set the UMUI_VERBUILD_REGISTRY_VALUENAME and UMUI_VERBUILD defines with this page." - !endif - - !ifndef UMUI_VAR_UMUI_TEMP3 - Var UMUI_TEMP3 - !define UMUI_VAR_UMUI_TEMP3 - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypeLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro UMUI_FUNCTION_MAINTENANCEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypeLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_TEXT - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_MODIFY_TITLE - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_MODIFY_TEXT - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REPAIR_TITLE - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REPAIR_TEXT - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REMOVE_TITLE - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REMOVE_TEXT - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TITLE - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TEXT - - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_MODIFYBITMAP - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REPAIRBITMAP - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REMOVEBITMAP - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_CONTINUE_SETUPBITMAP - - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_DEFAULTCHOICE - - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_MODIFY - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REPAIR - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REMOVE - !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_CONTINUE_SETUP - - !verbose pop - -!macroend - - -!macro UMUI_UNPAGE_MAINTENANCE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !ifndef UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME - !warning "The MAINTENANCE unpage need the UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME define" - !endif - - !ifndef UMUI_VAR_UMUI_TEMP4 - Var UMUI_TEMP4 - !define UMUI_VAR_UMUI_TEMP4 - !endif - - !insertmacro UMUI_PAGE_MAINTENANCE - - ; IF installer can't be found - !define /redef UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_REMOVE} - !define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.umui.fileRequestLeave - - !define UMUI_FILEDISKREQUESTPAGE_VARIABLE UMUI_TEMP4 - !define UMUI_FILEDISKREQUESTPAGE_FILE_NAME $MUI_TEMP2 - !define MUI_PAGE_HEADER_TEXT "$(UMUI_TEXT_MAINTENANCE_TITLE)" - - Function un.umui.fileRequestLeave - - ;Save the new installer file location - !ifdef UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME - - !ifndef UMUI_INSTALLERFULLPATH_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_INSTALLERFULLPATH_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else - !error "For UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME, the UMUI_INSTALLERFULLPATH_REGISTRY_ROOT & UMUI_INSTALLERFULLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_INSTALLERFULLPATH_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_INSTALLERFULLPATH_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else - !error "For UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME, the UMUI_INSTALLERFULLPATH_REGISTRY_ROOT & UMUI_INSTALLERFULLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_INSTALLERFULLPATH_REGISTRY_ROOT} "${UMUI_INSTALLERFULLPATH_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" "$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}\${UMUI_FILEDISKREQUESTPAGE_FILE_NAME}" - !endif - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY} - ;Recall this programm and quit - !insertmacro UMUI_GET_PARAMETERS - Pop $MUI_TEMP2 - - !insertmacro UMUI_DELETE_PLUGINDIR - HideWindow - - ExecWait '"$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}\${UMUI_FILEDISKREQUESTPAGE_FILE_NAME}" $MUI_TEMP2 /modify /L=$LANGUAGE' - Quit - !insertmacro UMUI_ENDIF_INSTALLFLAG - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REPAIR} - ;Recall this programm and quit - !insertmacro UMUI_GET_PARAMETERS - Pop $MUI_TEMP2 - - !insertmacro UMUI_DELETE_PLUGINDIR - HideWindow - - ExecWait '"$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}\${UMUI_FILEDISKREQUESTPAGE_FILE_NAME}" $MUI_TEMP2 /repair /L=$LANGUAGE' - Quit - !insertmacro UMUI_ENDIF_INSTALLFLAG - - FunctionEnd - - !insertmacro UMUI_PAGE_FILEDISKREQUEST - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - - -!macro UMUI_FUNCTION_MAINTENANCEPAGE PRE LEAVE - - Function "${PRE}" - - ; IF setup cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_UPDATE} - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_ISNOT ${UMUI_SAMEVERSION} - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_ABORTFIRSTTIME} - - ; call uninstaller if the /remove command line argument is set - !ifndef MUI_UNINSTALLER - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REMOVE} - - IfFileExists "${UMUI_UNINSTALL_FULLPATH}" 0 uninstaller_not_found - ;Recall this programm and quit - !insertmacro UMUI_GET_PARAMETERS - Pop $MUI_TEMP2 - - !insertmacro UMUI_DELETE_PLUGINDIR - HideWindow - - ExecWait '"${UMUI_UNINSTALL_FULLPATH}" $MUI_TEMP2 /remove /L=$LANGUAGE' - Quit - uninstaller_not_found: - ClearErrors - - !insertmacro UMUI_ENDIF_INSTALLFLAG - ;else continue - - ; call installer if the /modify, /repair or /continue command line argument is set - !else - - ReadRegStr $MUI_TEMP1 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" - IfFileExists "$MUI_TEMP1" 0 installer_not_found - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_CONTINUE_SETUP} - ;Recall this programm and quit - !insertmacro UMUI_GET_PARAMETERS - Pop $MUI_TEMP2 - - !insertmacro UMUI_DELETE_PLUGINDIR - HideWindow - !insertmacro UMUI_ENDIF_INSTALLFLAG - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY} - ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /modify /L=$LANGUAGE' - Quit - !insertmacro UMUI_ENDIF_INSTALLFLAG - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REPAIR} - ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /repair /L=$LANGUAGE' - Quit - !insertmacro UMUI_ENDIF_INSTALLFLAG - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_CONTINUE_SETUP} - ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /continue /L=$LANGUAGE' - Quit - !insertmacro UMUI_ENDIF_INSTALLFLAG - - installer_not_found: - ClearErrors - - ; continue to the next page for the File Request, Set the variable - !insertmacro UMUI_GETPARENTFOLDER $MUI_TEMP1 - Pop $UMUI_TEMP4 - - StrLen $UMUI_TEMP3 $UMUI_TEMP4 - StrCpy $MUI_TEMP2 $MUI_TEMP1 "" $UMUI_TEMP3 - - !endif - - - !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_ABORTFIRSTTIME} - Abort - !insertmacro UMUI_ENDIF_INSTALLFLAG - - ; Bodenseematze-2016-09-15: missing PRE-Function support added: - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_TEXT_MAINTENANCE_TITLE)" "$(UMUI_TEXT_MAINTENANCE_SUBTITLE)" - - IfFileExists "$PLUGINSDIR\Maintenance.ini" alreadyExists - - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI}" "Maintenance.ini" - - ;reduce the size of the page win 4 options and a small installer - !ifdef UMUI_MAINTENANCEPAGE_MODIFY & UMUI_MAINTENANCEPAGE_REPAIR & UMUI_MAINTENANCEPAGE_REMOVE & UMUI_MAINTENANCEPAGE_CONTINUE_SETUP - !insertmacro UMUI_INTERNAL_PAGES_SETUPTYPE_MAINTENANCE_INI_4OPTIONS "Maintenance.ini" - !endif - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Maintenance.ini" "Field 1" "Text" "UMUI_MAINTENANCEPAGE_TEXT" - - StrCpy $UMUI_TEMP3 ${UMUI_MAINTENANCEPAGE_DEFAULTCHOICE} - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY} - StrCpy $UMUI_TEMP3 ${UMUI_MODIFY} - !insertmacro UMUI_ENDIF_INSTALLFLAG - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REPAIR} - StrCpy $UMUI_TEMP3 ${UMUI_REPAIR} - !insertmacro UMUI_ENDIF_INSTALLFLAG - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REMOVE} - StrCpy $UMUI_TEMP3 ${UMUI_REMOVE} - !insertmacro UMUI_ENDIF_INSTALLFLAG - - !define UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER 1 - - !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_ADDOPTION MODIFY - !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_ADDOPTION REPAIR - !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_ADDOPTION REMOVE - !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_ADDOPTION CONTINUE_SETUP - - !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Settings" "NumFields" "${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" - - !undef UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER - - alreadyExists: - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_DISPLAY "Maintenance.ini" - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_GETOPTION 2 - !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_GETOPTION 5 - !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_GETOPTION 8 - !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_GETOPTION 11 - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - !ifndef MUI_UNINSTALLER - - !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REMOVE} - ;Recall this programm and quit - !insertmacro UMUI_GET_PARAMETERS - Pop $MUI_TEMP2 - - !insertmacro UMUI_DELETE_PLUGINDIR - HideWindow - - ExecWait '"${UMUI_UNINSTALL_FULLPATH}" $MUI_TEMP2 /remove /L=$LANGUAGE' - Quit - !insertmacro UMUI_ENDIF_INSTALLFLAG - ;else continue - - !insertmacro UMUI_ENDIF_INSTALLFLAG - - !else - - ;Remove? - !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_REMOVE}&${UMUI_CANCELLED} - - ReadRegStr $MUI_TEMP1 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" - IfFileExists "$MUI_TEMP1" 0 installer_not_found - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_CONTINUE_SETUP} - ;Recall this programm and quit - !insertmacro UMUI_GET_PARAMETERS - Pop $MUI_TEMP2 - - !insertmacro UMUI_DELETE_PLUGINDIR - HideWindow - !insertmacro UMUI_ENDIF_INSTALLFLAG - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY} - ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /modify /L=$LANGUAGE' - Quit - !insertmacro UMUI_ENDIF_INSTALLFLAG - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REPAIR} - ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /repair /L=$LANGUAGE' - Quit - !insertmacro UMUI_ENDIF_INSTALLFLAG - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_CONTINUE_SETUP} - ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /continue /L=$LANGUAGE' - Quit - !insertmacro UMUI_ENDIF_INSTALLFLAG - - installer_not_found: - ClearErrors - - !insertmacro UMUI_GETPARENTFOLDER $MUI_TEMP1 - Pop $UMUI_TEMP4 - - StrLen $UMUI_TEMP3 $UMUI_TEMP4 - StrCpy $MUI_TEMP2 $MUI_TEMP1 "" $UMUI_TEMP3 - - !insertmacro UMUI_ENDIF_INSTALLFLAG - - ;if installer file not found: continue (the next page will request the install exedir folder) - - !endif - - FunctionEnd - -!macroend - - -!macro UMUI_INTERNAL_PAGE_MAINTENANCE_ADDOPTION OPTION - - !ifdef UMUI_MAINTENANCEPAGE_${OPTION} - File "/oname=$PLUGINSDIR\${OPTION}.bmp" "${UMUI_MAINTENANCEPAGE_${OPTION}BITMAP}" - !define /redef /math UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER} + 1 - - StrCmp $UMUI_TEMP3 ${UMUI_${OPTION}} 0 +4 - !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" State "1" - SetCurInstType $MUI_TEMP2 - Goto +2 - !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" State "0" - - !ifdef UMUI_MAINTENANCEPAGE_REMOVE - StrCmp ${OPTION} "REMOVE" 0 no${OPTION} - IfFileExists "${UMUI_UNINSTALL_FULLPATH}" no${OPTION} 0 - ClearErrors - !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" State "0" - !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" Flags DISABLED - no${OPTION}: - !endif - - !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" Maintenance "${UMUI_${OPTION}}" - !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" MaintenanceName "${OPTION}" - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" "Text" "UMUI_MAINTENANCEPAGE_${OPTION}_TITLE" - !define /redef /math UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER} + 1 - !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" Text "$PLUGINSDIR\${OPTION}.bmp" - !define /redef /math UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER} + 1 - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" "Text" "UMUI_MAINTENANCEPAGE_${OPTION}_TEXT" - !endif - -!macroend - -!macro UMUI_INTERNAL_PAGE_MAINTENANCE_GETOPTION FIELDNUMBER - - !insertmacro INSTALLOPTIONS_READ $UMUI_TEMP3 "Maintenance.ini" "Field ${FIELDNUMBER}" "Maintenance" - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "Maintenance.ini" "Field ${FIELDNUMBER}" "State" - StrCmp $MUI_TEMP1 "1" 0 no${FIELDNUMBER} - - !insertmacro UMUI_SET_INSTALLFLAG $UMUI_TEMP3 - Goto end${FIELDNUMBER} - - no${FIELDNUMBER}: - !insertmacro UMUI_UNSET_INSTALLFLAG $UMUI_TEMP3 - - end${FIELDNUMBER}: - -!macroend - - - - - -!macro UMUI_PAGE_UPDATE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef UMUI_UPDATEPAGE - - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_TEXT "$(UMUI_TEXT_UPDATE_INFO_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_UPDATE_TITLE "$(UMUI_TEXT_UPDATE_UPDATE_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_UPDATE_TEXT "$(UMUI_TEXT_UPDATE_UPDATE_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_REMOVE_TITLE "$(UMUI_TEXT_UPDATE_REMOVE_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_REMOVE_TEXT "$(UMUI_TEXT_UPDATE_REMOVE_TEXT)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_CONTINUE_SETUP_TITLE "$(UMUI_TEXT_UPDATE_CONTINUE_TITLE)" - !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_CONTINUE_SETUP_TEXT "$(UMUI_TEXT_UPDATE_CONTINUE_TEXT)" - -!ifndef USE_MUIEx -;----------------- - !define /IfNDef UMUI_UPDATEPAGE_UPDATEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Modify.bmp" - !define /IfNDef UMUI_UPDATEPAGE_REMOVEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Remove.bmp" - !define /IfNDef UMUI_UPDATEPAGE_CONTINUE_SETUPBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Continue.bmp" -!else -;----- - !define /IfNDef UMUI_UPDATEPAGE_UPDATEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\ModifyEx.bmp" - !define /IfNDef UMUI_UPDATEPAGE_REMOVEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\RemoveEx.bmp" - !define /IfNDef UMUI_UPDATEPAGE_CONTINUE_SETUPBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\ContinueEx.bmp" -!endif -;------ - - !define /IfNDef UMUI_UPDATEPAGE_UPDATE - !define /IfNDef UMUI_UPDATEPAGE_DEFAULTCHOICE ${UMUI_UPDATE} - - !ifndef UMUI_VERBUILD_REGISTRY_VALUENAME | UMUI_VERBUILD - !error "Update page: You need to set the UMUI_VERBUILD_REGISTRY_VALUENAME and UMUI_VERBUILD defines with this page." - !endif - - !ifndef UMUI_VAR_OLDVERSION - Var OLDVERSION - !define UMUI_VAR_OLDVERSION - !endif - - !ifndef UMUI_VAR_NEWVERSION - Var NEWVERSION - !define UMUI_VAR_NEWVERSION - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.updatePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.updateLeave_${MUI_UNIQUEID} - - Caption " " - - PageExEnd - - !insertmacro UMUI_FUNCTION_UPDATEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.updatePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.updateLeave_${MUI_UNIQUEID} - - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_TEXT - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_UPDATE_TITLE - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_UPDATE_TEXT - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_REMOVE_TITLE - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_REMOVE_TEXT - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_CONTINUE_SETUP_TITLE - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_CONTINUE_SETUP_TEXT - - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_UPDATEBITMAP - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_REMOVEBITMAP - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_CONTINUE_SETUPBITMAP - - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_UPDATE - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_REMOVE - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_CONTINUE_SETUP - - !insertmacro MUI_UNSET UMUI_UPDATEPAGE_DEFAULTCHOICE - - !verbose pop - -!macroend - - -!macro UMUI_FUNCTION_UPDATEPAGE PRE LEAVE - - Function "${PRE}" - - ; IF setup cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MODIFY}|${UMUI_REPAIR} - - ; call uninstaller if the /remove command line argument is set - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REMOVE} - - IfFileExists "${UMUI_UNINSTALL_FULLPATH}" 0 uninstaller_not_found - ;Recall this programm and quit - !insertmacro UMUI_GET_PARAMETERS - Pop $MUI_TEMP2 - - !insertmacro UMUI_DELETE_PLUGINDIR - HideWindow - - ExecWait '"${UMUI_UNINSTALL_FULLPATH}" $MUI_TEMP2 /remove /L=$LANGUAGE' - Quit - uninstaller_not_found: - ClearErrors - - !insertmacro UMUI_ENDIF_INSTALLFLAG - ;else continue - - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_ISNOT ${UMUI_DIFFVERSION} - - ; Bodenseematze-2016-09-15: missing PRE-Function support added: - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_TEXT_UPDATE_TITLE)" "$(UMUI_TEXT_UPDATE_SUBTITLE)" - - IfFileExists "$PLUGINSDIR\Update.ini" alreadyExists - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI}" "Update.ini" - - !ifdef UMUI_VERSION - StrCpy $NEWVERSION "${UMUI_VERSION}" - !else - StrCpy $NEWVERSION "${UMUI_VERBUILD}" - !endif - - !ifdef UMUI_VERSION_REGISTRY_VALUENAME - ReadRegStr $OLDVERSION ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" - StrCmp $OLDVERSION "" 0 +2 - ReadRegStr $OLDVERSION ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" - !else - ReadRegStr $OLDVERSION ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" - !endif - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Update.ini" "Field 1" "Text" "UMUI_UPDATEPAGE_TEXT" - - !define UMUI_INTERNAL_PAGE_UPDATE_COUNTER 1 - - !insertmacro UMUI_INTERNAL_PAGE_UPDATE_ADDOPTION UPDATE - !insertmacro UMUI_INTERNAL_PAGE_UPDATE_ADDOPTION REMOVE - !insertmacro UMUI_INTERNAL_PAGE_UPDATE_ADDOPTION CONTINUE_SETUP - - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Settings" "NumFields" "${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" - - !undef UMUI_INTERNAL_PAGE_UPDATE_COUNTER - - !insertmacro UMUI_VERSIONCONVERT "${UMUI_VERBUILD}" - Pop $MUI_TEMP1 - ReadRegStr $MUI_TEMP2 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" - !insertmacro UMUI_VERSIONCONVERT $MUI_TEMP2 - Pop $MUI_TEMP2 - !insertmacro UMUI_VERSIONCOMPARE $MUI_TEMP1 $MUI_TEMP2 - Pop $MUI_TEMP1 - - StrCmp $MUI_TEMP1 1 alreadyExists 0 - ;disable the update option - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field 2" State "0" - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field 2" Flags DISABLED - - StrCmp ${UMUI_UPDATEPAGE_DEFAULTCHOICE} ${UMUI_UPDATE} 0 +2 - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field 5" State "1" - - alreadyExists: - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - !insertmacro INSTALLOPTIONS_DISPLAY "Update.ini" - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro UMUI_INTERNAL_PAGE_UPDATE_GETOPTION 2 - !insertmacro UMUI_INTERNAL_PAGE_UPDATE_GETOPTION 5 - !insertmacro UMUI_INTERNAL_PAGE_UPDATE_GETOPTION 8 - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} - - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REMOVE} - ;Recall this programm and quit - !insertmacro UMUI_GET_PARAMETERS - Pop $MUI_TEMP2 - - !insertmacro UMUI_DELETE_PLUGINDIR - HideWindow - - ExecWait '"${UMUI_UNINSTALL_FULLPATH}" $MUI_TEMP2 /remove /L=$LANGUAGE' - Quit - !insertmacro UMUI_ENDIF_INSTALLFLAG - ;else continue - !insertmacro UMUI_ENDIF_INSTALLFLAG - - FunctionEnd - -!macroend - - -!macro UMUI_INTERNAL_PAGE_UPDATE_ADDOPTION OPTION - - !ifdef UMUI_UPDATEPAGE_${OPTION} - File "/oname=$PLUGINSDIR\${OPTION}.bmp" "${UMUI_UPDATEPAGE_${OPTION}BITMAP}" - !define /redef /math UMUI_INTERNAL_PAGE_UPDATE_COUNTER ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER} + 1 - - StrCmp ${UMUI_UPDATEPAGE_DEFAULTCHOICE} ${UMUI_${OPTION}} 0 +4 - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" State "1" - Goto +2 - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" State "0" - - !ifdef UMUI_UPDATEPAGE_REMOVE - StrCmp ${OPTION} "REMOVE" 0 no${OPTION} - IfFileExists "${UMUI_UNINSTALL_FULLPATH}" no${OPTION} 0 - ClearErrors - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" State "0" - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" Flags DISABLED - no${OPTION}: - !endif - - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" Update "${UMUI_${OPTION}}" - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" UpdateName "${OPTION}" - - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" "Text" "UMUI_UPDATEPAGE_${OPTION}_TITLE" - !define /redef /math UMUI_INTERNAL_PAGE_UPDATE_COUNTER ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER} + 1 - !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" "Text" "$PLUGINSDIR\${OPTION}.bmp" - !define /redef /math UMUI_INTERNAL_PAGE_UPDATE_COUNTER ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER} + 1 - !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" "Text" "UMUI_UPDATEPAGE_${OPTION}_TEXT" - !endif - -!macroend - -!macro UMUI_INTERNAL_PAGE_UPDATE_GETOPTION FIELDNUMBER - - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "Update.ini" "Field ${FIELDNUMBER}" "Update" - !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "Update.ini" "Field ${FIELDNUMBER}" "State" - StrCmp $MUI_TEMP1 "1" 0 no${FIELDNUMBER} - !insertmacro UMUI_SET_INSTALLFLAG $MUI_TEMP2 - Goto end${FIELDNUMBER} - no${FIELDNUMBER}: - !insertmacro UMUI_UNSET_INSTALLFLAG $MUI_TEMP2 - end${FIELDNUMBER}: - -!macroend - - -!macro UMUI_PAGE_FILEDISKREQUEST - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_PAGE_INIT - - !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}FILEDISKREQUESTPAGE - - !ifdef UMUI_FILEDISKREQUESTPAGE_FILE_TO_FOUND - !warning "The UMUI_FILEDISKREQUESTPAGE_FILE_TO_FOUND define was renamed UMUI_FILEDISKREQUESTPAGE_FILE_NAME" - !define /IfNDef UMUI_FILEDISKREQUESTPAGE_FILE_NAME "{UMUI_FILEDISKREQUESTPAGE_FILE_TO_FOUND}" - !undef UMUI_FILEDISKREQUESTPAGE_FILE_TO_FOUND - !endif - - !ifndef UMUI_FILEDISKREQUESTPAGE_FILE_NAME || UMUI_FILEDISKREQUESTPAGE_VARIABLE - !error "For the FILEDISKREQUEST page, you need to define UMUI_FILEDISKREQUESTPAGE_FILE_NAME and UMUI_FILEDISKREQUESTPAGE_VARIABLE." - !endif - - !ifdef UMUI_FILEDISKREQUESTPAGE_DISK_NAME - !define /IfNDef UMUI_FILEDISKREQUESTPAGE_TEXT_TOP "$(UMUI_TEXT_FILEDISKREQUEST_DISK) ${UMUI_FILEDISKREQUESTPAGE_DISK_NAME}." - !else - !define /IfNDef UMUI_FILEDISKREQUESTPAGE_TEXT_TOP "$(UMUI_TEXT_FILEDISKREQUEST_FILE_BEGIN) ${UMUI_FILEDISKREQUESTPAGE_FILE_NAME} $(UMUI_TEXT_FILEDISKREQUEST_FILE_END)" - !endif - - !define /IfNDef UMUI_FILEDISKREQUESTPAGE_TEXT_PATH "$(UMUI_TEXT_FILEDISKREQUEST_PATH)" - - !ifndef MUI_VAR_HWND - Var MUI_HWND - !define MUI_VAR_HWND - !endif - - PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}directory - - PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestLeave_${MUI_UNIQUEID} - - Caption " " - - DirText "${UMUI_FILEDISKREQUESTPAGE_TEXT_TOP}" "${UMUI_FILEDISKREQUESTPAGE_TEXT_PATH}" "$(^BrowseBtn)" "${UMUI_FILEDISKREQUESTPAGE_TEXT_TOP}" - - DirVar "$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}" - - DirVerify leave - - PageExEnd - - !insertmacro UMUI_FUNCTION_FILEDISKREQUESTPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestLeave_${MUI_UNIQUEID} - - !undef UMUI_FILEDISKREQUESTPAGE_TEXT_TOP - !undef UMUI_FILEDISKREQUESTPAGE_TEXT_PATH - !undef UMUI_FILEDISKREQUESTPAGE_VARIABLE - !undef UMUI_FILEDISKREQUESTPAGE_FILE_NAME - - !insertmacro MUI_UNSET UMUI_FILEDISKREQUESTPAGE_DISK_NAME - - !verbose pop - -!macroend - -!macro UMUI_UNPAGE_FILEDISKREQUEST - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro MUI_UNPAGE_INIT - - !insertmacro UMUI_PAGE_FILEDISKREQUEST - - !insertmacro MUI_UNPAGE_END - - !verbose pop - -!macroend - -!macro UMUI_FUNCTION_FILEDISKREQUESTPAGE PRE SHOW LEAVE - - Function "${PRE}" - - ;if it's the installer page that call it and if remove : abort - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE - - !ifdef UMUI_FILEDISKREQUESTPAGE_FILE_NAME - !insertmacro MUI_HEADER_TEXT_PAGE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_TITLE)" "$(UMUI_TEXT_FILEDISKREQUEST_FILE_SUBTITLE_BEGIN) ${UMUI_FILEDISKREQUESTPAGE_FILE_NAME} $(UMUI_TEXT_FILEDISKREQUEST_FILE_SUBTITLE_END)" - !else - !insertmacro MUI_HEADER_TEXT_PAGE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_TITLE)" "$(UMUI_TEXT_FILEDISKREQUEST_DISK_SUBTITLE)" - !endif - - !insertmacro UMUI_FIX_BUTTONS_SKIN - - FunctionEnd - - Function "${SHOW}" - - !insertmacro UMUI_UMUI_HIDEBACKBUTTON - - !insertmacro UMUI_PAGEBGTRANSPARENT_INIT - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1001 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1008 - !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1006 - !insertmacro UMUI_PAGECTLLIGHT_INIT 1020 - - FindWindow $MUI_HWND "#32770" "" $HWNDPARENT - GetDlgItem $MUI_TEMP1 $MUI_HWND 1023 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - GetDlgItem $MUI_TEMP1 $MUI_HWND 1024 - ShowWindow $MUI_TEMP1 ${SW_HIDE} - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW - - FunctionEnd - - Function "${LEAVE}" - - !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} - - ClearErrors - IfFileExists "$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}\${UMUI_FILEDISKREQUESTPAGE_FILE_NAME}" file_found 0 - ClearErrors - - ;Repost this page - Abort - - file_found: - - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE - - !insertmacro UMUI_ENDIF_INSTALLFLAG - - FunctionEnd - -!macroend - - - -;-------------------------------- -;INSTALL OPTIONS (CUSTOM PAGES) - -!macro MUI_INSTALLOPTIONS_EXTRACT FILE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro INSTALLOPTIONS_EXTRACT "${FILE}" - - !verbose pop - -!macroend - -!macro MUI_INSTALLOPTIONS_EXTRACT_AS FILE FILENAME - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro INSTALLOPTIONS_EXTRACT_AS "${FILE}" "${FILENAME}" - - !verbose pop - -!macroend - -!macro MUI_INSTALLOPTIONS_DISPLAY FILE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro INSTALLOPTIONS_DISPLAY "${FILE}" - - !verbose pop - -!macroend - -!macro MUI_INSTALLOPTIONS_DISPLAY_RETURN FILE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro INSTALLOPTIONS_DISPLAY_RETURN "${FILE}" - - !verbose pop - -!macroend - -!macro MUI_INSTALLOPTIONS_INITDIALOG FILE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro INSTALLOPTIONS_INITDIALOG "${FILE}" - - !verbose pop - -!macroend - -!macro MUI_INSTALLOPTIONS_SHOW - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro INSTALLOPTIONS_SHOW - - !verbose pop - -!macroend - -!macro MUI_INSTALLOPTIONS_SHOW_RETURN - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro INSTALLOPTIONS_SHOW_RETURN - - !verbose pop - -!macroend - -!macro MUI_INSTALLOPTIONS_READ VAR FILE SECTION KEY - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro INSTALLOPTIONS_READ "${VAR}" "${FILE}" "${SECTION}" "${KEY}" - - !verbose pop - -!macroend - -!macro MUI_INSTALLOPTIONS_WRITE FILE SECTION KEY VALUE - - !verbose push - !verbose ${MUI_VERBOSE} - - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "${SECTION}" "${KEY}" "${VALUE}" - - !verbose pop - -!macroend - -!macro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT FILE SECTION KEY SYMBOL - - ;Converts default strings from language files to InstallOptions format - ;Only for use inside MUI - - !verbose push - !verbose ${MUI_VERBOSE} - - Push $R9 - - !ifndef "${SYMBOL}_DEFAULTSET" - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "${SECTION}" "${KEY}" "${${SYMBOL}}" - !else - Push "${${SYMBOL}}" - Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}Nsis2Io - Pop $R9 - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "${SECTION}" "${KEY}" $R9 - !endif - - Pop $R9 - - !verbose pop - -!macroend - - -; Additional Installoptions functions -; ------------------------------------ - -!macro UMUI_INSTALLOPTIONSEX_SETFOCUS HWND - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifdef UMUI_USE_INSTALLOPTIONSEX - InstallOptionsEx::setFocus ${HWND} - !else - !warning "setFocus is not available with InstallOptions, use InstallOptionsEx instead." - !endif - - !verbose pop - -!macroend - -!macro UMUI_INSTALLOPTIONSEX_SKIPVALIDATION - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifdef UMUI_USE_INSTALLOPTIONSEX - InstallOptionsEx::skipValidation - !else - !warning "skipValidation is not available with InstallOptions, use InstallOptionsEx instead." - !endif - - !verbose pop - -!macroend - - -; Convert an IO ini into a compatible IOEx ini -!macro UMUI_INSTALLOPTIONSEX_CONVERT FILE - - !ifdef UMUI_USE_INSTALLOPTIONSEX - !ifndef UMUI_DONT_USE_IOEX_CONVERTER - - !verbose push - !verbose ${MUI_VERBOSE} - - Push $R0 - Push $0 - Push $1 - Push $8 - Push $R1 - Push $R8 - - !insertmacro MUI_INSTALLOPTIONS_READ $R0 "${FILE}" "Settings" "NumFields" - - ;$R0 NumField - ;$1 NewNumField - ;$R1 type - ;$0 counter - ;$R8 temp string - ;$8 temp var - - StrCpy $0 0 - StrCpy $1 $R0 - - ;do - loopConvert: - IntOp $0 $0 + 1 - - !insertmacro MUI_INSTALLOPTIONS_READ $R1 "${FILE}" "Field $0" "Type" - - ;if Button - StrCmp $R1 "Button" isButtonType 0 - ;else if Link - StrCmp $R1 "Link" isButtonType 0 - ;else if CheckBox - StrCmp $R1 "CheckBox" isButtonType 0 - ;else if RadioButton - StrCmp $R1 "RadioButton" 0 isNotButtonType - isButtonType: - !insertmacro UMUI_INSTALLOPTIONSEX_CONVERT_NOTIFY "${FILE}" "$0" ONCLICK - Goto testConvert - isNotButtonType: - - ;else if ListBox - StrCmp $R1 "ListBox" +2 0 - ;else if DropList - StrCmp $R1 "DropList" 0 isNotListType - !insertmacro UMUI_INSTALLOPTIONSEX_CONVERT_NOTIFY "${FILE}" "$0" ONSELCHANGE - Goto testConvert - isNotListType: - - ;else if FileRequest - StrCmp $R1 "FileRequest" 0 isNotFileRequest - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Type" "Text" - IntOp $1 $1 + 1 - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Settings" "NumFields" "$1" - - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Type" "Button" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Text" "..." - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "RefFields" "$0" - - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Top" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Top" "$R8" - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Bottom" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Bottom" "$R8" - - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Right" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Right" "$R8" - IntOp $R8 $R8 - 19 - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Right" "$R8" - IntOp $R8 $R8 + 3 - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Left" "$R8" - - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Filter" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Filter" "$R8" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Filter" "" - - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Flags" - !insertmacro UMUI_STRCOUNT "REQ_SAVE" "$R8" - Pop $8 ;the return number - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Flags" - StrCmp $8 0 0 save - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Flags" "OPEN_FILEREQUEST|$R8" - Goto end - save: - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Flags" "SAVE_FILEREQUEST|$R8" - end: - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Flags" "" - - Goto testConvert - isNotFileRequest: - - ;else if DirRequest - StrCmp $R1 "DirRequest" 0 isNotDirRequest - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Type" "Text" - IntOp $1 $1 + 1 - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Settings" "NumFields" "$1" - - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Type" "Button" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Text" "..." - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "RefFields" "$0" - - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Text" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "ListItems" "$R8" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Text" "" - - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Top" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Top" "$R8" - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Bottom" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Bottom" "$R8" - - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Right" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Right" "$R8" - IntOp $R8 $R8 - 19 - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Right" "$R8" - IntOp $R8 $R8 + 3 - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Left" "$R8" - - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Root" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Root" "$R8" - - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Flags" "DIRREQUEST" - - Goto testConvert - isNotDirRequest: - - ;endif - - testConvert: - ;while $0 <= $R0 - IntCmp $0 $R0 0 loopConvert 0 - - Pop $R8 - Pop $R1 - Pop $8 - Pop $1 - Pop $0 - Pop $R0 - - !verbose pop - - !endif - !endif - -!macroend - - -; Convert an IO ini into a compatible IOEx ini next and finish -!macro UMUI_INSTALLOPTIONSEX_CONVERT_NEXT FILE - - !ifdef UMUI_USE_INSTALLOPTIONSEX - !ifndef UMUI_DONT_USE_IOEX_CONVERTER - - !verbose push - !verbose ${MUI_VERBOSE} - - Push $R0 - Push $0 - Push $8 - Push $R1 - Push $R8 - - !insertmacro MUI_INSTALLOPTIONS_READ $R0 "${FILE}" "Settings" "NumFields" - - ;$R0 NumField - ;$R1 type - ;$0 counter - ;$R8 temp string - ;$8 temp var - - StrCpy $0 0 - - ;do - loopConvertNext: - IntOp $0 $0 + 1 - - !insertmacro MUI_INSTALLOPTIONS_READ $R1 "${FILE}" "Field $0" "Type" - ;if Button - StrCmp $R1 "Button" 0 testConvertNext - - !insertmacro MUI_INSTALLOPTIONS_READ $8 "${FILE}" "Field $0" "RefFields" - StrCmp $8 "" testConvertNext 0 - !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "HWND" - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $8" "HWND2" "$R8" - - testConvertNext: - ;while $0 <= $R0 - IntCmp $0 $R0 0 loopConvertNext 0 - - Pop $R8 - Pop $R1 - Pop $8 - Pop $0 - Pop $R0 - - !verbose pop - - !endif - !endif - -!macroend - -; Convert an IO NOTIFY flag into a Notify key compatible with IOEx -!macro UMUI_INSTALLOPTIONSEX_CONVERT_NOTIFY FILE FIELD NOTIFY - - Push $R9 - Push $9 - - !define UMUI_UNIQUEID_CONVERTNOTIFY ${__LINE__} - - !insertmacro MUI_INSTALLOPTIONS_READ $R9 "${FILE}" "Field ${FIELD}" "Notify" - StrCmp $R9 "" 0 end${UMUI_UNIQUEID_CONVERTNOTIFY} - - !insertmacro MUI_INSTALLOPTIONS_READ $R9 "${FILE}" "Field ${FIELD}" "Flags" - StrCmp $R9 "" end${UMUI_UNIQUEID_CONVERTNOTIFY} 0 - !insertmacro UMUI_STRCOUNT "NOTIFY" "$R9" - Pop $9 ;the return number - StrCmp $9 0 end${UMUI_UNIQUEID_CONVERTNOTIFY} 0 - - !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field ${FIELD}" "Notify" "${NOTIFY}" - - end${UMUI_UNIQUEID_CONVERTNOTIFY}: - - !undef UMUI_UNIQUEID_CONVERTNOTIFY - - Pop $9 - Pop $R9 - -!macroend - - - -;-------------------------------- -;RESERVE FILES - -!macro MUI_RESERVEFILE_INSTALLOPTIONS - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifdef UMUI_USE_INSTALLOPTIONSEX - ReserveFile /plugin InstallOptionsEx.dll - !else - ReserveFile /plugin InstallOptions.dll - !endif - - !verbose pop - -!macroend - -!macro UMUI_RESERVEFILE_SKINNEDCONTROLS - - !verbose push - !verbose ${MUI_VERBOSE} - - ReserveFile /plugin SkinnedControls.dll - - !verbose pop - -!macroend - -!macro MUI_RESERVEFILE_LANGDLL - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifdef UMUI_MULTILANGUAGEPAGE | UMUI_UNMULTILANGUAGEPAGE - !warning "You tried to reserve the file LangDLL.dll whereas you have also inserted the UNMULTILANGUAGE page. You can remove the MUI_RESERVEFILE_LANGDLL macro insertion." - !endif - - ReserveFile /plugin LangDLL.dll - - !verbose pop - -!macroend - - - -;-------------------------------- -;LANGUAGES - -!macro MUI_LANGUAGE NLFID - - ;Include a language - - !verbose push - !verbose ${MUI_VERBOSE} - - ; MUI_PAGE_UNINSTALLER_PREFIX is undefined by uninstaller pages so we check MUI_UNINSTALLER as well - !ifndef MUI_PAGE_UNINSTALLER_PREFIX && MUI_UNINSTALLER - !ifndef MUI_DISABLE_INSERT_LANGUAGE_AFTER_PAGES_WARNING ; Define this to avoid the warning if you only have custom pages - !warning "MUI_LANGUAGE should be inserted after the MUI_[UN]PAGE_* macros" - !endif - !endif - - !insertmacro MUI_INSERT - - LoadLanguageFile "${NSISDIR}\Contrib\Language files\${NLFID}.nlf" - - ;Include language file - !insertmacro LANGFILE_INCLUDE_WITHDEFAULT \ - "${NSISDIR}\Contrib\Language files\${NLFID}.nsh" "${NSISDIR}\Contrib\Language files\English.nsh" "${NSISDIR}\Contrib\UltraModernUI\Language files\${NLFID}.nsh" "${NSISDIR}\Contrib\UltraModernUI\Language files\English.nsh" - - ;Add language to list of languages for selection dialog - !define /ifndef MUI_LANGDLL_LANGUAGES "" - !define /redef MUI_LANGDLL_LANGUAGES \ - `"${LANGFILE_${NLFID}_LANGDLL}" "${LANG_${NLFID}}" ${MUI_LANGDLL_LANGUAGES}` - !define /ifndef MUI_LANGDLL_LANGUAGES_CP "" - !define /redef MUI_LANGDLL_LANGUAGES_CP \ - `"${LANGFILE_${NLFID}_LANGDLL}" "${LANG_${NLFID}}" "${LANG_${NLFID}_CP}" ${MUI_LANGDLL_LANGUAGES_CP}` - - !define /ifndef UMUI_MULTILANG_LANGMAP "" - !define /redef UMUI_MULTILANG_LANGMAP "${UMUI_MULTILANG_LANGMAP} /key=${LANG_${NLFID}} `${LANGFILE_${NLFID}_NAME}`" - - !verbose pop - -!macroend - -!macro UMUI_MULTILANG_GET - - !verbose push - !verbose ${MUI_VERBOSE} - - ;Usually, this is done only later, but we need us now - InitPluginsDir - - ;get parameters in a ini file - !insertmacro UMUI_PARAMETERS_TO_INI - StrCpy $UMUI_INSTALLFLAG 0 - - ;bu default, $LANGUAGE contain the ID of the language of the system - - ; get the choosen langid if it is passed in the commandline - !insertmacro UMUI_GETPARAMETERVALUE "/L" "error" - Pop $MUI_TEMP1 - - StrCmp $MUI_TEMP1 "error" checkRegistery 0 - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_LANGISSET} - Goto setlang - - checkRegistery: - - !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME - ReadRegStr $MUI_TEMP1 ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" - StrCmp $MUI_TEMP1 "" 0 setlang - !endif - Goto endlang - - setlang: - - StrCpy $LANGUAGE $MUI_TEMP1 - - !ifndef UMUI_LANGUAGE_ALWAYSSHOW - !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_LANGISSET} - !endif - - endlang: - - !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" "$LANGUAGE" - !endif - - !ifndef UMUI_VAR_LANGLIST - !error "It seem that you don't have inserted the MULTILANGUAGE page." - !endif - - !ifndef UMUI_MULTILANG_LANGMAP - !error "MUI_LANGUAGE must be inserted before UMUI_MULTILANG_GET" - !endif - - ClearErrors - - ; create a map that contain the langid => langstring - nsArray::SetList LangMap ${UMUI_MULTILANG_LANGMAP} /end - - nsArray::Sort LangMap 4 - - nsArray::Join LangMap "|" - Pop $UMUI_LANGLIST - - ClearErrors - - !verbose pop - -!macroend - - -;-------------------------------- -;LANGUAGE SELECTION DIALOG - -!macro MUI_LANGDLL_DISPLAY - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifdef UMUI_MULTILANGUAGEPAGE | UMUI_UNMULTILANGUAGEPAGE - !warning "You have used the MUI_LANGDLL_DISPLAY in your .onInit function whereas you have also inserted the MULTILANGUAGE page. Replace the MUI_LANGDLL_DISPLAY and the MUI_UNGETLANGUAGE macros by the UMUI_MULTILANG_GET macro in your .onInit and un.onInit functions otherwise, the MULTILANGUAGE page will not work." - !endif - - !ifdef MUI_LANGDLL_REGISTRY_ROOT | MUI_LANGDLL_REGISTRY_KEY | MUI_LANGDLL_REGISTRY_VALUENAME - !warning "Deprecated: The MUI_LANGDLL_REGISTRY_ROOT, MUI_LANGDLL_REGISTRY_KEY and MUI_LANGDLL_REGISTRY_VALUENAME defines were replaced by UMUI_LANGUAGE_REGISTRY_VALUENAME, UMUI_LANGUAGE_REGISTRY_ROOT, UMUI_LANGUAGE_REGISTRY_KEY or you can use also the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY globals parameters." - !endif - - !ifndef UMUI_LANGUAGE_REGISTRY_VALUENAME - !ifdef MUI_LANGDLL_REGISTRY_VALUENAME - !define UMUI_LANGUAGE_REGISTRY_VALUENAME "${MUI_LANGDLL_REGISTRY_VALUENAME}" - !endif - !endif - - !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME - - !ifndef UMUI_LANGUAGE_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_LANGUAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else ifdef MUI_LANGDLL_REGISTRY_ROOT - !define UMUI_LANGUAGE_REGISTRY_ROOT "${MUI_LANGDLL_REGISTRY_ROOT}" - !else - !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_LANGUAGE_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_LANGUAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else ifdef MUI_LANGDLL_REGISTRY_KEY - !define UMUI_LANGUAGE_REGISTRY_KEY "${MUI_LANGDLL_REGISTRY_KEY}" - !else - !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - !endif - - !define /IfNDef MUI_LANGDLL_WINDOWTITLE "Installer Language" - !define /IfNDef MUI_LANGDLL_INFO "Please select a language." - - !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME - - ReadRegStr $MUI_TEMP1 ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" - StrCmp $MUI_TEMP1 "" mui.langdll_show - StrCpy $LANGUAGE $MUI_TEMP1 - !ifndef UMUI_LANGUAGE_ALWAYSSHOW - Goto mui.langdll_done - !endif - mui.langdll_show: - - !endif - - !ifdef NSIS_CONFIG_SILENT_SUPPORT - IfSilent mui.langdll_done - !endif - - !ifdef MUI_LANGDLL_ALLLANGUAGES | UMUI_MULTILANGUAGEPAGE | UMUI_UNMULTILANGUAGEPAGE - LangDLL::LangDialog "${MUI_LANGDLL_WINDOWTITLE}" "${MUI_LANGDLL_INFO}" A ${MUI_LANGDLL_LANGUAGES} "" - !else - LangDLL::LangDialog "${MUI_LANGDLL_WINDOWTITLE}" "${MUI_LANGDLL_INFO}" AC ${MUI_LANGDLL_LANGUAGES_CP} "" - !endif - - Pop $LANGUAGE - StrCmp $LANGUAGE "cancel" 0 +2 - Abort - - !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME - !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" "$LANGUAGE" - !endif - - !ifdef NSIS_CONFIG_SILENT_SUPPORT | UMUI_LANGUAGE_REGISTRY_VALUENAME - mui.langdll_done: - !endif - - !verbose pop - -!macroend - -!macro MUI_UNGETLANGUAGE - - !verbose push - !verbose ${MUI_VERBOSE} - - !ifdef UMUI_UNMULTILANGUAGEPAGE - !warning "You have used the MUI_UNGETLANGUAGE in your un.onInit function whereas you have also inserted the UNMULTILANGUAGE page. Replace the MUI_LANGDLL_DISPLAY and the MUI_UNGETLANGUAGE macros by the UMUI_MULTILANG_GET macro in your .onInit and un.onInit functions otherwise, the MULTILANGUAGE page will not work." - !endif - - !ifdef MUI_LANGDLL_REGISTRY_ROOT | MUI_LANGDLL_REGISTRY_KEY | MUI_LANGDLL_REGISTRY_VALUENAME - !warning "Deprecated: The MUI_LANGDLL_REGISTRY_ROOT, MUI_LANGDLL_REGISTRY_KEY and MUI_LANGDLL_REGISTRY_VALUENAME defines were replaced by UMUI_LANGUAGE_REGISTRY_ROOT, UMUI_LANGUAGE_REGISTRY_KEY and UMUI_LANGUAGE_REGISTRY_VALUENAME or you can use also the UMUI_PARAMS_REGISTRY_ROOT and UMUI_PARAMS_REGISTRY_KEY globals parameters." - !endif - - !ifndef UMUI_LANGUAGE_REGISTRY_VALUENAME - !ifdef MUI_LANGDLL_REGISTRY_VALUENAME - !define UMUI_LANGUAGE_REGISTRY_VALUENAME "${MUI_LANGDLL_REGISTRY_VALUENAME}" - !endif - !endif - - !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME - - !ifndef UMUI_LANGUAGE_REGISTRY_ROOT - !ifdef UMUI_PARAMS_REGISTRY_ROOT - !define UMUI_LANGUAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" - !else ifdef MUI_LANGDLL_REGISTRY_ROOT - !define UMUI_LANGUAGE_REGISTRY_ROOT "${MUI_LANGDLL_REGISTRY_ROOT}" - !else - !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - !ifndef UMUI_LANGUAGE_REGISTRY_KEY - !ifdef UMUI_PARAMS_REGISTRY_KEY - !define UMUI_LANGUAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" - !else ifdef MUI_LANGDLL_REGISTRY_KEY - !define UMUI_LANGUAGE_REGISTRY_KEY "${MUI_LANGDLL_REGISTRY_KEY}" - !else - !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." - !endif - !endif - - ReadRegStr $MUI_TEMP1 ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" - StrCmp $MUI_TEMP1 "" 0 mui.ungetlanguage_setlang - - !endif - - !insertmacro MUI_LANGDLL_DISPLAY - - !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME - - Goto mui.ungetlanguage_done - - mui.ungetlanguage_setlang: - StrCpy $LANGUAGE $MUI_TEMP1 - - mui.ungetlanguage_done: - - !endif - - !verbose pop - -!macroend - -;-------------------------------- - -/* - -LangFile.nsh - -Header file to create language files that can be -included with a single command. - -Copyright 2008-2016 Joost Verburg, Anders Kjersem - -* Either LANGFILE_INCLUDE or LANGFILE_INCLUDE_WITHDEFAULT - can be called from the script to include a language file. - - - LANGFILE_INCLUDE takes the language file name as parameter. - - LANGFILE_INCLUDE_WITHDEFAULT takes as additional second - parameter, the default language file to load missing strings from. - -* Language strings in the language file have the format: - ${LangFileString} LANGSTRING_NAME "Text" - -* There are two types of language header files: - - - NSIS multi-lang support; these must start with the LANGFILE macro and - provide strings for features like MUI and MultiUser. If you are adding - support for a new language to NSIS you should make a copy of English.nsh - and translate this .nsh along with the .nlf. - - Custom installer strings; these must start with the LANGFILE_EXT macro and - contain translated versions of - custom strings used in a particular installer. - This is useful if you want to put the translations for each language in - their own separate file. - -* Example: - - ; Setup.nsi - !include "MUI.nsh" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "Danish" - !insertmacro LANGFILE_INCLUDE "DanishExtra.nsh" - !insertmacro MUI_LANGUAGE "Swedish" - !insertmacro LANGFILE_INCLUDE "SwedishExtra.nsh" - Section - MessageBox MB_OK "$(myCustomString)" - SectionEnd - - ; SwedishExtra.nsh - !insertmacro LANGFILE_EXT Swedish - ${LangFileString} myCustomString "Bork bork" - -*/ - -!ifndef LANGFILE_INCLUDED -!define LANGFILE_INCLUDED - -!macro LANGFILE_INCLUDE FILENAME UMUI_FILENAME - - ;Called from script: include a langauge file - - !define /redef LangFileString "!insertmacro LANGFILE_SETSTRING" - - !define LANGFILE_SETNAMES - !include "${FILENAME}" - !include "${UMUI_FILENAME}" - !undef LANGFILE_SETNAMES - - ;Create language strings - !define /redef LangFileString "!insertmacro LANGFILE_LANGSTRING" - !include "${FILENAME}" - !include "${UMUI_FILENAME}" - -!macroend - -!macro LANGFILE_INCLUDE_WITHDEFAULT FILENAME FILENAME_DEFAULT UMUI_FILENAME UMUI_FILENAME_DEFAULT - - ;Called from script: include a langauge file - ;Obtains missing strings from a default file - - !define /redef LangFileString "!insertmacro LANGFILE_SETSTRING" - - !define LANGFILE_SETNAMES - !include "${FILENAME}" - !include "${UMUI_FILENAME}" - !undef LANGFILE_SETNAMES - - ;Include default language for missing strings - !define LANGFILE_PRIV_INCLUDEISFALLBACK "${FILENAME_DEFAULT}" - !include "${FILENAME_DEFAULT}" - !undef LANGFILE_PRIV_INCLUDEISFALLBACK - !include "${UMUI_FILENAME_DEFAULT}" - - ;Create language strings - !define /redef LangFileString "!insertmacro LANGFILE_LANGSTRING" - !include "${FILENAME_DEFAULT}" - !include "${UMUI_FILENAME_DEFAULT}" - -!macroend - -!macro LANGFILE NLFID ENGNAME NATIVENAME NATIVEASCIINAME - - ;Start of standard NSIS language file - - ; NLFID: Must match the name of the .nlf file - ; ENGNAME: English name of language, "=" if it is the same as NLFID - ; NATIVENAME: Native name of language. (In Unicode) - ; NATIVEASCIINAME: Native name of language using only ASCII, "=" if it is the same as NATIVENAME - - ; Example: LANGFILE "Swedish" = "Svenska" = - ; For more examples, see French.nsh, Greek.nsh and PortugueseBR.nsh - - !ifdef LANGFILE_SETNAMES - - !ifdef LANGFILE_IDNAME - !undef LANGFILE_IDNAME - !endif - - !define LANGFILE_IDNAME "${NLFID}" - - ; ModernUI or the .nsi can change LANGFILE_LANGDLL_FMT if desired - !ifndef LANGFILE_LANGDLL_FMT - !ifndef NSIS_UNICODE - !define LANGFILE_LANGDLL_FMT "%ENGNAME% / %NATIVEASCIINAME%" - !endif - !define /ifndef LANGFILE_LANGDLL_FMT "%NATIVENAME%" - !endif - - !ifndef "LANGFILE_${NLFID}_NAME" - !if "${ENGNAME}" == "=" - !define /redef ENGNAME "${NLFID}" - !endif - !if "${NATIVEASCIINAME}" == "=" - !define /redef NATIVEASCIINAME "${NATIVENAME}" - !endif - - !define "LANGFILE_${NLFID}_ENGLISHNAME" "${ENGNAME}" - !ifdef NSIS_UNICODE - !define "LANGFILE_${NLFID}_NAME" "${NATIVENAME}" - !else - !define "LANGFILE_${NLFID}_NAME" "${NATIVEASCIINAME}" - !endif - - !searchreplace LANGFILE_${NLFID}_LANGDLL "${LANGFILE_LANGDLL_FMT}" %NATIVEASCIINAME% "${NATIVEASCIINAME}" - !searchreplace LANGFILE_${NLFID}_LANGDLL "${LANGFILE_${NLFID}_LANGDLL}" %NATIVENAME% "${NATIVENAME}" - !searchreplace LANGFILE_${NLFID}_LANGDLL "${LANGFILE_${NLFID}_LANGDLL}" %ENGNAME% "${ENGNAME}" - - !endif - - !endif - -!macroend - -!macro LANGFILE_EXT IDNAME - - ;Start of installer language file - - !ifdef LANGFILE_SETNAMES - - !define /redef LANGFILE_IDNAME "${IDNAME}" - - !endif - -!macroend - -!macro LANGFILE_SETSTRING NAME VALUE - - ;Set define with translated string - - !ifndef ${NAME} - !define "${NAME}" "${VALUE}" - !ifdef LANGFILE_PRIV_INCLUDEISFALLBACK - !warning 'LangString "${NAME}" for language ${LANGFILE_IDNAME} is missing, using fallback from "${LANGFILE_PRIV_INCLUDEISFALLBACK}"' - !endif - !endif - -!macroend - -!macro LANGFILE_LANGSTRING NAME DUMMY - - ;Create a language string from a define and undefine - - LangString "${NAME}" "${LANG_${LANGFILE_IDNAME}}" "${${NAME}}" - !undef "${NAME}" - -!macroend - -!endif - -;-------------------------------- - -/* - -InstallOptions.nsh -Macros and conversion functions for InstallOptions - -*/ - -!ifndef ___NSIS__INSTALL_OPTIONS__NSH___ -!define ___NSIS__INSTALL_OPTIONS__NSH___ - -!macro INSTALLOPTIONS_FUNCTION_READ_CONVERT - !insertmacro INSTALLOPTIONS_FUNCTION_IO2NSIS "" -!macroend - -!macro INSTALLOPTIONS_UNFUNCTION_READ_CONVERT - !insertmacro INSTALLOPTIONS_FUNCTION_IO2NSIS un. -!macroend - -!macro INSTALLOPTIONS_FUNCTION_WRITE_CONVERT - !insertmacro INSTALLOPTIONS_FUNCTION_NSIS2IO "" -!macroend - -!macro INSTALLOPTIONS_UNFUNCTION_WRITE_CONVERT - !insertmacro INSTALLOPTIONS_FUNCTION_NSIS2IO un. -!macroend - -!macro INSTALLOPTIONS_FUNCTION_NSIS2IO UNINSTALLER_FUNCPREFIX - - ; Convert an NSIS string to a form suitable for use by InstallOptions - ; Usage: - ; Push <NSIS-string> - ; Call Nsis2Io - ; Pop <IO-string> - - Function ${UNINSTALLER_FUNCPREFIX}Nsis2Io - - Exch $0 ; The source - Push $1 ; The output - Push $2 ; Temporary char - StrCpy $1 "" ; Initialise the output - - loop: - StrCpy $2 $0 1 ; Get the next source char - StrCmp $2 "" done ; Abort when none left - StrCpy $0 $0 "" 1 ; Remove it from the source - StrCmp $2 "\" "" +3 ; Back-slash? - StrCpy $1 "$1\\" - Goto loop - StrCmp $2 "$\r" "" +3 ; Carriage return? - StrCpy $1 "$1\r" - Goto loop - StrCmp $2 "$\n" "" +3 ; Line feed? - StrCpy $1 "$1\n" - Goto loop - StrCmp $2 "$\t" "" +3 ; Tab? - StrCpy $1 "$1\t" - Goto loop - StrCpy $1 "$1$2" ; Anything else - Goto loop - - done: - StrCpy $0 $1 - Pop $2 - Pop $1 - Exch $0 - - FunctionEnd - -!macroend - -!macro INSTALLOPTIONS_FUNCTION_IO2NSIS UNINSTALLER_FUNCPREFIX - - ; Convert an InstallOptions string to a form suitable for use by NSIS - ; Usage: - ; Push <IO-string> - ; Call Io2Nsis - ; Pop <NSIS-string> - - Function ${UNINSTALLER_FUNCPREFIX}Io2Nsis - - Exch $0 ; The source - Push $1 ; The output - Push $2 ; Temporary char - StrCpy $1 "" ; Initialise the output - - loop: - StrCpy $2 $0 1 ; Get the next source char - StrCmp $2 "" done ; Abort when none left - StrCpy $0 $0 "" 1 ; Remove it from the source - StrCmp $2 "\" +3 ; Escape character? - StrCpy $1 "$1$2" ; If not just output - Goto loop - StrCpy $2 $0 1 ; Get the next source char - StrCpy $0 $0 "" 1 ; Remove it from the source - StrCmp $2 "\" "" +3 ; Back-slash? - StrCpy $1 "$1\" - Goto loop - StrCmp $2 "r" "" +3 ; Carriage return? - StrCpy $1 "$1$\r" - Goto loop - StrCmp $2 "n" "" +3 ; Line feed? - StrCpy $1 "$1$\n" - Goto loop - StrCmp $2 "t" "" +3 ; Tab? - StrCpy $1 "$1$\t" - Goto loop - StrCpy $1 "$1$2" ; Anything else (should never get here) - Goto loop - - done: - StrCpy $0 $1 - Pop $2 - Pop $1 - Exch $0 - -FunctionEnd - -!macroend - -!macro INSTALLOPTIONS_EXTRACT FILE - - InitPluginsDir - File "/oname=$PLUGINSDIR\${FILE}" "${FILE}" - !ifdef NSIS_UNICODE - !ifdef UMUI_USE_INSTALLOPTIONSEX - InstallOptionsEx::make_unicode "$PLUGINSDIR\${FILE}" - !else - InstallOptions::make_unicode "$PLUGINSDIR\${FILE}" - !endif - !endif - !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Settings" "RTL" "$(^RTL)" - -!macroend - -!macro INSTALLOPTIONS_EXTRACT_AS FILE FILENAME - - InitPluginsDir - File "/oname=$PLUGINSDIR\${FILENAME}" "${FILE}" - !ifdef NSIS_UNICODE - !ifdef UMUI_USE_INSTALLOPTIONSEX - InstallOptionsEx::make_unicode "$PLUGINSDIR\${FILENAME}" - !else - InstallOptions::make_unicode "$PLUGINSDIR\${FILENAME}" - !endif - !endif - !insertmacro INSTALLOPTIONS_WRITE "${FILENAME}" "Settings" "RTL" "$(^RTL)" - -!macroend - -!macro INSTALLOPTIONS_DISPLAY FILE - - !insertmacro MUI_INSTALLOPTIONS_DISPLAY_RETURN ${FILE} - Exch - -!macroend - -!macro INSTALLOPTIONS_DISPLAY_RETURN FILE - - ; IF setup cancelled - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - - !define /IfNDef MUI_PAGE_UNINSTALLER_PREFIX "" - - ; we can't use InstallOptions::dialog function with UMUI because the background can not be initialised - Push $MUI_TEMP1 - Push $MUI_TEMP2 - Push $R0 - Push $0 - Push $1 - Push $R1 - - !insertmacro INSTALLOPTIONS_INITDIALOG "${FILE}" - Pop $MUI_TEMP1 - - !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $MUI_TEMP1 - - !insertmacro INSTALLOPTIONS_READ $R0 "${FILE}" "Settings" "NumFields" - - ;$R0 NumField - ;$R1 type - ;$0 counter - ;$1 counter + 1200 - - StrCpy $1 1200 - StrCpy $0 0 - - ;do - loop: - IntOp $0 $0 + 1 - - GetDlgItem $MUI_TEMP2 $MUI_TEMP1 $1 - - !insertmacro INSTALLOPTIONS_READ $R1 "${FILE}" "Field $0" "Type" - ;if text - StrCmp $R1 "Text" input 0 - ;else if password - StrCmp $R1 "Password" input 0 - ;else if listbox - StrCmp $R1 "ListBox" input 0 - ;else if DropList - StrCmp $R1 "DropList" input 0 - ;else if DateTime - StrCmp $R1 "DateTime" input 0 - ;else if ComboBox - StrCmp $R1 "ComboBox" input 0 - ;else if TreeView - StrCmp $R1 "TreeView" input 0 - ;else if IPAddress - StrCmp $R1 "IPAddress" input 0 - ;else if FileRequest - StrCmp $R1 "FileRequest" +2 0 - ;else if DirRequest - StrCmp $R1 "DirRequest" 0 notInput - IntOp $1 $1 + 1 - - input: - !insertmacro UMUI_IOPAGEINPUTCTL_INIT $MUI_TEMP2 - Goto test - notInput: - -!ifndef USE_MUIEx -;---------------- - ;if GroupBox - StrCmp $R1 "GroupBox" 0 notGroupBox - !insertmacro UMUI_IOPAGECTLLIGHT_INIT $MUI_TEMP2 - Goto test - notGroupBox: - ;else if link - StrCmp $R1 "Link" 0 notLink - !insertmacro UMUI_IOPAGECTLLIGHTTRANSPARENT_INIT $MUI_TEMP2 - Goto test - notLink: - - !if "${UMUI_XPSTYLE}" == "On" - ;else if CheckBox - StrCmp $R1 "CheckBox" +2 0 - ;else if RadioButton - StrCmp $R1 "RadioButton" 0 notCheckBoxRadio - !insertmacro UMUI_IOPAGECTL_INIT $MUI_TEMP2 - Goto test - notCheckBoxRadio: - !endif - - ;else if not Button (label, checkbox, radiobutton...) - StrCmp $R1 "Button" test 0 - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP2 - -!endif -;----- - - test: - IntOp $1 $1 + 1 - ;while $0 <= $R0 - IntCmp $0 $R0 0 loop 0 - - Pop $R1 - Pop $1 - Pop $0 - Pop $R0 - Pop $MUI_TEMP2 - Exch $MUI_TEMP1 - - !insertmacro INSTALLOPTIONS_SHOW_RETURN - -!macroend - -!macro INSTALLOPTIONS_INITDIALOG FILE - - !ifdef UMUI_USE_INSTALLOPTIONSEX - !insertmacro UMUI_INSTALLOPTIONSEX_CONVERT "${FILE}" - InstallOptionsEx::initDialog "$PLUGINSDIR\${FILE}" - !insertmacro UMUI_INSTALLOPTIONSEX_CONVERT_NEXT "${FILE}" - !else - InstallOptions::initDialog "$PLUGINSDIR\${FILE}" - !endif - - !insertmacro UMUI_UMUI_HIDEBACKBUTTON - -!macroend - -!macro INSTALLOPTIONS_SHOW - - Push $0 - - !ifdef UMUI_USE_INSTALLOPTIONSEX - InstallOptionsEx::show - !else - InstallOptions::show - !endif - Pop $0 - - Pop $0 - -!macroend - -!macro INSTALLOPTIONS_SHOW_RETURN - - !ifdef UMUI_USE_INSTALLOPTIONSEX - InstallOptionsEx::show - !else - InstallOptions::show - !endif - -!macroend - -!macro INSTALLOPTIONS_READ VAR FILE SECTION KEY - - ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" - -!macroend - -!macro INSTALLOPTIONS_WRITE FILE SECTION KEY VALUE - - WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" "${VALUE}" - -!macroend - -!macro INSTALLOPTIONS_READ_CONVERT VAR FILE SECTION KEY - - ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" - Push ${VAR} - Call Io2Nsis - Pop ${VAR} - -!macroend - -!macro INSTALLOPTIONS_READ_UNCONVERT VAR FILE SECTION KEY - - ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" - Push ${VAR} - Call un.Io2Nsis - Pop ${VAR} - -!macroend - -!macro INSTALLOPTIONS_WRITE_CONVERT FILE SECTION KEY VALUE - - Push $0 - StrCpy $0 "${VALUE}" - Push $0 - Call Nsis2Io - Pop $0 - - WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" $0 - - Pop $0 - -!macroend - -!macro INSTALLOPTIONS_WRITE_UNCONVERT FILE SECTION KEY VALUE - - Push $0 - StrCpy $0 "${VALUE}" - Push $0 - Call un.Nsis2Io - Pop $0 - - WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" $0 - - Pop $0 - -!macroend - -!endif # ___NSIS__INSTALL_OPTIONS__NSH___ - - -;-------------------------------- -;END - -!verbose pop +/* + +NSIS Ultra-Modern User Interface version 2.0 beta 6 +Copyright 2005-2019 SuperPat + +Based on: + NSIS Modern User Interface version 1.81 (Git version: 6b4148e215433dddd1a954291364ef52e44d12e5) + Copyright 2002-2019 Joost Verburg + +*/ + +!ifndef MUI_INCLUDED +!verbose push 3 +!define MUI_INCLUDED +!define UMUI_SYSVERSION "2.0 beta 6" +!define MUI_SYSVERSION "1.81" +!verbose pop +!echo "NSIS Ultra-Modern User Interface version 2.0 beta 6 - Copyright 2005-2019 SuperPat" +!echo " (Bugfixes and some additions: 2015-2016 - Bodenseematze)" +!echo "Based on: NSIS Modern User Interface version 1.81 - Copyright 2002-2019 Joost Verburg" + +;-------------------------------- +!verbose push 3 +!define /IfNDef MUI_VERBOSE 3 +!verbose ${MUI_VERBOSE} + +;-------------------------------- +;HEADER FILES, DECLARATIONS + +!include WinMessages.nsh +!include LogicLib.nsh + +!define UMUI_HIDEFIRSTBACKBUTTON ;don't show the "Back" button on the first shown page, + ;even if it is not the first page defined +Var MUI_TEMP1 +Var MUI_TEMP2 + +Var UMUI_INSTALLFLAG ; Contains a OR of all the flags define here: + +;-------------------------------- +;INSTALL FLAGS + +;definition of all the install status +!define UMUI_DEFAULT_STATE 0 ; Default state: Any flag set +!define UMUI_CANCELLED 1 ; set by (un).onUserAbort function +!define UMUI_MINIMAL 2 ; set by INSTALLTYPE page +!define UMUI_STANDARD 4 ; set by INSTALLTYPE page +!define UMUI_COMPLETE 8 ; set by INSTALLTYPE page +!define UMUI_CUSTOM 16 ; set by INSTALLTYPE page +!define UMUI_MODIFY 32 ; set by MAINTENANCE page +!define UMUI_REPAIR 64 ; set by MAINTENANCE page +!define UMUI_UPDATE 128 ; set by UPDATE page +!define UMUI_REMOVE 256 ; set by MAINTENANCE and UPDATE pages +!define UMUI_CONTINUE_SETUP 512 ; set by MAINTENANCE and UPDATE pages +!define UMUI_LANGISSET 1024 ; set by UMUI_MULTILANG_GET macro and used by MULTILANGUAGE page +!define UMUI_SAMEVERSION 2048 ; set by (un).onGuiInit function and used by MANTENANCE and UPDATE pages +!define UMUI_DIFFVERSION 4096 ; set by (un).onGuiInit function and used by MANTENANCE and UPDATE pages +!define UMUI_HIDEBACKBUTTON 8192 ; set by (un).onGuiInit function +!define UMUI_ABORTFIRSTTIME 16384 ; set by (un).onGuiInit function and used by MANTENANCE page +!define UMUI_COMPONENTSSET 32768 ; set by COMPONENTS page + +;-------------------------------- +;INSERT CODE + +!macro MUI_INSERT + + !ifndef MUI_INSERT + !define MUI_INSERT + + !ifdef MUI_PRODUCT | MUI_VERSION + !warning "The MUI_PRODUCT and MUI_VERSION defines have been removed. Use a normal Name command now." + !endif + + !insertmacro MUI_INTERFACE + + !insertmacro MUI_FUNCTION_GUIINIT + !insertmacro MUI_FUNCTION_ABORTWARNING + + !ifdef MUI_IOCONVERT_USED + !insertmacro INSTALLOPTIONS_FUNCTION_WRITE_CONVERT + !endif + + !ifdef MUI_UNINSTALLER + !insertmacro MUI_UNFUNCTION_GUIINIT + !insertmacro MUI_FUNCTION_UNABORTWARNING + + !ifdef MUI_UNIOCONVERT_USED + !insertmacro INSTALLOPTIONS_UNFUNCTION_WRITE_CONVERT + !endif + !endif + + !endif + +!macroend + +;-------------------------------- +;GENERAL + +!macro MUI_DEFAULT SYMBOL CONTENT + + !define /IfNDef "${SYMBOL}" "${CONTENT}" + +!macroend + +!macro MUI_DEFAULT_IOCONVERT SYMBOL CONTENT + + !ifndef "${SYMBOL}" + !define "${SYMBOL}" "${CONTENT}" + !define /IfNDef "${SYMBOL}_DEFAULTSET" + !define /IfNDef "MUI_${MUI_PAGE_UNINSTALLER_PREFIX}IOCONVERT_USED" + !else + !insertmacro MUI_UNSET "${SYMBOL}_DEFAULTSET" + !endif + +!macroend + +!macro MUI_SET SYMBOL + + !define /IfNDef "${SYMBOL}" + +!macroend + +!macro MUI_UNSET SYMBOL + + !ifdef "${SYMBOL}" + !undef "${SYMBOL}" + !endif + +!macroend + +;-------------------------------- +;INTERFACE - COMPILE TIME SETTINGS + +!macro MUI_INTERFACE + + !ifndef MUI_INTERFACE + !define MUI_INTERFACE + + !ifdef MUI_INSERT_NSISCONF + !insertmacro MUI_NSISCONF + !endif + + !ifdef UMUI_USE_BG + !define /IfNDef UMUI_BGSKIN ${UMUI_USE_BG} + !warning "Deprecated: The UMUI_USE_BG define was replaced by UMUI_BGSKIN." + !endif + + !ifdef MUI_LANGDLL_REGISTRY_ROOT | MUI_LANGDLL_REGISTRY_KEY | MUI_LANGDLL_REGISTRY_VALUENAME + !warning "Deprecated: The MUI_LANGDLL_REGISTRY_ROOT, MUI_LANGDLL_REGISTRY_KEY and MUI_LANGDLL_REGISTRY_VALUENAME defines were replaced by UMUI_LANGUAGE_REGISTRY_VALUENAME, UMUI_LANGUAGE_REGISTRY_ROOT, UMUI_LANGUAGE_REGISTRY_KEY or you can use also the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY globals parameters." + !endif + + !ifdef MUI_LANGDLL_ALWAYSSHOW + !warning "Deprecated: The MUI_LANGDLL_ALWAYSSHOW define was replaced by UMUI_LANGUAGE_ALWAYSSHOW." + !define /IfNDef UMUI_LANGUAGE_ALWAYSSHOW "${MUI_LANGDLL_ALWAYSSHOW}" + !endif + + !ifdef UMUI_BGSKIN + !include "${NSISDIR}\Contrib\UltraModernUI\BGSkins\${UMUI_BGSKIN}.nsh" + !endif + + !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME + !ifndef UMUI_LANGUAGE_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_LANGUAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else ifdef MUI_LANGDLL_REGISTRY_ROOT + !define UMUI_LANGUAGE_REGISTRY_ROOT "${MUI_LANGDLL_REGISTRY_ROOT}" + !else + !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_LANGUAGE_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_LANGUAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else ifdef MUI_LANGDLL_REGISTRY_KEY + !define UMUI_LANGUAGE_REGISTRY_KEY "${MUI_LANGDLL_REGISTRY_KEY}" + !else + !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !else ifdef MUI_LANGDLL_REGISTRY_VALUENAME + !define UMUI_LANGUAGE_REGISTRY_VALUENAME "${MUI_LANGDLL_REGISTRY_VALUENAME}" + !endif + + !ifndef MUI_TEXTCOLOR + !ifdef UMUI_TEXT_COLOR + !warning "Deprecated: The UMUI_TEXT_COLOR define was renamed in MUI_TEXTCOLOR since Ultra-Modern UI 2.0 beta 5" + !define MUI_TEXTCOLOR "${UMUI_TEXT_COLOR}" + !else ifdef MUI_TEXT_COLOR + !warning "Deprecated: The MUI_TEXT_COLOR define was renamed in MUI_TEXTCOLOR since Ultra-Modern UI 1.00 beta 2" + !define MUI_TEXTCOLOR "${MUI_TEXT_COLOR}" + !endif + !endif + + !ifdef UMUI_UI_COMPONENTSPAGE_SMALLDESC | UMUI_UI_COMPONENTSPAGE_NODESC + !warning "Deprecated: The UMUI_UI_COMPONENTSPAGE_SMALLDESC and UMUI_UI_COMPONENTSPAGE_NODESC define were renamed in MUI_UI_COMPONENTSPAGE_SMALLDESC and MUI_UI_COMPONENTSPAGE_NODESC since Ultra-Modern UI 1.00 beta 2" + !ifdef UMUI_UI_COMPONENTSPAGE_SMALLDESC + !define /IfNDef MUI_UI_COMPONENTSPAGE_SMALLDESC "${UMUI_UI_COMPONENTSPAGE_SMALLDESC}" + !endif + !ifdef UMUI_UI_COMPONENTSPAGE_NODESC + !define /IfNDef MUI_UI_COMPONENTSPAGE_NODESC "${UMUI_UI_COMPONENTSPAGE_NODESC}" + !endif + !endif + + +!ifndef USE_MUIEx +;----------------- + + !ifdef UMUI_CUSTOM_SKIN + !define /IfNDef UMUI_SKIN "${UMUI_CUSTOM_SKIN}" + !warning "Deprecated: The UMUI_CUSTOM_SKIN define is no more necessary and you can simply use the UMUI_SKIN define with your custom skin." + !endif + + !addincludedir "${NSISDIR}\Contrib\UltraModernUI\Skins\" + + !ifdef UMUI_SKIN + !include "${UMUI_SKIN}.nsh" + !endif + + !ifdef MUI_UI + !warning "The MUI_UI define have been renamed by UMUI_UI in the UMUI mode in order to assure the compatibility with the former Modern UI scripts. Define Ignored" + !endif + + !ifdef UMUI_HEADERIMAGE_BMP | UMUI_UNHEADERIMAGE_BMP + !warning "Deprecated: The UMUI_HEADERIMAGE_BMP and UMUI_UNHEADERIMAGE_BMP defines were renamed by UMUI_HEADERBGIMAGE_BMP and UMUI_UNHEADERBGIMAGE_BMP since Ultra-Modern UI 1.00 beta 2." + !ifdef UMUI_HEADERIMAGE_BMP + !define /IfNDef UMUI_HEADERBGIMAGE_BMP "${UMUI_HEADERIMAGE_BMP}" + !endif + !ifdef UMUI_UNHEADERIMAGE_BMP + !define /IfNDef UMUI_UNHEADERBGIMAGE_BMP "${UMUI_UNHEADERIMAGE_BMP}" + !endif + !endif + + !ifdef MUI_UI_HEADERIMAGE | MUI_UI_HEADERIMAGE_RIGHT | MUI_HEADERIMAGE | MUI_HEADERIMAGE_RIGHT + !warning "The MUI_UI_HEADERIMAGE, MUI_UI_HEADERIMAGE_RIGHT, MUI_HEADERIMAGE and MUI_HEADERIMAGE_RIGHT defines are not currently supported in the UMUI mode." + !endif + + !ifdef UMUI_UNIQUEBGIMAGE + !define /IfNDef UMUI_PAGEBGIMAGE + !endif + !ifdef UMUI_UNUNIQUEBGIMAGE + !define /IfNDef UMUI_UNPAGEBGIMAGE + !endif + + !ifndef UMUI_ULTRAMODERN_SMALL + !define /IfNDef UMUI_UI "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern.exe" + !define /IfNDef UMUI_UI_SB "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_sb.exe" + !define /IfNDef UMUI_UI_NOLEFTIMAGE "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_noleftimage.exe" + !else + !define /IfNDef UMUI_UI_SMALL "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_small.exe" + !define /IfNDef UMUI_UI_SB "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_small_sb.exe" + !define /IfNDef UMUI_USE_SMALLPAGE + !ifndef UMUI_UNIQUEBGIMAGE + !define /IfNDef UMUI_NO_WFA_BGTRANSPARENT + !endif + !endif + + !ifndef UMUI_USE_SMALLPAGE + !define /IfNDef MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_smalldesc.exe" + !define /IfNDef MUI_UI_COMPONENTSPAGE_NODESC "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_nodesc.exe" + !define /IfNDef UMUI_UI_COMPONENTSPAGE_BIGDESC "${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_bigdesc.exe" + !else + !define /IfNDef MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISDIR}\Contrib\UIs\modern_smalldesc.exe" + !define /IfNDef MUI_UI_COMPONENTSPAGE_NODESC "${NSISDIR}\Contrib\UIs\modern_nodesc.exe" + !define /IfNDef UMUI_UI_COMPONENTSPAGE_BIGDESC "${NSISDIR}\Contrib\UIs\UltraModernUI\modern_bigdesc.exe" + !endif + + !define /IfNDef MUI_ICON "${NSISDIR}\Contrib\Graphics\UltraModernUI\Icon.ico" + !define /IfNDef MUI_UNICON "${NSISDIR}\Contrib\Graphics\UltraModernUI\UnIcon.ico" + + !define /IfNDef MUI_BGCOLOR 4C72B2 + !define /IfNDef MUI_TEXTCOLOR FFFFFF + !define /IfNDef UMUI_TEXT_LIGHTCOLOR FFFF00 + !define /IfNDef UMUI_HEADERTEXT_COLOR "${MUI_TEXTCOLOR}" + + !define /IfNDef MUI_LICENSEPAGE_BGCOLOR "/windows" + !define /IfNDef MUI_INSTFILESPAGE_COLORS "${MUI_TEXTCOLOR} ${MUI_BGCOLOR}" + !define /IfNDef MUI_INSTFILESPAGE_PROGRESSBAR "smooth" + + !define /IfNDef UMUI_LEFTIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Left.bmp" + !define /IfNDef UMUI_HEADERBGIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Header.bmp" + !define /IfNDef UMUI_BOTTOMIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Bottom.bmp" + !define /IfNDef UMUI_BUTTONIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp" + !define /IfNDef UMUI_SCROLLBARIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\ScrollBar.bmp" + !define /IfNDef UMUI_PAGEBGIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\PageBG.bmp" + + !define /IfNDef UMUI_UNLEFTIMAGE_BMP "${UMUI_LEFTIMAGE_BMP}" + !define /IfNDef UMUI_UNHEADERBGIMAGE_BMP "${UMUI_HEADERBGIMAGE_BMP}" + !define /IfNDef UMUI_UNBOTTOMIMAGE_BMP "${UMUI_BOTTOMIMAGE_BMP}" + !define /IfNDef UMUI_UNBUTTONIMAGE_BMP "${UMUI_BUTTONIMAGE_BMP}" + !define /IfNDef UMUI_UNSCROLLBARIMAGE_BMP "${UMUI_SCROLLBARIMAGE_BMP}" + !define /IfNDef UMUI_UNPAGEBGIMAGE_BMP "${UMUI_PAGEBGIMAGE_BMP}" + + !define /IfNDef UMUI_BRANDINGTEXTFRONTCOLOR 8b8ca4 + !define /IfNDef UMUI_BRANDINGTEXTBACKCOLOR eeeef3 + + !define /IfNDef MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Wizard.bmp" + !define /IfNDef MUI_UNWELCOMEFINISHPAGE_BITMAP "${MUI_WELCOMEFINISHPAGE_BITMAP}" + + !define /IfNDef UMUI_XPSTYLE Off + + !ifndef UMUI_ULTRAMODERN_SMALL + + ChangeUI all "${UMUI_UI}" + + !ifdef UMUI_NOLEFTIMAGE + !insertmacro MUI_UNSET UMUI_LEFTIMAGE_BMP + !insertmacro MUI_UNSET UMUI_UNLEFTIMAGE_BMP + ChangeUI IDD_INST "${UMUI_UI_NOLEFTIMAGE}" + !endif + + !else + + !define /IfNDef UMUI_USE_SMALL_PAGES + ChangeUI all "${UMUI_UI_SMALL}" + + !endif + + !ifdef UMUI_NOHEADERBGIMAGE + !insertmacro MUI_UNSET UMUI_HEADERBGIMAGE + !else + !define /IfNDef UMUI_HEADERBGIMAGE + !endif + + !ifdef UMUI_HEADERBGIMAGE + !define /IfNDef MUI_HEADER_TRANSPARENT_TEXT + !endif + + !ifdef UMUI_NOBOTTOMIMAGE + !insertmacro MUI_UNSET UMUI_BOTTOMIMAGE_BMP + !insertmacro MUI_UNSET UMUI_UNBOTTOMIMAGE_BMP + !endif + + !ifdef UMUI_NO_BUTTONIMAGE + !insertmacro MUI_UNSET UMUI_BUTTONIMAGE_BMP + !insertmacro MUI_UNSET UMUI_UNBUTTONIMAGE_BMP + !endif + + !ifdef UMUI_NO_SCROLLBARIMAGE + !insertmacro MUI_UNSET UMUI_SCROLLBARIMAGE_BMP + !insertmacro MUI_UNSET UMUI_UNSCROLLBARIMAGE_BMP + !endif + +!else +;------- + + !ifdef UMUI_SKIN + !warning "The UMUI_SKIN define is not used in Modern UIEx. Define ignored." + !undef UMUI_SKIN + !endif + !insertmacro MUI_UNSET UMUI_PAGEBGIMAGE + !insertmacro MUI_UNSET UMUI_UNPAGEBGIMAGE + !insertmacro MUI_UNSET UMUI_UNIQUEBGIMAGE + !insertmacro MUI_UNSET UMUI_UNUNIQUEBGIMAGE + + ; by default, UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE is set + !ifndef UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE + !define /IfNDef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE + !else + !insertmacro MUI_UNSET UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE + !endif + + !define /IfNDef MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe" + !define /IfNDef UMUI_UI_SB "${NSISDIR}\Contrib\UIs\UltraModernUI\modern_sb.exe" + !define /IfNDef MUI_UI_HEADERIMAGE "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe" + !define /IfNDef MUI_UI_HEADERIMAGE_RIGHT "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe" + !define /IfNDef UMUI_UI_HEADERBGIMAGE "${NSISDIR}\Contrib\UIs\UltraModernUI\modern_headerbgimage.exe" + !define /IfNDef MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISDIR}\Contrib\UIs\modern_smalldesc.exe" + !define /IfNDef MUI_UI_COMPONENTSPAGE_NODESC "${NSISDIR}\Contrib\UIs\modern_nodesc.exe" + !define /IfNDef UMUI_UI_COMPONENTSPAGE_BIGDESC "${NSISDIR}\Contrib\UIs\UltraModernUI\modern_bigdesc.exe" + + !define /IfNDef MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" + !define /IfNDef MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" + + !define /IfNDef MUI_LICENSEPAGE_BGCOLOR "/windows" + !define /IfNDef MUI_INSTFILESPAGE_COLORS "/windows" + !define /IfNDef MUI_INSTFILESPAGE_PROGRESSBAR "smooth" + + !define /IfNDef MUI_BGCOLOR "FFFFFF" + !define /IfNDef MUI_TEXTCOLOR "000000" + !define /IfNDef UMUI_TEXT_LIGHTCOLOR "000000" + !define /IfNDef UMUI_HEADERTEXT_COLOR "${MUI_TEXTCOLOR}" + + !define /IfNDef UMUI_HEADERBGIMAGE_BMP "${NSISDIR}\Contrib\Graphics\UltraModernUI\HeaderBG.bmp" + !define /IfNDef UMUI_UNHEADERBGIMAGE_BMP "${UMUI_HEADERBGIMAGE_BMP}" + !ifdef UMUI_BUTTONIMAGE_BMP + !define /IfNDef UMUI_UNBUTTONIMAGE_BMP "${UMUI_BUTTONIMAGE_BMP}" + !endif + !ifdef UMUI_SCROLLBARIMAGE_BMP + !define /IfNDef UMUI_UNSCROLLBARIMAGE_BMP "${UMUI_SCROLLBARIMAGE_BMP}" + !endif + + !define /IfNDef MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" + !define /IfNDef MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" + + !ifdef UMUI_BUTTONIMAGE_BMP | UMUI_UNBUTTONIMAGE_BMP + !define /IfNDef UMUI_XPSTYLE Off + !else + !define /IfNDef UMUI_XPSTYLE On + !endif + + !if "${MUI_WELCOMEFINISHPAGE_BITMAP}" == "" + !error "Invalid MUI_WELCOMEFINISHPAGE_BITMAP" + !endif + !if "${MUI_UNWELCOMEFINISHPAGE_BITMAP}" == "" + !error "Invalid MUI_UNWELCOMEFINISHPAGE_BITMAP" + !endif + + !define /IfNDef UMUI_USE_SMALL_PAGES + + !ifdef UMUI_HEADERBGIMAGE + + !define /IfNDef MUI_HEADER_TRANSPARENT_TEXT + !insertmacro MUI_UNSET MUI_HEADERIMAGE + !insertmacro MUI_UNSET MUI_HEADERIMAGE_RIGHT + + !else ifdef MUI_HEADERIMAGE + + !define /IfNDef MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" + + !ifndef MUI_HEADERIMAGE_UNBITMAP + !define MUI_HEADERIMAGE_UNBITMAP "${MUI_HEADERIMAGE_BITMAP}" + !ifdef MUI_HEADERIMAGE_BITMAP_NOSTRETCH + !define /IfNDef MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH + !endif + !endif + + !if "${MUI_HEADERIMAGE_BITMAP}" == "" + !error "Invalid MUI_HEADERIMAGE_BITMAP" + !endif + !if "${MUI_HEADERIMAGE_UNBITMAP}" == "" + !error "Invalid MUI_HEADERIMAGE_UNBITMAP" + !endif + + !ifdef MUI_HEADERIMAGE_BITMAP_RTL + !ifndef MUI_HEADERIMAGE_UNBITMAP_RTL + !define MUI_HEADERIMAGE_UNBITMAP_RTL "${MUI_HEADERIMAGE_BITMAP_RTL}" + !ifdef MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH + !define /IfNDef MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH + !endif + !endif + !endif + + !if "${MUI_HEADERIMAGE_BITMAP_RTL}" == "" + !error "Invalid MUI_HEADERIMAGE_BITMAP_RTL" + !endif + !if "${MUI_HEADERIMAGE_UNBITMAP_RTL}" == "" + !error "Invalid MUI_HEADERIMAGE_UNBITMAP_RTL" + !endif + !endif + + ChangeUI all "${MUI_UI}" + + !ifdef UMUI_HEADERBGIMAGE + ChangeUI IDD_INST "${UMUI_UI_HEADERBGIMAGE}" + !else ifdef MUI_HEADERIMAGE + !ifndef MUI_HEADERIMAGE_RIGHT + ChangeUI IDD_INST "${MUI_UI_HEADERIMAGE}" + !else + ChangeUI IDD_INST "${MUI_UI_HEADERIMAGE_RIGHT}" + !endif + !endif + +!endif +;------- + + !ifdef MUI_COMPONENTSPAGE_SMALLDESC + ChangeUI IDD_SELCOM "${MUI_UI_COMPONENTSPAGE_SMALLDESC}" + !else ifdef MUI_COMPONENTSPAGE_NODESC + ChangeUI IDD_SELCOM "${MUI_UI_COMPONENTSPAGE_NODESC}" + !else ifdef UMUI_COMPONENTSPAGE_BIGDESC + ChangeUI IDD_SELCOM "${UMUI_UI_COMPONENTSPAGE_BIGDESC}" + !endif + + ; Workaround for unstyled detail button + !ifdef UMUI_BUTTONIMAGE_BMP | UMUI_UNBUTTONIMAGE_BMP + !if ! "${UMUI_XPSTYLE}" == "On" + ChangeUI IDD_INSTFILES "${UMUI_UI_SB}" + !endif + !endif + + !ifdef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE + !define /IfNDef UMUI_WELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini" + !define /IfNDef UMUI_UNWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini" + !define /IfNDef UMUI_ALTERNATEWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini" + !define /IfNDef UMUI_UNALTERNATEWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini" + !else + !define /IfNDef UMUI_WELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini" + !define /IfNDef UMUI_UNWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini" + !define /IfNDef UMUI_ALTERNATEWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini" + !define /IfNDef UMUI_UNALTERNATEWELCOMEFINISHABORTPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini" + !endif + !define /IfNDef UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\MaintenanceUpdateSetupType.ini" + !define /IfNDef UMUI_CONFIRMPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\Confirm.ini" + !define /IfNDef UMUI_INFORMATIONPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\Information.ini" + !define /IfNDef UMUI_ADDITIONALTASKSPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AdditionalTasks.ini" + !define /IfNDef UMUI_SERIALNUMBERPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\SerialNumber.ini" + !define /IfNDef UMUI_ALTERNATIVESTARTMENUPAGE_INI "${NSISDIR}\Contrib\UltraModernUI\Ini\AlternativeStartMenu.ini" + + !define /IfNDef MUI_COMPONENTSPAGE_CHECKBITMAP "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp" + + !define /IfNDef UMUI_TEXT_INPUTCOLOR 000000 + !define /IfNDef UMUI_BGINPUTCOLOR FFFFFF + + !define /IfNDef UMUI_DISABLED_BUTTON_TEXT_COLOR 808080 + !define /IfNDef UMUI_SELECTED_BUTTON_TEXT_COLOR 000080 + !define /IfNDef UMUI_BUTTON_TEXT_COLOR 000000 + + !define /IfNDef UMUI_UNDISABLED_BUTTON_TEXT_COLOR "${UMUI_DISABLED_BUTTON_TEXT_COLOR}" + !define /IfNDef UMUI_UNSELECTED_BUTTON_TEXT_COLOR "${UMUI_SELECTED_BUTTON_TEXT_COLOR}" + !define /IfNDef UMUI_UNBUTTON_TEXT_COLOR "${UMUI_BUTTON_TEXT_COLOR}" + + XPStyle ${UMUI_XPSTYLE} + + !ifdef UMUI_USE_ALTERNATE_PAGE | UMUI_USE_UNALTERNATE_PAGE + !define /IfNDef UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE 8 + !else + !define /IfNDef UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE 12 + !endif + + Icon "${MUI_ICON}" + UninstallIcon "${MUI_UNICON}" + + CheckBitmap "${MUI_COMPONENTSPAGE_CHECKBITMAP}" + LicenseBkColor "${MUI_LICENSEPAGE_BGCOLOR}" + InstallColors ${MUI_INSTFILESPAGE_COLORS} + InstProgressFlags ${MUI_INSTFILESPAGE_PROGRESSBAR} + + SubCaption 4 " " + UninstallSubCaption 2 " " + + !ifdef UMUI_INSTALLDIR_REGISTRY_VALUENAME + !ifndef UMUI_INSTALLDIR_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_INSTALLDIR_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_INSTALLDIR_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_INSTALLDIR_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + InstallDirRegKey ${UMUI_INSTALLDIR_REGISTRY_ROOT} "${UMUI_INSTALLDIR_REGISTRY_KEY}" "${UMUI_INSTALLDIR_REGISTRY_VALUENAME}" + !endif + + !define /IfNDef MUI_ABORTWARNING_TEXT "$(MUI_TEXT_ABORTWARNING)" + !define /IfNDef MUI_UNABORTWARNING_TEXT "$(MUI_UNTEXT_ABORTWARNING)" + + !endif + +!macroend + + + +;-------------------------------- +;INTERFACE - RUN-TIME + +; Set the background color of the static Pages +!macro UMUI_PAGEBG_INIT +!ifndef USE_MUIEx +;---------------- + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + SetCtlColors $MUI_TEMP1 "${MUI_BGCOLOR}" "${MUI_BGCOLOR}" +!endif +;----- +!macroend + +; Set transparent the background of the static Pages +!macro UMUI_PAGEBGTRANSPARENT_INIT +!ifndef USE_MUIEx +;---------------- + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + SetCtlColors $MUI_TEMP1 "transparent" "transparent" + !else + SetCtlColors $MUI_TEMP1 "${MUI_BGCOLOR}" "${MUI_BGCOLOR}" + !endif +!endif +;----- +!macroend + +; Set the background color of the control in a static Pages +!macro UMUI_PAGECTL_INIT ID +!ifndef USE_MUIEx +;----------------- + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${ID} + SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" +!endif +;----- +!macroend + +; Set transparent the background of the control in a static Pages +!macro UMUI_PAGECTLTRANSPARENT_INIT ID +!ifndef USE_MUIEx +;----------------- + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${ID} + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "transparent" + !else + SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + !endif +!endif +;----- +!macroend + +; Set the background color and the light text color of the control in a static Pages +!macro UMUI_PAGECTLLIGHT_INIT ID +!ifndef USE_MUIEx +;----------------- + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${ID} + SetCtlColors $MUI_TEMP1 "${UMUI_TEXT_LIGHTCOLOR}" "${MUI_BGCOLOR}" +!endif +;----- +!macroend + +; Set transparent the background and the light text color of the control in a static Pages +!macro UMUI_PAGECTLLIGHTTRANSPARENT_INIT ID +!ifndef USE_MUIEx +;----------------- + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${ID} + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + SetCtlColors $MUI_TEMP1 "${UMUI_TEXT_LIGHTCOLOR}" "transparent" + !else + SetCtlColors $MUI_TEMP1 "${UMUI_TEXT_LIGHTCOLOR}" "${MUI_BGCOLOR}" + !endif +!endif +;----- +!macroend + +; Set the background and text colors of the input control in a static Pages +!macro UMUI_PAGEINPUTCTL_INIT ID + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${ID} + SetCtlColors $MUI_TEMP1 "${UMUI_TEXT_INPUTCOLOR}" "${UMUI_BGINPUTCOLOR}" +!macroend + +; Change the background on the Welcome/Finish/Abort Pages +!macro UMUI_WFAPAGEBGTRANSPARENT_INIT HWND +!ifndef USE_MUIEx +;---------------- + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + !ifndef UMUI_NO_WFA_BGTRANSPARENT + SetCtlColors ${HWND} "" "transparent" + !else + SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + !endif + !else + SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + !endif +!else +;----- + SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" +!endif +;----- +!macroend + +; Change the background of IO Pages +!macro UMUI_IOPAGEBGTRANSPARENT_INIT HWND +!ifndef USE_MUIEx +;---------------- + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + !ifndef UMUI_IONOBGTRANSPARENT + SetCtlColors ${HWND} "" "transparent" + !else + SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + !endif + !else + SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + !endif +!endif +;----- + !insertmacro MUI_UNSET UMUI_IONOBGTRANSPARENT +!macroend + +; Change the background of IO Pages +!macro UMUI_IOPAGEBG_INIT HWND +!ifndef USE_MUIEx +;---------------- + SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" +!endif +;----- +!macroend + +; Change transparent the background of the IO Controls +!macro UMUI_IOPAGECTLTRANSPARENT_INIT HWND +!ifndef USE_MUIEx +;----------------- + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "transparent" + !else + SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + !endif +!else +;----- + SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" +!endif +;----- +!macroend + +; Change the background color of the IO Controls +!macro UMUI_IOPAGECTL_INIT HWND + SetCtlColors ${HWND} "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" +!macroend + +; Set the background and text colors of the IO Input Controls +!macro UMUI_IOPAGEINPUTCTL_INIT HWND + SetCtlColors ${HWND} "${UMUI_TEXT_INPUTCOLOR}" "${UMUI_BGINPUTCOLOR}" +!macroend + +; Set the background color and the light text color of the IO Controls +!macro UMUI_IOPAGECTLLIGHT_INIT HWND + SetCtlColors ${HWND} "${UMUI_TEXT_LIGHTCOLOR}" "${MUI_BGCOLOR}" +!macroend + +; Set transparent the background and the light text color of the IO Controls +!macro UMUI_IOPAGECTLLIGHTTRANSPARENT_INIT HWND +!ifndef USE_MUIEx +;----------------- + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + SetCtlColors ${HWND} "${UMUI_TEXT_LIGHTCOLOR}" "transparent" + !else + SetCtlColors ${HWND} "${UMUI_TEXT_LIGHTCOLOR}" "${MUI_BGCOLOR}" + !endif +!else +;----- + SetCtlColors ${HWND} "${UMUI_TEXT_LIGHTCOLOR}" "${MUI_BGCOLOR}" +!endif +;----- +!macroend + +!macro MUI_INNERDIALOG_TEXT CONTROL TEXT + + !verbose push + !verbose ${MUI_VERBOSE} + + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${CONTROL} + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}" + + !verbose pop + +!macroend + +!macro MUI_HEADER_TEXT_INTERNAL ID TEXT + + GetDlgItem $MUI_TEMP1 $HWNDPARENT "${ID}" + + !ifndef UMUI_HEADERBGIMAGE + !ifdef MUI_HEADER_TRANSPARENT_TEXT + + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + !endif + !endif + + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}" + + !ifndef UMUI_HEADERBGIMAGE + !ifdef MUI_HEADER_TRANSPARENT_TEXT + + ShowWindow $MUI_TEMP1 ${SW_SHOWNA} + + !endif + !endif + +!macroend + +!macro MUI_HEADER_TEXT TEXT SUBTEXT + + !verbose push + !verbose ${MUI_VERBOSE} + +!ifndef USE_MUIEx +;----------------- + + !ifndef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}UNIQUEBGIMAGE + SetBrandingImage /IMGID=1034 /RESIZETOFIT "$PLUGINSDIR\Header.bmp" + !endif + +!else +;----- + + !ifdef UMUI_HEADERBGIMAGE + SetBrandingImage /IMGID=1034 /RESIZETOFIT "$PLUGINSDIR\Header.bmp" + !endif + + !ifdef MUI_HEADER_TRANSPARENT_TEXT + + LockWindow on + + !endif + +!endif +;----- + + !insertmacro MUI_HEADER_TEXT_INTERNAL 1037 "${TEXT}" + !insertmacro MUI_HEADER_TEXT_INTERNAL 1038 "${SUBTEXT}" + +!ifdef USE_MUIEx +;---------------- + + !ifdef MUI_HEADER_TRANSPARENT_TEXT + + LockWindow off + + !endif + +!endif +;----- + + !verbose pop + +!macroend + +!macro MUI_HEADER_TEXT_PAGE TEXT SUBTEXT + + !ifdef MUI_PAGE_HEADER_TEXT & MUI_PAGE_HEADER_SUBTEXT + !insertmacro MUI_HEADER_TEXT "${MUI_PAGE_HEADER_TEXT}" "${MUI_PAGE_HEADER_SUBTEXT}" + !else ifdef MUI_PAGE_HEADER_TEXT + !insertmacro MUI_HEADER_TEXT "${MUI_PAGE_HEADER_TEXT}" "${SUBTEXT}" + !else ifdef MUI_PAGE_HEADER_SUBTEXT + !insertmacro MUI_HEADER_TEXT "${TEXT}" "${MUI_PAGE_HEADER_SUBTEXT}" + !else + !insertmacro MUI_HEADER_TEXT "${TEXT}" "${SUBTEXT}" + !endif + + !insertmacro MUI_UNSET MUI_PAGE_HEADER_TEXT + !insertmacro MUI_UNSET MUI_PAGE_HEADER_SUBTEXT + +!macroend + +!macro MUI_DESCRIPTION_BEGIN + + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043 + + StrCmp $0 -1 0 mui.description_begin_done + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:" + +!ifndef USE_MUIEx +;---------------- + !ifndef UMUI_ENABLE_DESCRIPTION_TEXT + EnableWindow $MUI_TEMP1 0 + !else + !insertmacro UMUI_PAGECTLLIGHT_INIT 1043 +; !insertmacro UMUI_PAGECTLLIGHTTRANSPARENT_INIT 1043 + !endif +!else +;----- + EnableWindow $MUI_TEMP1 0 +!endif +;----- + + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$MUI_TEXT" + Goto mui.description_done + mui.description_begin_done: + +!macroend + +!macro MUI_DESCRIPTION_TEXT VAR TEXT + + !verbose push + !verbose ${MUI_VERBOSE} + + StrCmp $0 ${VAR} 0 mui.description_${VAR}_done + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:" + +!ifndef USE_MUIEx +;---------------- + !ifndef UMUI_ENABLE_DESCRIPTION_TEXT + EnableWindow $MUI_TEMP1 1 + !else + !insertmacro UMUI_PAGECTL_INIT 1043 +; !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1043 + !endif +!else +;----- + EnableWindow $MUI_TEMP1 1 +!endif +;----- + + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}" + Goto mui.description_done + mui.description_${VAR}_done: + + !verbose pop + +!macroend + +!macro MUI_DESCRIPTION_END + + !verbose push + !verbose ${MUI_VERBOSE} + + mui.description_done: + +!ifndef USE_MUIEx +;---------------- + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + +; Workaround attempt for stransparent component description +; But all these methods flicker: + +; method 1 +; System::Call "user32::LockWindowUpdate(i)i ($MUI_TEMP1)" +; System::Call "user32::InvalidateRect(i,i,i)i ($MUI_TEMP1, 0, 1)" +;!define RDW_INVALIDATE 0x0001 +;!define RDW_ERASE 0x0004 +;!define RDW_UPDATENOW 0x0100 +; System::Call "user32::RedrawWindow(i,i,i,i)i ($MUI_TEMP1, 0, 0, ${RDW_INVALIDATE}|${RDW_ERASE}|${RDW_UPDATENOW})" +; System::Call "user32::LockWindowUpdate(i)i (0)" + +; method 2 +; LockWindow on +; LockWindow off + +; method 3 +; FindWindow $MUI_TEMP2 "#32770" "" $HWNDPARENT +; ShowWindow $MUI_TEMP2 ${SW_HIDE} +; ShowWindow $MUI_TEMP2 ${SW_SHOW} + + !endif +!endif +;----- + + !verbose pop + +!macroend + +!macro MUI_ENDHEADER + + IfAbort mui.endheader_abort + + !ifdef MUI_INSTFILESPAGE_FINISHHEADER_TEXT & MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT + !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_FINISHHEADER_TEXT}" "${MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT}" + !else ifdef MUI_INSTFILESPAGE_FINISHHEADER_TEXT + !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_FINISHHEADER_TEXT}" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SUBTITLE)" + !else ifdef MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT + !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_TITLE)" "${MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT}" + !else + !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_TITLE)" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SUBTITLE)" + !endif + + Goto mui.endheader_done + + mui.endheader_abort: + + !ifdef MUI_INSTFILESPAGE_ABORTHEADER_TEXT & MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT + !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_ABORTHEADER_TEXT}" "${MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT}" + !else ifdef MUI_INSTFILESPAGE_ABORTHEADER_TEXT + !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_ABORTHEADER_TEXT}" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_SUBTITLE)" + !else ifdef MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT + !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_TITLE)" "${MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT}" + !else + !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_TITLE)" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_SUBTITLE)" + !endif + + mui.endheader_done: + +!macroend + +!macro MUI_ABORTWARNING + + !ifdef MUI_FINISHPAGE_ABORTWARNINGCHECK + StrCmp $MUI_NOABORTWARNING "1" mui.quit + !endif + + !ifdef MUI_ABORTWARNING_CANCEL_DEFAULT + MessageBox MB_YESNO|MB_ICONEXCLAMATION|MB_DEFBUTTON2 "${MUI_ABORTWARNING_TEXT}" IDYES mui.quit + !else + MessageBox MB_YESNO|MB_ICONEXCLAMATION "${MUI_ABORTWARNING_TEXT}" IDYES mui.quit + !endif + + Abort + mui.quit: + +!macroend + +!macro MUI_UNABORTWARNING + + !ifdef MUI_UNABORTWARNING_CANCEL_DEFAULT + MessageBox MB_YESNO|MB_ICONEXCLAMATION|MB_DEFBUTTON2 "${MUI_UNABORTWARNING_TEXT}" IDYES mui.quit + !else + MessageBox MB_YESNO|MB_ICONEXCLAMATION "${MUI_UNABORTWARNING_TEXT}" IDYES mui.quit + !endif + + Abort + mui.quit: + +!macroend + +!macro MUI_GUIINIT + + !insertmacro UMUI_WELCOMEFINISHABORTPAGE_INIT "" + +!ifdef USE_MUIEx +;---------------- + !insertmacro MUI_HEADERIMAGE_INIT "" +!endif +;---------------- + + !insertmacro MUI_GUIINIT_BASIC "" + + !ifdef MUI_FINISHPAGE + !ifndef MUI_FINISHPAGE_NOAUTOCLOSE + SetAutoClose true + !endif + !endif + +!macroend + +!macro MUI_UNGUIINIT + + !insertmacro UMUI_WELCOMEFINISHABORTPAGE_INIT "UN" + +!ifdef USE_MUIEx +;---------------- + !insertmacro MUI_HEADERIMAGE_INIT "" +!endif +;---------------- + + !insertmacro MUI_GUIINIT_BASIC "UN" + + !ifdef MUI_UNFINISHPAGE + !ifndef MUI_UNFINISHPAGE_NOAUTOCLOSE + SetAutoClose true + !endif + !endif + +!macroend + +!macro MUI_GUIINIT_BASIC UNPREFIX + + InitPluginsDir + +!ifndef USE_MUIEx +;----------------- + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + CreateFont $MUI_TEMP2 "$(^Font)" "$(^FontSize)" "700" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 + SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "transparent" + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "transparent" + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + CreateFont $MUI_TEMP2 Arial 10 1400 + SetCtlColors $MUI_TEMP1 ${UMUI_BRANDINGTEXTFRONTCOLOR} "transparent" + SendMessage $MUI_TEMP1 ${WM_SETFONT} "$MUI_TEMP2" 0 + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$(^Branding) " + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + CreateFont $MUI_TEMP2 Arial 10 1400 + SetCtlColors $MUI_TEMP1 ${UMUI_BRANDINGTEXTBACKCOLOR} "transparent" + SendMessage $MUI_TEMP1 ${WM_SETFONT} "$MUI_TEMP2" 0 + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$(^Branding) " + + SetCtlColors $HWNDPARENT "${MUI_BGCOLOR}" "${MUI_BGCOLOR}" + + !ifndef UMUI_${UNPREFIX}UNIQUEBGIMAGE + + !ifdef UMUI_${UNPREFIX}LEFTIMAGE_BMP + ReserveFile "${UMUI_${UNPREFIX}LEFTIMAGE_BMP}" + + SetOutPath "$PLUGINSDIR" + File /oname=LeftImg.bmp "${UMUI_${UNPREFIX}LEFTIMAGE_BMP}" + SetBrandingImage /IMGID=1302 /RESIZETOFIT "$PLUGINSDIR\LeftImg.bmp" + !endif + + !ifdef UMUI_HEADERBGIMAGE + ReserveFile "${UMUI_${UNPREFIX}HEADERBGIMAGE_BMP}" + SetOutPath "$PLUGINSDIR" + File /oname=Header.bmp "${UMUI_${UNPREFIX}HEADERBGIMAGE_BMP}" + SetBrandingImage /IMGID=1034 /RESIZETOFIT "$PLUGINSDIR\Header.bmp" + !else + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034 + SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + !endif + + !ifdef UMUI_${UNPREFIX}BOTTOMIMAGE_BMP + ReserveFile "${UMUI_${UNPREFIX}BOTTOMIMAGE_BMP}" + + SetOutPath "$PLUGINSDIR" + File /oname=BtmImg.bmp "${UMUI_${UNPREFIX}BOTTOMIMAGE_BMP}" + SetBrandingImage /IMGID=1305 /RESIZETOFIT "$PLUGINSDIR\BtmImg.bmp" + !endif + + !ifdef UMUI_${UNPREFIX}PAGEBGIMAGE + ReserveFile "${UMUI_${UNPREFIX}PAGEBGIMAGE_BMP}" + SetOutPath "$PLUGINSDIR" + File /oname=PageBG.bmp "${UMUI_${UNPREFIX}PAGEBGIMAGE_BMP}" + SetBrandingImage /IMGID=1303 /RESIZETOFIT "$PLUGINSDIR\PageBG.bmp" + !else + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1303 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + !endif + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1304 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + !else + + ReserveFile "${UMUI_${UNPREFIX}PAGEBGIMAGE_BMP}" + SetOutPath "$PLUGINSDIR" + File /oname=PageBG.bmp "${UMUI_${UNPREFIX}PAGEBGIMAGE_BMP}" + SetBrandingImage /IMGID=1304 /RESIZETOFIT "$PLUGINSDIR\PageBG.bmp" + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1302 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1303 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1305 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + !endif + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1018 + SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + +!else +;----------------- + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + CreateFont $MUI_TEMP2 "$(^Font)" "$(^FontSize)" "700" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 + + !ifndef MUI_HEADER_TRANSPARENT_TEXT + + SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "${MUI_BGCOLOR}" + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "${MUI_BGCOLOR}" + + !else + + SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "transparent" + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + SetCtlColors $MUI_TEMP1 "${UMUI_HEADERTEXT_COLOR}" "transparent" + + !endif + + !ifdef UMUI_HEADERBGIMAGE + + ReserveFile "${UMUI_${UNPREFIX}HEADERBGIMAGE_BMP}" + SetOutPath "$PLUGINSDIR" + File /oname=Header.bmp "${UMUI_${UNPREFIX}HEADERBGIMAGE_BMP}" + SetBrandingImage /IMGID=1034 /RESIZETOFIT "$PLUGINSDIR\Header.bmp" + + !else + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034 ; Header background + SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + + !endif + + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 ; Header image + SetCtlColors $MUI_TEMP1 "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}" + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + SetCtlColors $MUI_TEMP1 /BRANDING + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + SetCtlColors $MUI_TEMP1 /BRANDING + SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$(^Branding) " + +!endif +;---------------- + + + !ifdef UMUI_${UNPREFIX}BUTTONIMAGE_BMP | UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP + !insertmacro UMUI_RESERVEFILE_SKINNEDCONTROLS + !endif + + !ifdef UMUI_${UNPREFIX}BUTTONIMAGE_BMP + + ReserveFile "${UMUI_${UNPREFIX}BUTTONIMAGE_BMP}" + + SetOutPath "$PLUGINSDIR" + File /oname=ButtonImg.bmp "${UMUI_${UNPREFIX}BUTTONIMAGE_BMP}" + + !endif + + !ifdef UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP + + ReserveFile "${UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP}" + + SetOutPath "$PLUGINSDIR" + File /oname=ScrollBarImg.bmp "${UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP}" + + !endif + + !ifdef UMUI_${UNPREFIX}BUTTONIMAGE_BMP | UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP + + ;starting SkinnedControls plugin + !ifdef UMUI_${UNPREFIX}BUTTONIMAGE_BMP & UMUI_${UNPREFIX}SCROLLBARIMAGE_BMP + SkinnedControls::skinit \ + /disabledtextcolor=${UMUI_${UNPREFIX}DISABLED_BUTTON_TEXT_COLOR} \ + /selectedtextcolor=${UMUI_${UNPREFIX}SELECTED_BUTTON_TEXT_COLOR} \ + /textcolor=${UMUI_${UNPREFIX}BUTTON_TEXT_COLOR} \ + /button=$PLUGINSDIR\ButtonImg.bmp \ + /scrollbar=$PLUGINSDIR\ScrollBarImg.bmp + !else ifdef UMUI_${UNPREFIX}BUTTONIMAGE_BMP + SkinnedControls::skinit \ + /disabledtextcolor=${UMUI_${UNPREFIX}DISABLED_BUTTON_TEXT_COLOR} \ + /selectedtextcolor=${UMUI_${UNPREFIX}SELECTED_BUTTON_TEXT_COLOR} \ + /textcolor=${UMUI_${UNPREFIX}BUTTON_TEXT_COLOR} \ + /button=$PLUGINSDIR\ButtonImg.bmp + !else + SkinnedControls::skinit /scrollbar=$PLUGINSDIR\ScrollBarImg.bmp + !endif + + !endif + + ClearErrors + + ;get parameters in a ini file + !insertmacro UMUI_PARAMETERS_TO_INI + + !insertmacro UMUI_RESTORESHELLVARCONTEXT + +!macroend + + +!macro UMUI_DELETE_PLUGINDIR + SetOutPath $EXEDIR + Delete "$PLUGINSDIR\*.*" + RMDir /r /REBOOTOK $PLUGINSDIR + ClearErrors +!macroend + + + + +; Taken from the NSIS Documentation +!macro UMUI_GET_PARAMETERS + + !define UMUI_UNIQUEID ${__LINE__} + + Push $R0 + Push $R1 + Push $R2 + Push $R3 + + StrCpy $R2 1 + StrLen $R3 $CMDLINE + + ;Check for quote or space + StrCpy $R0 $CMDLINE $R2 ; copy the first char + StrCmp $R0 '"' 0 +3 + StrCpy $R1 '"' + Goto loop${UMUI_UNIQUEID} + StrCpy $R1 " " + + loop${UMUI_UNIQUEID}: + IntOp $R2 $R2 + 1 + StrCpy $R0 $CMDLINE 1 $R2 + StrCmp $R0 $R1 get${UMUI_UNIQUEID} ;found the " or space char + StrCmp $R2 $R3 get${UMUI_UNIQUEID} loop${UMUI_UNIQUEID} ;all the $CMDLINE string was viewed + + get${UMUI_UNIQUEID}: + IntOp $R2 $R2 + 1 + StrCpy $R0 $CMDLINE 1 $R2 + StrCmp $R0 " " get${UMUI_UNIQUEID} + StrCpy $R0 $CMDLINE "" $R2 + + Pop $R3 + Pop $R2 + Pop $R1 + Exch $R0 + + !undef UMUI_UNIQUEID + +!macroend + + +; Get all parameters in the command line and put it an ini +; /S /L=1033 /D="C:\Program Files\Foo" para4 para5 "para 6" +!macro UMUI_PARAMETERS_TO_INI + + Push $R0 ;All the parameters + Push $R1 ;param counter + Push $R2 ;char counter + Push $R3 ;parameters string len + Push $R4 ;char to compare + Push $R5 ; param name + Push $R6 ; param value + + IfFileExists "$PLUGINSDIR\Parameters.ini" end 0 + + !insertmacro UMUI_GET_PARAMETERS + Pop $R0 + + StrCpy $R1 0 + + ;for each parameters + while: + + ;If $R0 empty, goto end + StrLen $R3 $R0 + StrCpy $R2 0 + + ;trim the spaces at the begining of the string + looptrim: + StrCmp $R2 $R3 end ;all the parameters string was viewed + StrCpy $R4 $R0 1 $R2 + StrCmp $R4 " " 0 endtrim ;found the space + IntOp $R2 $R2 + 1 + Goto looptrim + endtrim: + + StrCpy $R0 $R0 "" $R2 + StrCpy $R2 0 + + ;inc num param + IntOp $R1 $R1 + 1 + + ;If the parameter begin with a "/" + StrCpy $R4 $R0 1 $R2 ;copy the first char + + StrCpy $R5 "" ; name empty + StrCpy $R6 "" ; value empty + + StrCmp $R4 "/" 0 getval + IntOp $R2 $R2 - 1 +; Goto getname + + getname: + ;whait for an = or a space + + IntOp $R2 $R2 + 1 + StrCpy $R4 $R0 1 $R2 + StrCmp $R4 "=" getval1 ;found the = + StrCmp $R4 " " save ;found the space + + StrCpy $R5 "$R5$R4" + StrCmp $R2 $R3 save getname ;all the parameters string was viewed + + getval1: + IntOp $R2 $R2 + 1 + getval: + StrCpy $R4 $R0 1 $R2 + StrCmp $R4 '"' waitquote 0 ;found a quote + + IntOp $R2 $R2 - 1 + + waitspace: + IntOp $R2 $R2 + 1 + StrCpy $R4 $R0 1 $R2 + StrCmp $R4 " " save ;found the space + StrCpy $R6 "$R6$R4" + StrCmp $R2 $R3 save waitspace ;all the parameters string was viewed + + waitquote: + IntOp $R2 $R2 + 1 + StrCpy $R4 $R0 1 $R2 + StrCmp $R4 '"' save1 ;found the quote + StrCpy $R6 "$R6$R4" + StrCmp $R2 $R3 save1 waitquote ;all the parameters string was viewed + + save1: + IntOp $R2 $R2 + 2 + save: + WriteIniStr "$PLUGINSDIR\Parameters.ini" "Setting" "Num" "$R1" + WriteIniStr "$PLUGINSDIR\Parameters.ini" "$R1" "Name" "$R5" + WriteIniStr "$PLUGINSDIR\Parameters.ini" "$R1" "Value" "$R6" + + StrCmp $R5 "" +2 0 + WriteIniStr "$PLUGINSDIR\Parameters.ini" "$R5" "Value" "$R6" + StrCpy $R0 $R0 "" $R2 + + Goto while + end: + + Pop $R6 + Pop $R5 + Pop $R4 + Pop $R3 + Pop $R2 + Pop $R1 + Pop $R0 + +!macroend + + +!macro UMUI_GETPARAMETERVALUE SWITCH DEFAULT + + Push $R0 + + ReadIniStr $R0 "$PLUGINSDIR\Parameters.ini" "${SWITCH}" "Value" + StrCmp $R0 "" 0 +3 + StrCpy $R0 "${DEFAULT}" + ClearErrors + + Exch $R0 + +!macroend + +!macro UMUI_PARAMETERISSET SWITCH + + Push $R0 + + ClearErrors + ReadIniStr $R0 "$PLUGINSDIR\Parameters.ini" "${SWITCH}" "Value" + + ; The error flag is set if error + Exch $R0 + +!macroend + +!macro UMUI_GETNUMPARAM + + Push $R0 + + ReadIniStr $R0 "$PLUGINSDIR\Parameters.ini" "Setting" "Num" + StrCmp $R0 "" 0 +3 + StrCpy $R0 0 + ClearErrors + + Exch $R0 + +!macroend + + +!macro UMUI_ADDPARAMTOSAVETOREGISTRY VALUENAME DATA + + !ifndef UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY + !error "The global parameters: UMUI_PARAMS_REGISTRY_ROOT and UMUI_PARAMS_REGISTRY_KEY are not defined." + !endif + + !define UMUI_UNIQUEID ${__LINE__} + + Push $R0 + Push $R1 + Push $R2 + + ClearErrors + ReadIniStr $R0 "$PLUGINSDIR\Registry.ini" "Settings" "number" + IfErrors 0 +3 + ClearErrors + StrCpy $R0 0 + + WriteIniStr "$PLUGINSDIR\Registry.ini" "Settings" "REGISTRY_ROOT" "${UMUI_PARAMS_REGISTRY_ROOT}" + WriteIniStr "$PLUGINSDIR\Registry.ini" "Settings" "REGISTRY_KEY" "${UMUI_PARAMS_REGISTRY_KEY}" + + StrCmp $R0 0 notfound${UMUI_UNIQUEID} 0 + + ;search if not already written in the ini file + StrCpy $R1 0 + + loop${UMUI_UNIQUEID}: + IntOp $R1 $R1 + 1 + IntCmp $R1 $R0 0 0 notfound${UMUI_UNIQUEID} + ReadIniStr $R2 "$PLUGINSDIR\Registry.ini" "$R1" "Value_Name" + StrCmp $R2 "${VALUENAME}" found${UMUI_UNIQUEID} loop${UMUI_UNIQUEID} + + notfound${UMUI_UNIQUEID}: + IntOp $R1 $R0 + 1 + + WriteIniStr "$PLUGINSDIR\Registry.ini" "Settings" "number" $R1 + WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "Value_Name" "${VALUENAME}" + WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "Data" "${DATA}" + + found${UMUI_UNIQUEID}: + WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "Data" "${DATA}" + + Pop $R2 + Pop $R1 + Pop $R0 + + !undef UMUI_UNIQUEID + +!macroend + +!macro UMUI_ADDPARAMTOSAVETOREGISTRYKEY REGISTRY_ROOT REGISTRY_KEY VALUENAME DATA + + !define UMUI_UNIQUEID ${__LINE__} + + Push $R0 + Push $R1 + Push $R2 + + ClearErrors + ReadIniStr $R0 "$PLUGINSDIR\Registry.ini" "Settings" "number" + IfErrors 0 noerror${UMUI_UNIQUEID} + ClearErrors + StrCpy $R0 0 + Goto notfound${UMUI_UNIQUEID} + noerror${UMUI_UNIQUEID}: + + ;search if not already written in the ini file + StrCpy $R1 0 + + loop${UMUI_UNIQUEID}: + IntOp $R1 $R1 + 1 + IntCmp $R1 $R0 0 0 notfound${UMUI_UNIQUEID} + ReadIniStr $R2 "$PLUGINSDIR\Registry.ini" "$R1" "Value_Name" + StrCmp $R2 "${VALUENAME}" found${UMUI_UNIQUEID} loop${UMUI_UNIQUEID} + + notfound${UMUI_UNIQUEID}: + IntOp $R1 $R0 + 1 + + WriteIniStr "$PLUGINSDIR\Registry.ini" "Settings" "number" $R1 + WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "Value_Name" "${VALUENAME}" + + found${UMUI_UNIQUEID}: + WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "Data" "${DATA}" + WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "REGISTRY_ROOT" "${REGISTRY_ROOT}" + WriteIniStr "$PLUGINSDIR\Registry.ini" "$R1" "REGISTRY_KEY" "${REGISTRY_KEY}" + + Pop $R2 + Pop $R1 + Pop $R0 + + !undef UMUI_UNIQUEID + +!macroend + + +!macro UMUI_ADDSHELLVARCONTEXTTOSAVETOREGISTRY + + !ifdef UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME + !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_SHELLVARCONTEXT_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_SHELLVARCONTEXT_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + Push $MUI_TEMP1 + Push $MUI_TEMP2 + + !insertmacro UMUI_GETSHELLVARCONTEXT + Pop $MUI_TEMP2 + + StrCmp $MUI_TEMP2 "current" 0 +3 + StrCpy $MUI_TEMP1 "current" + Goto +2 + StrCpy $MUI_TEMP1 "all" + + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_SHELLVARCONTEXT_REGISTRY_ROOT} "${UMUI_SHELLVARCONTEXT_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" $MUI_TEMP1 + + Pop $MUI_TEMP2 + Pop $MUI_TEMP1 + + !endif + +!macroend + + + +!macro UMUI_SAVEPARAMSTOREGISTRY + + !ifndef MUI_PAGE_UNINSTALLER + + IfAbort install_aborted + + Push $MUI_TEMP1 + Push $MUI_TEMP2 + Push $R0 + Push $R1 + Push $R2 + Push $R3 + + ClearErrors + ReadIniStr $R0 "$PLUGINSDIR\Registry.ini" "Settings" "number" + IfErrors end 0 + + StrCpy $R1 "0" + loop: + + IntOp $R1 $R1 + 1 + IntCmp $R1 $R0 0 0 end + + ReadIniStr $MUI_TEMP1 "$PLUGINSDIR\Registry.ini" "$R1" "REGISTRY_ROOT" + ReadIniStr $MUI_TEMP2 "$PLUGINSDIR\Registry.ini" "$R1" "REGISTRY_KEY" + + ClearErrors + StrCmp $MUI_TEMP1 "" 0 +2 + ReadIniStr $MUI_TEMP1 "$PLUGINSDIR\Registry.ini" "Settings" "REGISTRY_ROOT" + ClearErrors + StrCmp $MUI_TEMP2 "" 0 +2 + ReadIniStr $MUI_TEMP2 "$PLUGINSDIR\Registry.ini" "Settings" "REGISTRY_KEY" + + ReadIniStr $R2 "$PLUGINSDIR\Registry.ini" "$R1" "Value_Name" + ReadIniStr $R3 "$PLUGINSDIR\Registry.ini" "$R1" "Data" + StrCmp $MUI_TEMP1 HKLM 0 +3 + WriteRegStr HKLM "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKCU 0 +3 + WriteRegStr HKCU "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 SHCTX 0 +3 + WriteRegStr SHCTX "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKU 0 +3 + WriteRegStr HKU "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKCR 0 +3 + WriteRegStr HKCR "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKCC 0 +3 + WriteRegStr HKCC "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKDD 0 +3 + WriteRegStr HKDD "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKPD 0 +2 + WriteRegStr HKPD "$MUI_TEMP2" "$R2" "$R3" + Goto loop + !if ${NSIS_PACKEDVERSION} >= 0x03002000 + StrCmp $MUI_TEMP1 HKCR32 0 +2 + WriteRegStr HKCR32 "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKCR64 0 +2 + WriteRegStr HKCR64 "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKCU32 0 +2 + WriteRegStr HKCU32 "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKCU64 0 +2 + WriteRegStr HKCU64 "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKLM32 0 +2 + WriteRegStr HKLM32 "$MUI_TEMP2" "$R2" "$R3" + Goto loop + StrCmp $MUI_TEMP1 HKLM64 0 +2 + WriteRegStr HKLM64 "$MUI_TEMP2" "$R2" "$R3" + Goto loop + !endif + end: + ClearErrors + + Pop $R3 + Pop $R2 + Pop $R1 + Pop $R0 + Pop $MUI_TEMP2 + Pop $MUI_TEMP1 + + install_aborted: + + !endif + +!macroend + +!macro UMUI_RESTORESHELLVARCONTEXT + + Push $MUI_TEMP1 + Push $MUI_TEMP2 + + !ifdef UMUI_DEFAULT_SHELLVARCONTEXT + StrCpy $MUI_TEMP1 "${UMUI_DEFAULT_SHELLVARCONTEXT}" + !else + !insertmacro UMUI_GETSHELLVARCONTEXT + Pop $MUI_TEMP1 ;current value + !endif + + !ifdef UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME + !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_SHELLVARCONTEXT_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_SHELLVARCONTEXT_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + ClearErrors + ReadRegStr $MUI_TEMP2 ${UMUI_SHELLVARCONTEXT_REGISTRY_ROOT} "${UMUI_SHELLVARCONTEXT_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" + IfErrors +2 0 + StrCpy $MUI_TEMP1 $MUI_TEMP2 + !endif + + StrCmp $MUI_TEMP1 all 0 +3 + SetShellVarContext all + Goto +2 + SetShellVarContext current + + ClearErrors + + Pop $MUI_TEMP2 + Pop $MUI_TEMP1 + +!macroend + + +!macro UMUI_GETSHELLVARCONTEXT + + Push $MUI_TEMP1 + Push $MUI_TEMP2 + + StrCpy $MUI_TEMP2 "$SMPROGRAMS" + SetShellVarContext current + StrCmp $MUI_TEMP2 "$SMPROGRAMS" 0 +3 + StrCpy $MUI_TEMP1 "current" + Goto +3 + StrCpy $MUI_TEMP1 "all" + SetShellVarContext all + + Pop $MUI_TEMP2 + Exch $MUI_TEMP1 + +!macroend + + +!macro UMUI_RESTOREINSTDIR + + !ifdef UMUI_INSTALLDIR_REGISTRY_VALUENAME + !ifndef UMUI_INSTALLDIR_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_INSTALLDIR_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_INSTALLDIR_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_INSTALLDIR_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + Push $R0 + ClearErrors + ReadRegStr $R0 ${UMUI_INSTALLDIR_REGISTRY_ROOT} "${UMUI_INSTALLDIR_REGISTRY_KEY}" "${UMUI_INSTALLDIR_REGISTRY_VALUENAME}" + IfErrors +2 0 + StrCpy $INSTDIR $R0 + ClearErrors + Pop $R0 + !endif + +!macroend + + +;Based on the StrReplace v4 function of Afrow UK +;Usage: +;!insertmacro UMUI_STRREPLACE $Var "replace" "with" "in string" +!macro UMUI_STRREPLACE Var Replace With In + + !define UMUI_UNIQUEIDSTRREPLACE ${__LINE__} + + Push $R0 + Push $R3 + Push $R4 + Push $R5 + Push $R6 + Push $R7 + Push $R8 + + StrCpy $R0 "${In}" + StrCpy $R3 -1 + StrLen $R5 $R0 + StrLen $R6 "${With}" + StrLen $R7 "${Replace}" + Loop${UMUI_UNIQUEIDSTRREPLACE}: + IntOp $R3 $R3 + 1 + StrCpy $R4 $R0 $R7 $R3 + StrCmp $R3 $R5 End${UMUI_UNIQUEIDSTRREPLACE} + StrCmp $R4 "${Replace}" 0 Loop${UMUI_UNIQUEIDSTRREPLACE} + + StrCpy $R4 $R0 $R3 + IntOp $R8 $R3 + $R7 + StrCpy $R8 $R0 "" $R8 + StrCpy $R0 "$R4${With}$R8" + IntOp $R3 $R3 + $R6 + IntOp $R3 $R3 - 1 + IntOp $R5 $R5 - $R7 + IntOp $R5 $R5 + $R6 + + Goto Loop${UMUI_UNIQUEIDSTRREPLACE} + + End${UMUI_UNIQUEIDSTRREPLACE}: + + Pop $R8 + Pop $R7 + Pop $R6 + Pop $R5 + Pop $R4 + Pop $R3 + Exch $R0 #out + Pop `${Var}` + + !undef UMUI_UNIQUEIDSTRREPLACE + +!macroend + + + +;Usage: +;!insertmacro UMUI_STRCOUNT "string to count" "in string to search" +;Pop $Var ;the return number +; "string to count" and "in string to search" must not be a var betwen $R0 and $R4 +!macro UMUI_STRCOUNT COUNT IN + + !define UMUI_UNIQUEIDSTRCOUNT ${__LINE__} + + Push $R0 ; counter + Push $R1 ; the length of the string to count + Push $R2 ; the length of the string into search + Push $R3 ; char index counter + Push $R4 ; string for comparaison + + StrCpy $R0 0 + StrLen $R1 "${COUNT}" + StrLen $R2 "${IN}" + StrCpy $R3 0 + Loop${UMUI_UNIQUEIDSTRCOUNT}: + StrCpy $R4 "${IN}" $R1 $R3 + StrCmp $R3 $R2 End${UMUI_UNIQUEIDSTRCOUNT} + IntOp $R3 $R3 + 1 ; incremente counter + StrCmp $R4 "${COUNT}" 0 Loop${UMUI_UNIQUEIDSTRCOUNT} + IntOp $R0 $R0 + 1 + Goto Loop${UMUI_UNIQUEIDSTRCOUNT} + End${UMUI_UNIQUEIDSTRCOUNT}: + + Pop $R4 + Pop $R3 + Pop $R2 + Pop $R1 + Exch $R0 + + !undef UMUI_UNIQUEIDSTRCOUNT + +!macroend + + + +;Based on the VersionCompare v1.0 of Instructor +;Thanks Afrow UK (Based on his Function "VersionCheckNew2") +;Usage: +;!insertmacro UMUI_VERSIONCOMPARE VER1 VER2 +;Pop $Var ;the return 0: the same, 1: VER1 is newer, 2: VRE2 is newer +!macro UMUI_VERSIONCOMPARE VER1 VER2 + + !verbose push + !verbose ${MUI_VERBOSE} + + !define UMUI_UNIQUEIDVER ${__LINE__} + + Push $0 + Push $1 + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + Push $7 + + StrCpy $0 "${VER1}" + StrCpy $1 "${VER2}" + + begin${UMUI_UNIQUEIDVER}: + StrCpy $2 -1 + IntOp $2 $2 + 1 + StrCpy $3 $0 1 $2 + StrCmp $3 '' +2 + StrCmp $3 '.' 0 -3 + StrCpy $4 $0 $2 + IntOp $2 $2 + 1 + StrCpy $0 $0 '' $2 + + StrCpy $2 -1 + IntOp $2 $2 + 1 + StrCpy $3 $1 1 $2 + StrCmp $3 '' +2 + StrCmp $3 '.' 0 -3 + StrCpy $5 $1 $2 + IntOp $2 $2 + 1 + StrCpy $1 $1 '' $2 + + StrCmp $4$5 '' equal${UMUI_UNIQUEIDVER} + + StrCpy $6 -1 + IntOp $6 $6 + 1 + StrCpy $3 $4 1 $6 + StrCmp $3 '0' -2 + StrCmp $3 '' 0 +2 + StrCpy $4 0 + + StrCpy $7 -1 + IntOp $7 $7 + 1 + StrCpy $3 $5 1 $7 + StrCmp $3 '0' -2 + StrCmp $3 '' 0 +2 + StrCpy $5 0 + + StrCmp $4 0 0 +2 + StrCmp $5 0 begin${UMUI_UNIQUEIDVER} newer2${UMUI_UNIQUEIDVER} + StrCmp $5 0 newer1${UMUI_UNIQUEIDVER} + IntCmp $6 $7 0 newer1${UMUI_UNIQUEIDVER} newer2${UMUI_UNIQUEIDVER} + + StrCpy $4 '1$4' + StrCpy $5 '1$5' + IntCmp $4 $5 begin${UMUI_UNIQUEIDVER} newer2${UMUI_UNIQUEIDVER} newer1${UMUI_UNIQUEIDVER} + + equal${UMUI_UNIQUEIDVER}: + StrCpy $0 0 + Goto end${UMUI_UNIQUEIDVER} + newer1${UMUI_UNIQUEIDVER}: + StrCpy $0 1 + Goto end${UMUI_UNIQUEIDVER} + newer2${UMUI_UNIQUEIDVER}: + StrCpy $0 2 + + end${UMUI_UNIQUEIDVER}: + + Pop $7 + Pop $6 + Pop $5 + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Exch $0 + + !undef UMUI_UNIQUEIDVER + + !verbose pop + +!macroend + + +;Based on the VersionConvert v1.0 of Instructor +;Thanks Afrow UK (Based on his Function "CharIndexReplace") +;Usage: +;!insertmacro UMUI_VERSIONCONVERT VER +;Pop $Var ;get the coverted version +!macro UMUI_VERSIONCONVERT VER + + !verbose push + !verbose ${MUI_VERBOSE} + + !define UMUI_UNIQUEIDVER ${__LINE__} + + Push $0 ; Converted string + Push $1 ; Input version + Push $2 ; CharactersList + Push $3 ; Input String Indices + Push $4 ; Char extracted from input + Push $5 ; LastCharType + Push $6 + Push $7 + + StrCpy $0 "" + + StrCpy $1 "${VER}" + + StrCpy $2 "abcdefghijklmnopqrstuvwxyz#" + + IntOp $3 0 - 1 + + StrCpy $5 "dot" + + loop${UMUI_UNIQUEIDVER}: + IntOp $3 $3 + 1 + + StrCpy $4 $1 1 $3 + StrCmp $4 '' endcheck${UMUI_UNIQUEIDVER} + StrCmp $4 '.' dot${UMUI_UNIQUEIDVER} + StrCmp $4 '-' dot${UMUI_UNIQUEIDVER} + StrCmp $4 '_' dot${UMUI_UNIQUEIDVER} + StrCmp $4 ' ' dot${UMUI_UNIQUEIDVER} + StrCmp $4 '0' digit${UMUI_UNIQUEIDVER} + IntCmp $4 '0' letter${UMUI_UNIQUEIDVER} letter${UMUI_UNIQUEIDVER} digit${UMUI_UNIQUEIDVER} + + dot${UMUI_UNIQUEIDVER}: + StrCmp $5 "dot" loop${UMUI_UNIQUEIDVER} 0 + StrCpy $0 "$0." + StrCpy $5 "dot" + Goto loop${UMUI_UNIQUEIDVER} + + digit${UMUI_UNIQUEIDVER}: + StrCpy $0 "$0$4" + StrCpy $5 "digit" + Goto loop${UMUI_UNIQUEIDVER} + + letter${UMUI_UNIQUEIDVER}: + StrCmp $5 "digit" 0 +2 + StrCpy $0 "$0." + + StrCpy $5 "letter" + + IntOp $6 0 - 1 + + letterloop${UMUI_UNIQUEIDVER}: + IntOp $6 $6 + 1 + StrCpy $7 $2 1 $6 + StrCmp $7 '#' 0 +3 + StrCpy $0 "$099" + Goto loop${UMUI_UNIQUEIDVER} + + StrCmp $4 $7 0 letterloop${UMUI_UNIQUEIDVER} + IntCmp $6 9 0 0 +2 + StrCpy $0 "$00" + + StrCpy $0 "$0$6" + + Goto loop${UMUI_UNIQUEIDVER} + + endcheck${UMUI_UNIQUEIDVER}: + StrCpy $7 $0 1 -1 + StrCmp $7 '.' 0 end${UMUI_UNIQUEIDVER} + StrLen $6 $0 + IntOp $6 $6 - 1 + StrCpy $0 $0 $6 + Goto endcheck${UMUI_UNIQUEIDVER} + + end${UMUI_UNIQUEIDVER}: + + Pop $7 + Pop $6 + Pop $5 + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Exch $0 + + !undef UMUI_UNIQUEIDVER + + !verbose pop + +!macroend + + + +!macro UMUI_GETPARENTFOLDER FULPATH + + !verbose push + !verbose ${MUI_VERBOSE} + + Push $0 + Push $1 + + StrCpy $0 "${FULPATH}" + + StrCpy $1 $0 1 -1 + StrCmp $1 '\' +3 + StrCpy $0 $0 -1 + Goto -3 + + StrCpy $1 $0 1 -1 + + Pop $1 + Exch $0 + + !verbose pop + +!macroend + + +!macro UMUI_WELCOMEFINISHABORTPAGE_INIT UNINSTALLER + + !ifdef MUI_${UNINSTALLER}WELCOMEPAGE | MUI_${UNINSTALLER}FINISHPAGE | UMUI_${UNINSTALLER}ABORTPAGE | UMUI_${UNINSTALLER}MULTILANGUAGEPAGE + + !ifdef UMUI_USE_${UNINSTALLER}ALTERNATE_PAGE + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_${UNINSTALLER}ALTERNATEWELCOMEFINISHABORTPAGE_INI}" "ioSpecial.ini" + !else + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_${UNINSTALLER}WELCOMEFINISHABORTPAGE_INI}" "ioSpecial.ini" + !endif + + !ifdef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE + File "/oname=$PLUGINSDIR\modern-wizard.bmp" "${MUI_${UNINSTALLER}WELCOMEFINISHPAGE_BITMAP}" + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Text" "$PLUGINSDIR\modern-wizard.bmp" + + !ifdef MUI_${UNINSTALLER}WELCOMEFINISHPAGE_BITMAP_NOSTRETCH + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Flags" "" + !endif + + !endif + + !endif + +!macroend + +!macro MUI_HEADERIMAGE_INIT UNINSTALLER + + !ifdef MUI_HEADERIMAGE + + InitPluginsDir + + !ifdef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL + + StrCmp $(^RTL) 0 mui.headerimageinit_nortl + + File "/oname=$PLUGINSDIR\modern-header.bmp" "${MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL}" + + !ifndef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL_NOSTRETCH + SetBrandingImage /IMGID=1046 /RESIZETOFIT "$PLUGINSDIR\modern-header.bmp" + !else + SetBrandingImage /IMGID=1046 "$PLUGINSDIR\modern-header.bmp" + !endif + + Goto mui.headerimageinit_done + + mui.headerimageinit_nortl: + + !endif + + File "/oname=$PLUGINSDIR\modern-header.bmp" "${MUI_HEADERIMAGE_${UNINSTALLER}BITMAP}" + + !ifndef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_NOSTRETCH + SetBrandingImage /IMGID=1046 /RESIZETOFIT "$PLUGINSDIR\modern-header.bmp" + !else + SetBrandingImage /IMGID=1046 "$PLUGINSDIR\modern-header.bmp" + !endif + + !ifdef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL + + mui.headerimageinit_done: + + !endif + + !endif + +!macroend + +;-------------------------------- +;INTERFACE - FUNCTIONS + + +!macro UMUI_VERSION_SET + + !ifdef UMUI_VERBUILD_REGISTRY_VALUENAME + !ifndef UMUI_VERBUILD + !warning "UMUI_VERBUILD need to be defined with UMUI_VERBUILD_REGISTRY_VALUENAME. Ignored" + !undef UMUI_VERBUILD_REGISTRY_VALUENAME + !endif + !endif + !ifdef UMUI_VERSION_REGISTRY_VALUENAME + !ifndef UMUI_VERSION + !warning "UMUI_VERSION need to be defined with UMUI_VERSION_REGISTRY_VALUENAME. Ignored" + !undef UMUI_VERSION_REGISTRY_VALUENAME + !endif + !endif + + + !ifdef UMUI_VERBUILD_REGISTRY_VALUENAME + + !ifndef UMUI_VERBUILD_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_VERBUILD_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_VERBUILD_REGISTRY_VALUENAME, the UMUI_VERBUILD_REGISTRY_ROOT & UMUI_VERBUILD_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_VERBUILD_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_VERBUILD_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_VERBUILD_REGISTRY_VALUENAME, the UMUI_VERBUILD_REGISTRY_ROOT & UMUI_VERBUILD_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + ReadRegStr $MUI_TEMP1 ${UMUI_VERBUILD_REGISTRY_ROOT} "${UMUI_VERBUILD_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" + + StrCmp $MUI_TEMP1 "" endv 0 + + ClearErrors + + StrCmp $MUI_TEMP1 "${UMUI_VERBUILD}" 0 diff + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_SAMEVERSION} + !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_DIFFVERSION} + Goto endv + diff: + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_DIFFVERSION} + !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_SAMEVERSION} + + endv: + ClearErrors + + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_VERBUILD_REGISTRY_ROOT} "${UMUI_VERBUILD_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" "${UMUI_VERBUILD}" + + !endif + + !ifdef UMUI_VERSION_REGISTRY_VALUENAME & UMUI_VERSION + + !ifndef UMUI_VERSION_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_VERSION_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_VERSION_REGISTRY_VALUENAME, the UMUI_VERSION_REGISTRY_ROOT & UMUI_VERSION_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_VERSION_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_VERSION_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_VERSION_REGISTRY_VALUENAME, the UMUI_VERSION_REGISTRY_ROOT & UMUI_VERSION_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_VERSION_REGISTRY_ROOT} "${UMUI_VERSION_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" "${UMUI_VERSION}" + !endif + +!macroend + + + +!macro UMUI_PATH_SAVE + + !ifdef UMUI_UNINSTALLPATH_REGISTRY_VALUENAME + !ifndef UMUI_UNINSTALL_FULLPATH + !warning "UMUI_UNINSTALL_FULLPATH need to be defined with UMUI_UNINSTALLPATH_REGISTRY_VALUENAME. Ignored" + !undef UMUI_UNINSTALLPATH_REGISTRY_VALUENAME + !endif + + !ifndef UMUI_UNINSTALLPATH_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_UNINSTALLPATH_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_UNINSTALLPATH_REGISTRY_VALUENAME, the UMUI_UNINSTALLPATH_REGISTRY_ROOT & UMUI_UNINSTALLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_UNINSTALLPATH_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_UNINSTALLPATH_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_UNINSTALLPATH_REGISTRY_VALUENAME, the UMUI_UNINSTALLPATH_REGISTRY_ROOT & UMUI_UNINSTALLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + !ifndef UMUI_INSTALLERFULLPATH_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_INSTALLERFULLPATH_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME, the UMUI_INSTALLERFULLPATH_REGISTRY_ROOT & UMUI_INSTALLERFULLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_INSTALLERFULLPATH_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_INSTALLERFULLPATH_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME, the UMUI_INSTALLERFULLPATH_REGISTRY_ROOT & UMUI_INSTALLERFULLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + !endif + + !ifdef UMUI_UNINSTALLPATH_REGISTRY_VALUENAME & UMUI_UNINSTALL_FULLPATH + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_UNINSTALLPATH_REGISTRY_ROOT} "${UMUI_UNINSTALLPATH_REGISTRY_KEY}" "${UMUI_UNINSTALLPATH_REGISTRY_VALUENAME}" "${UMUI_UNINSTALL_FULLPATH}" + !endif + + !ifdef UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME + !ifdef UMUI_INSTALL_FULLPATH + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_INSTALLERFULLPATH_REGISTRY_ROOT} "${UMUI_INSTALLERFULLPATH_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" "${UMUI_INSTALL_FULLPATH}" + !else + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_INSTALLERFULLPATH_REGISTRY_ROOT} "${UMUI_INSTALLERFULLPATH_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" $EXEPATH + !endif + !endif + +!macroend + + + +!macro UMUI_MAINTENANCE_PARAMETERS_GET + + ClearErrors + !insertmacro UMUI_PARAMETERISSET "/remove" + Pop $MUI_TEMP1 + IfErrors noremove 0 + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_REMOVE} + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_ABORTFIRSTTIME} + !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} + Goto endsearch + + noremove: + !insertmacro UMUI_PARAMETERISSET "/modify" + Pop $MUI_TEMP1 + IfErrors nomodify 0 + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_MODIFY} + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_ABORTFIRSTTIME} + !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} + Goto endsearch + + nomodify: + !insertmacro UMUI_PARAMETERISSET "/repair" + Pop $MUI_TEMP1 + IfErrors norepair 0 + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_REPAIR} + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_ABORTFIRSTTIME} + !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} + Goto endsearch + + norepair: + !insertmacro UMUI_PARAMETERISSET "/continue" + Pop $MUI_TEMP1 + IfErrors endsearch 0 + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_CONTINUE_SETUP} + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_ABORTFIRSTTIME} + !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} + + endsearch: + ClearErrors + +!macroend + + +!macro MUI_FUNCTION_GUIINIT + + Function .onGUIInit + + !insertmacro MUI_GUIINIT + + !ifdef MUI_CUSTOMFUNCTION_GUIINIT + Call "${MUI_CUSTOMFUNCTION_GUIINIT}" + !endif + + !ifdef UMUI_BGSKIN | UMUI_USE_CUSTOMBG + !insertmacro UMUI_BG + !endif + + ;Only if not already set in the .onInit function + StrCmp $UMUI_INSTALLFLAG "" 0 +2 + StrCpy $UMUI_INSTALLFLAG 0 + + !insertmacro UMUI_VERSION_SET + + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} + + !insertmacro UMUI_MAINTENANCE_PARAMETERS_GET + + FunctionEnd + +!ifdef UMUI_CUSTOMFUNCTION_GUIEND | UMUI_BGSKIN | UMUI_USE_CUSTOMBG + + Function .onGUIEnd + + !ifdef UMUI_CUSTOMFUNCTION_GUIEND + Call "${UMUI_CUSTOMFUNCTION_GUIEND}" + !endif + + !ifdef UMUI_BGSKIN | UMUI_USE_CUSTOMBG + !insertmacro UMUI_BG_Destroy + !endif + + !insertmacro UMUI_DELETE_PLUGINDIR + + FunctionEnd + +!endif + +!macroend + +!macro MUI_FUNCTION_DESCRIPTION_BEGIN + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifndef MUI_VAR_TEXT + Var MUI_TEXT + !define MUI_VAR_TEXT + !endif + +; !define /redef MUI_PAGE_UNINSTALLER_PREFIX "" + Function .onMouseOverSection + !insertmacro MUI_DESCRIPTION_BEGIN + + !verbose pop + +!macroend + +!macro MUI_FUNCTION_DESCRIPTION_END + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_DESCRIPTION_END + !ifdef MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION + Call "${MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION}" + !endif + FunctionEnd +; !undef MUI_PAGE_UNINSTALLER_PREFIX + + !verbose pop + +!macroend + +!macro MUI_UNFUNCTION_DESCRIPTION_BEGIN + + !verbose push + !verbose ${MUI_VERBOSE} + +; !define /redef MUI_PAGE_UNINSTALLER_PREFIX "UN" + Function un.onMouseOverSection + !insertmacro MUI_DESCRIPTION_BEGIN + + !verbose pop + +!macroend + +!macro MUI_UNFUNCTION_DESCRIPTION_END + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_DESCRIPTION_END + !ifdef MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION + Call "${MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION}" + !endif + FunctionEnd +; !undef MUI_PAGE_UNINSTALLER_PREFIX + + !verbose pop + +!macroend + +!macro MUI_FUNCTION_ABORTWARNING + + Function .onUserAbort + !ifdef MUI_ABORTWARNING + !insertmacro MUI_ABORTWARNING + !endif + + !ifdef MUI_CUSTOMFUNCTION_ABORT + Call "${MUI_CUSTOMFUNCTION_ABORT}" + !endif + + !ifdef UMUI_ABORTPAGE + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_CANCELLED} + !ifdef UMUI_USE_INSTALLOPTIONSEX + !insertmacro UMUI_INSTALLOPTIONSEX_SKIPVALIDATION + !endif + SendMessage $HWNDPARENT "0x408" "1" "" + Abort + !else + !insertmacro UMUI_DELETE_PLUGINDIR + !endif + FunctionEnd + +!macroend + +!macro MUI_FUNCTION_UNABORTWARNING + + Function un.onUserAbort + !ifdef MUI_UNABORTWARNING + !insertmacro MUI_UNABORTWARNING + !endif + + !ifdef MUI_CUSTOMFUNCTION_UNABORT + Call "${MUI_CUSTOMFUNCTION_UNABORT}" + !endif + + !ifdef UMUI_UNABORTPAGE + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_CANCELLED} + !ifdef UMUI_USE_INSTALLOPTIONSEX + !insertmacro UMUI_INSTALLOPTIONSEX_SKIPVALIDATION + !endif + SendMessage $HWNDPARENT "0x408" "1" "" + Abort + !else + !insertmacro UMUI_DELETE_PLUGINDIR + !endif + FunctionEnd + +!macroend + +!macro MUI_UNFUNCTION_GUIINIT + + Function un.onGUIInit + + !insertmacro MUI_UNGUIINIT + + !ifdef MUI_CUSTOMFUNCTION_UNGUIINIT + Call "${MUI_CUSTOMFUNCTION_UNGUIINIT}" + !endif + + !ifdef UMUI_BGSKIN | UMUI_USE_CUSTOMBG + !insertmacro UMUI_BG + !endif + + ;Only if not already set in the un.onInit function + StrCmp $UMUI_INSTALLFLAG "" 0 +2 + StrCpy $UMUI_INSTALLFLAG 0 + + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_SAMEVERSION} + !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_DIFFVERSION} + !insertmacro UMUI_MAINTENANCE_PARAMETERS_GET + + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} + + FunctionEnd + + + !ifdef UMUI_CUSTOMFUNCTION_UNGUIEND | UMUI_BGSKIN | UMUI_USE_CUSTOMBG + + Function un.onGUIEnd + + !ifdef UMUI_CUSTOMFUNCTION_UNGUIEND + Call "${UMUI_CUSTOMFUNCTION_UNGUIEND}" + !endif + + !ifdef UMUI_BGSKIN | UMUI_USE_CUSTOMBG + !insertmacro UMUI_BG_Destroy + !endif + + !insertmacro UMUI_DELETE_PLUGINDIR + + FunctionEnd + + !endif + +!macroend + + +!macro UMUI_UNPAGE_LEFTMESSAGEBOX A B C + + !insertmacro UMUI_PAGE_LEFTMESSAGEBOX "${A}" "${B}" "${C}" + +!macroend + +!macro UMUI_PAGE_LEFTMESSAGEBOX A B C + + !warning "The UMUI_PAGE_LEFTMESSAGEBOX and UMUI_UNPAGE_LEFTMESSAGEBOX macros were removed since Ultra-Modern UI 1.00 beta 2." + !insertmacro MUI_UNSET UMUI_LEFTMESSAGEBOX_VAR + !insertmacro MUI_UNSET UMUI_LEFTMESSAGEBOX_LEFTFUNC + +!macroend + +!macro UMUI_LEFT_TEXTE A B + + !warning "The UMUI_LEFT_TEXTE macro was removed since Ultra-Modern UI 1.00 beta 2." + +!macroend + +!macro UMUI_LEFT_SETTIME A + + !warning "The UMUI_LEFT_SETTIME macro was removed since Ultra-Modern UI 1.00 beta 2." + +!macroend + +; Workaround for unkinning button after MessageBox validated +!macro UMUI_FIX_BUTTONS_SKIN + + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}BUTTONIMAGE_BMP + SendMessage $HWNDPARENT ${WM_MENUDRAG} 0 0 ; Do this to force reskin + !endif + +!macroend + +;-------------------------------- +;START MENU FOLDER + +!macro MUI_STARTMENU_GETFOLDER ID VAR + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifdef MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME + + ReadRegStr $MUI_TEMP1 "${MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME}" + + StrCmp $MUI_TEMP1 "" +3 + StrCpy "${VAR}" $MUI_TEMP1 + Goto +2 + + StrCpy "${VAR}" "${MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER}" + + !else + + StrCpy "${VAR}" "${MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER}" + + !endif + + !verbose pop + +!macroend + +!macro MUI_STARTMENU_WRITE_BEGIN ID + + !verbose push + !verbose ${MUI_VERBOSE} + + !define MUI_STARTMENUPAGE_CURRENT_ID "${ID}" + + StrCpy $MUI_TEMP1 "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" 1 + StrCmp $MUI_TEMP1 ">" mui.startmenu_write_${MUI_STARTMENUPAGE_CURRENT_ID}_done + + StrCmp "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" "" 0 mui.startmenu_writebegin_${MUI_STARTMENUPAGE_CURRENT_ID}_notempty + + !insertmacro MUI_STARTMENU_GETFOLDER "${MUI_STARTMENUPAGE_CURRENT_ID}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" + + mui.startmenu_writebegin_${MUI_STARTMENUPAGE_CURRENT_ID}_notempty: + + !verbose pop + +!macroend + +!macro MUI_STARTMENU_WRITE_END + + !verbose push + !verbose ${MUI_VERBOSE} + + mui.startmenu_write_${MUI_STARTMENUPAGE_CURRENT_ID}_done: + + !undef MUI_STARTMENUPAGE_CURRENT_ID + + !verbose pop + +!macroend + +;-------------------------------- +;PAGES + +!macro MUI_PAGE_INIT + + !insertmacro MUI_INTERFACE + + !define /IfNDef MUI_PAGE_UNINSTALLER_PREFIX "" + !define /IfNDef MUI_PAGE_UNINSTALLER_FUNCPREFIX "" + + !insertmacro MUI_UNSET MUI_UNIQUEID + + !define MUI_UNIQUEID ${__LINE__} + +!macroend + +!macro MUI_UNPAGE_INIT + + !define /IfNDef MUI_UNINSTALLER + + !define MUI_PAGE_UNINSTALLER + + !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER_PREFIX + !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER_FUNCPREFIX + + !define MUI_PAGE_UNINSTALLER_PREFIX "UN" + !define MUI_PAGE_UNINSTALLER_FUNCPREFIX "un." + +!macroend + +!macro MUI_UNPAGE_END + + !undef MUI_PAGE_UNINSTALLER + !undef MUI_PAGE_UNINSTALLER_PREFIX + !undef MUI_PAGE_UNINSTALLER_FUNCPREFIX + +!macroend + +!macro MUI_PAGE_WELCOME + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT MUI_WELCOMEPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TITLE)" + + !ifdef MUI_PAGE_UNINSTALLER + !insertmacro MUI_DEFAULT_IOCONVERT MUI_WELCOMEPAGE_TEXT "$(MUI_UNTEXT_WELCOME_INFO_TEXT)" + !else + !ifdef UMUI_WELCOMEPAGE_ALTERNATIVETEXT + !insertmacro MUI_DEFAULT_IOCONVERT MUI_WELCOMEPAGE_TEXT "$(UMUI_TEXT_WELCOME_ALTERNATIVEINFO_TEXT)" + !else + !insertmacro MUI_DEFAULT_IOCONVERT MUI_WELCOMEPAGE_TEXT "$(MUI_TEXT_WELCOME_INFO_TEXT)" + !endif + !endif + + !ifndef MUI_VAR_HWND + Var MUI_HWND + !define MUI_VAR_HWND + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID} + + PageExEnd + + !insertmacro MUI_FUNCTION_WELCOMEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE + !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE_3LINES + !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TEXT + !insertmacro MUI_UNSET UMUI_WELCOMEPAGE_ALTERNATIVETEXT + + !verbose pop + +!macroend + +!macro MUI_PAGE_LICENSE LICENSEDATA + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}LICENSEPAGE + + !define /IfNDef MUI_LICENSEPAGE_TEXT_TOP "$(MUI_INNERTEXT_LICENSE_TOP)" + !define /IfNDef MUI_LICENSEPAGE_BUTTON "" + !define /IfNDef MUI_LICENSEPAGE_CHECKBOX_TEXT "" + !define /IfNDef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT "" + !define /IfNDef MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE "" + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}license + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicensePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseLeave_${MUI_UNIQUEID} + + Caption " " + + LicenseData "${LICENSEDATA}" + + !ifndef MUI_LICENSEPAGE_TEXT_BOTTOM + !ifndef MUI_LICENSEPAGE_CHECKBOX & MUI_LICENSEPAGE_RADIOBUTTONS + LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM)" "${MUI_LICENSEPAGE_BUTTON}" + !else ifdef MUI_LICENSEPAGE_CHECKBOX + LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM_CHECKBOX)" "${MUI_LICENSEPAGE_BUTTON}" + !else + LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS)" "${MUI_LICENSEPAGE_BUTTON}" + !endif + !else + LicenseText "${MUI_LICENSEPAGE_TEXT_BOTTOM}" "${MUI_LICENSEPAGE_BUTTON}" + !endif + + !ifdef MUI_LICENSEPAGE_CHECKBOX + LicenseForceSelection checkbox "${MUI_LICENSEPAGE_CHECKBOX_TEXT}" + !else ifdef MUI_LICENSEPAGE_RADIOBUTTONS + LicenseForceSelection radiobuttons "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT}" "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE}" + !endif + + PageExEnd + + !insertmacro MUI_FUNCTION_LICENSEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicensePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET MUI_LICENSEPAGE_TEXT_TOP + !insertmacro MUI_UNSET MUI_LICENSEPAGE_TEXT_BOTTOM + !insertmacro MUI_UNSET MUI_LICENSEPAGE_BUTTON + !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX + !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT + !insertmacro MUI_UNSET MUI_LICENSEPAGE_RADIOBUTTONS + !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT_ACCEPT + !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT_DECLINE + + !verbose pop + +!macroend + +!macro MUI_PAGE_COMPONENTS + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}COMPONENTSPAGE + + !define /IfNDef MUI_COMPONENTSPAGE_TEXT_TOP "" + !define /IfNDef MUI_COMPONENTSPAGE_TEXT_COMPLIST "" + !define /IfNDef MUI_COMPONENTSPAGE_TEXT_INSTTYPE "" + !define /IfNDef MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE)" + !define /IfNDef MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO)" + + !ifndef MUI_VAR_TEXT + Var MUI_TEXT + !define MUI_VAR_TEXT + !endif + + !ifdef UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME | UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME + !ifndef UMUI_VAR_UMUI_TEMP3 + Var UMUI_TEMP3 + !define UMUI_VAR_UMUI_TEMP3 + !endif + !endif + + !ifdef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME + !ifndef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME, the UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT & UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME, the UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT & UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !endif + + !ifdef UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME + !ifndef UMUI_COMPONENTSPAGE_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_COMPONENTSPAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME, the UMUI_COMPONENTSPAGE_REGISTRY_ROOT & UMUI_COMPONENTSPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_COMPONENTSPAGE_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_COMPONENTSPAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME, the UMUI_COMPONENTSPAGE_REGISTRY_ROOT & UMUI_COMPONENTSPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !endif + + !ifndef MUI_UNINSTALLER + !ifdef UMUI_MAINTENANCEPAGE + !ifndef UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME + !warning "With the maintenance page, you need to set the UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME define with a clean install function." + !endif + !endif + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}components + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsLeave_${MUI_UNIQUEID} + + Caption " " + + ComponentText "${MUI_COMPONENTSPAGE_TEXT_TOP}" "${MUI_COMPONENTSPAGE_TEXT_INSTTYPE}" "${MUI_COMPONENTSPAGE_TEXT_COMPLIST}" + + PageExEnd + + !insertmacro MUI_FUNCTION_COMPONENTSPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsLeave_${MUI_UNIQUEID} + + !undef MUI_COMPONENTSPAGE_TEXT_TOP + !undef MUI_COMPONENTSPAGE_TEXT_COMPLIST + !undef MUI_COMPONENTSPAGE_TEXT_INSTTYPE + !insertmacro MUI_UNSET MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE + !insertmacro MUI_UNSET MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO + + !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_REGISTRY_ROOT + !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_REGISTRY_KEY + !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME + !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT + !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY + !insertmacro MUI_UNSET UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME + + !verbose pop + +!macroend + +!macro MUI_PAGE_DIRECTORY + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}DIRECTORYPAGE + + !define /IfNDef MUI_DIRECTORYPAGE_TEXT_TOP "" + !define /IfNDef MUI_DIRECTORYPAGE_TEXT_DESTINATION "" + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}directory + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryLeave_${MUI_UNIQUEID} + + Caption " " + + DirText "${MUI_DIRECTORYPAGE_TEXT_TOP}" "${MUI_DIRECTORYPAGE_TEXT_DESTINATION}" + + !ifdef MUI_DIRECTORYPAGE_VARIABLE + DirVar "${MUI_DIRECTORYPAGE_VARIABLE}" + !endif + + !ifdef MUI_DIRECTORYPAGE_VERIFYONLEAVE + DirVerify leave + !endif + + PageExEnd + + !insertmacro MUI_FUNCTION_DIRECTORYPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryLeave_${MUI_UNIQUEID} + + !undef MUI_DIRECTORYPAGE_TEXT_TOP + !undef MUI_DIRECTORYPAGE_TEXT_DESTINATION + !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_BGCOLOR + !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_VARIABLE + !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_VERIFYONLEAVE + + !verbose pop + +!macroend + +!macro MUI_PAGE_STARTMENU ID VAR + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}STARTMENUPAGE + + !define /IfNDef MUI_STARTMENUPAGE_DEFAULTFOLDER "$(^Name)" + !define /IfNDef MUI_STARTMENUPAGE_TEXT_TOP "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_TOP)" + !define /IfNDef MUI_STARTMENUPAGE_TEXT_CHECKBOX "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_CHECKBOX)" + + !define MUI_STARTMENUPAGE_VARIABLE "${VAR}" + !define "MUI_STARTMENUPAGE_${ID}_VARIABLE" "${MUI_STARTMENUPAGE_VARIABLE}" + !define "MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" + + !ifndef MUI_STARTMENUPAGE_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For MUI_STARTMENUPAGE_REGISTRY_VALUENAME, the MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef MUI_STARTMENUPAGE_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define MUI_STARTMENUPAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For MUI_STARTMENUPAGE_REGISTRY_VALUENAME, the MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT" "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" + + !endif + + !ifdef UMUI_UNIQUEBGIMAGE | UMUI_PAGEBGIMAGE + !warning "The MUI_STARTMENU page does not work with the UMUI_UNIQUEBGIMAGE and UMUI_PAGEBGIMAGE defines. Use the UMUI_ALTERNATIVESTARTMENU page instead." + !endif + + !ifndef MUI_VAR_HWND + Var MUI_HWND + !define MUI_VAR_HWND + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro MUI_FUNCTION_STARTMENUPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuLeave_${MUI_UNIQUEID} + + !undef MUI_STARTMENUPAGE_VARIABLE + !undef MUI_STARTMENUPAGE_TEXT_TOP + !undef MUI_STARTMENUPAGE_TEXT_CHECKBOX + !undef MUI_STARTMENUPAGE_DEFAULTFOLDER + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_NODISABLE + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_ROOT + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_KEY + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_VALUENAME + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_BGCOLOR + + !verbose pop + +!macroend + +!macro MUI_PAGE_INSTFILES + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INSTFILESPAGE + + !ifdef UMUI_INSTALLDIR_REGISTRY_VALUENAME + !ifndef UMUI_INSTALLDIR_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_INSTALLDIR_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_INSTALLDIR_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_INSTALLDIR_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_INSTALLDIR_REGISTRY_VALUENAME, the UMUI_INSTALLDIR_REGISTRY_ROOT & UMUI_INSTALLDIR_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}instfiles + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro MUI_FUNCTION_INSTFILESPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET MUI_INSTFILESPAGE_FINISHHEADER_TEXT + !insertmacro MUI_UNSET MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT + !insertmacro MUI_UNSET MUI_INSTFILESPAGE_ABORTWARNING_TEXT + !insertmacro MUI_UNSET MUI_INSTFILESPAGE_ABORTWARNING_SUBTEXT + + !verbose pop + +!macroend + +!macro MUI_PAGE_FINISH + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_BUTTON "$(MUI_BUTTONTEXT_FINISH)" + !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT_REBOOT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_REBOOT)" + !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT_REBOOTNOW "$(MUI_TEXT_FINISH_REBOOTNOW)" + !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT_REBOOTLATER "$(MUI_TEXT_FINISH_REBOOTLATER)" + !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_RUN_TEXT "$(MUI_TEXT_FINISH_RUN)" + !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_SHOWREADME_TEXT "$(MUI_TEXT_FINISH_SHOWREADME)" + + !define /IfNDef MUI_FINISHPAGE_LINK_COLOR "${UMUI_TEXT_LIGHTCOLOR}" + + !ifndef MUI_VAR_HWND + Var MUI_HWND + !define MUI_VAR_HWND + !endif + + !ifndef MUI_PAGE_UNINSTALLER + !ifndef MUI_FINISHPAGE_NOAUTOCLOSE + AutoCloseWindow true + !endif + !endif + + !ifdef MUI_FINISHPAGE_CANCEL_ENABLED + !ifndef MUI_VAR_NOABORTWARNING + !define MUI_VAR_NOABORTWARNING + Var MUI_NOABORTWARNING + !endif + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro MUI_FUNCTION_FINISHPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE + !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE_3LINES + !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT + !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_LARGE + !insertmacro MUI_UNSET MUI_FINISHPAGE_BUTTON + !insertmacro MUI_UNSET MUI_FINISHPAGE_CANCEL_ENABLED + !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOT + !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOTNOW + !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOTLATER + !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTLATER_DEFAULT + !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN + !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_TEXT + !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_PARAMETERS + !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_NOTCHECKED + !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_FUNCTION + !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME + !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_TEXT + !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_NOTCHECKED + !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_FUNCTION + !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK + !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_LOCATION + !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_COLOR + !insertmacro MUI_UNSET MUI_FINISHPAGE_NOREBOOTSUPPORT + + !insertmacro MUI_UNSET MUI_FINISHPAGE_CURFIELD_TOP + !insertmacro MUI_UNSET MUI_FINISHPAGE_CURFIELD_BOTTOM + + !verbose pop + +!macroend + +!macro MUI_UNPAGE_WELCOME + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro MUI_PAGE_WELCOME + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + +!macro MUI_UNPAGE_CONFIRM + + !verbose push + !verbose ${MUI_VERBOSE} + + !define /IfNDef MUI_UNINSTALLER + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef MUI_UNCONFIRMPAGE + + !define /IfNDef MUI_UNCONFIRMPAGE_TEXT_TOP "" + !define /IfNDef MUI_UNCONFIRMPAGE_TEXT_LOCATION "" + + PageEx un.uninstConfirm + + PageCallbacks un.mui.ConfirmPre_${MUI_UNIQUEID} un.mui.ConfirmShow_${MUI_UNIQUEID} un.mui.ConfirmLeave_${MUI_UNIQUEID} + + Caption " " + + UninstallText "${MUI_UNCONFIRMPAGE_TEXT_TOP}" "${MUI_UNCONFIRMPAGE_TEXT_LOCATION}" + + !ifdef MUI_UNCONFIRMPAGE_VARIABLE + DirVar "${MUI_UNCONFIRMPAGE_VARIABLE}" + !endif + + PageExEnd + + !insertmacro MUI_UNFUNCTION_CONFIRMPAGE un.mui.ConfirmPre_${MUI_UNIQUEID} un.mui.ConfirmShow_${MUI_UNIQUEID} un.mui.ConfirmLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET MUI_UNCONFIRMPAGE_TEXT_TOP + !insertmacro MUI_UNSET MUI_UNCONFIRMPAGE_TEXT_LOCATION + + !verbose pop + +!macroend + +!macro MUI_UNPAGE_LICENSE LICENSEDATA + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro MUI_PAGE_LICENSE "${LICENSEDATA}" + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + +!macro MUI_UNPAGE_COMPONENTS + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro MUI_PAGE_COMPONENTS + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + +!macro MUI_UNPAGE_DIRECTORY + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro MUI_PAGE_DIRECTORY + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + +!macro MUI_UNPAGE_INSTFILES + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro MUI_PAGE_INSTFILES + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + +!macro MUI_UNPAGE_FINISH + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + +;-------------------------------- +;PAGE FUNCTIONS + + +; TODO: Rewrite the INSTALLFLAGS Macros to be able to use conditions like: ~X|Y&~Z|~V&~W|~U meaning (~X)|(Y&~Z)|(~V&~W)|(U) + + +; Convert a string VALUE1|VALUE2|VALUE4 to a OR bit by bit VALUE7 integer. +; Convert a string VALUE1&VALUE2&VALUE4 to a OR bit by bit VALUE7 integer. +; Usage: +; !insertmacro UMUI_STR2INT string +; Pop $VAR <INT Value> +; IntOp $VAR $VAR ~ only to have a NAND bit by bit VALUE inteder. + +!macro UMUI_STR2INT VALUE + Push $0 ; The source + Push $1 ; The output + Push $2 ; Temporary char + Push $3 ; Temporary integer + + !define UMUI_UNIQUEIDSTR2INT ${__LINE__} + + StrCpy $0 ${VALUE} ; Initialise the source + StrCpy $1 0 ; Initialise the output + StrCpy $3 0 ; Initialise the temporary integer + + loop${UMUI_UNIQUEIDSTR2INT}: + StrCpy $2 $0 1 ; Get the next source char + StrCmp $2 "" done${UMUI_UNIQUEIDSTR2INT} ; Abort when none left + StrCpy $0 $0 "" 1 ; Remove it from the source + StrCmp $2 "|" +2 +1 ; | OR Bit by bit + StrCmp $2 "&" 0 +4 ; & AND Bit by bit + IntOp $1 $1 | $3 + StrCpy $3 0 + Goto loop${UMUI_UNIQUEIDSTR2INT} + IntOp $3 $3 * 10 + IntOp $3 $3 + $2 + Goto loop${UMUI_UNIQUEIDSTR2INT} + + done${UMUI_UNIQUEIDSTR2INT}: + IntOp $1 $1 | $3 + + !undef UMUI_UNIQUEIDSTR2INT + + StrCpy $0 $1 + Pop $3 + Pop $2 + Pop $1 + Exch $0 +!macroend + + + + +!macro UMUI_ABORT_IF_INSTALLFLAG_IS VALUE + Push $0 + + ; convert INT|INT|INT string into an integer value + !ifndef UMUI_ABORT_IF_INSTALLFLAG_IS + !insertmacro UMUI_STR2INT ${VALUE} + !else + !insertmacro UMUI_STR2INT ${UMUI_ABORT_IF_INSTALLFLAG_IS} + !undef UMUI_ABORT_IF_INSTALLFLAG_IS + !endif + + Pop $0 + + StrCmp $0 "none" +5 0 + IntOp $0 $UMUI_INSTALLFLAG & $0 + IntCmp $0 0 +3 0 0 + Pop $0 + Abort + + Pop $0 +!macroend + +!macro UMUI_ABORT_IF_INSTALLFLAG_ISNOT VALUE + Push $0 + Push $1 + + ; convert INT|INT|INT string into an integer value + !ifndef UMUI_ABORT_IF_INSTALLFLAG_ISNOT + !insertmacro UMUI_STR2INT ${VALUE} + !else + !insertmacro UMUI_STR2INT ${UMUI_ABORT_IF_INSTALLFLAG_ISNOT} + !undef UMUI_ABORT_IF_INSTALLFLAG_ISNOT + !endif + + Pop $0 + + StrCmp $0 "none" +5 0 + + IntOp $0 $0 ~ + IntOp $1 $UMUI_INSTALLFLAG | $0 + IntCmp $1 $0 0 +4 +4 + Pop $1 + Pop $0 + Abort + + Pop $1 + Pop $0 +!macroend + + + +!macro UMUI_IF_INSTALLFLAG_ISNOT VALUE + + Push $0 + + !ifndef UMUI_POPVAR1 + Push $1 + !define UMUI_POPVAR1 + !endif + + !ifdef UMUI_UNIQUEIDIS + !define UMUI_UNIQUEIDISIMB ${__LINE__} + !else + !define UMUI_UNIQUEIDIS ${__LINE__} + !endif + + !insertmacro UMUI_STR2INT ${VALUE} + + Pop $0 + + !ifdef UMUI_UNIQUEIDISIMB + + StrCmp $0 "none" endpop${UMUI_UNIQUEIDISIMB} 0 + + IntOp $0 $0 ~ + IntOp $1 $UMUI_INSTALLFLAG | $0 + + IntCmp $1 $0 0 endpop${UMUI_UNIQUEIDISIMB} endpop${UMUI_UNIQUEIDISIMB} + + !else + + StrCmp $0 "none" endpop${UMUI_UNIQUEIDIS} 0 + + IntOp $0 $0 ~ + IntOp $1 $UMUI_INSTALLFLAG | $0 + + IntCmp $1 $0 0 endpop${UMUI_UNIQUEIDIS} endpop${UMUI_UNIQUEIDIS} + + !endif + + Pop $1 + Pop $0 + +!macroend + + +!macro UMUI_IF_INSTALLFLAG_IS VALUE + + Push $0 + + !ifdef UMUI_UNIQUEIDIS + !define UMUI_UNIQUEIDISIMB ${__LINE__} + !else + !define UMUI_UNIQUEIDIS ${__LINE__} + !endif + + !insertmacro UMUI_STR2INT ${VALUE} + + Pop $0 + + !ifdef UMUI_UNIQUEIDISIMB + + StrCmp $0 "none" endpop${UMUI_UNIQUEIDISIMB} 0 + + IntOp $0 $UMUI_INSTALLFLAG & $0 + IntCmp $0 0 endpop${UMUI_UNIQUEIDISIMB} 0 0 + + !else + + StrCmp $0 "none" endpop${UMUI_UNIQUEIDIS} 0 + + IntOp $0 $UMUI_INSTALLFLAG & $0 + IntCmp $0 0 endpop${UMUI_UNIQUEIDIS} 0 0 + + !endif + + Pop $0 + +!macroend + + +!macro UMUI_ENDIF_INSTALLFLAG + + !ifdef UMUI_UNIQUEIDISIMB + + Goto end${UMUI_UNIQUEIDISIMB} + + endpop${UMUI_UNIQUEIDISIMB}: + !ifdef UMUI_POPVAR1 + Pop $1 + !undef UMUI_POPVAR1 + !endif +; Pop $0 ; Cause an invalide opcode + + end${UMUI_UNIQUEIDISIMB}: + + !undef UMUI_UNIQUEIDISIMB + + !else + + Goto end${UMUI_UNIQUEIDIS} + + endpop${UMUI_UNIQUEIDIS}: + !ifdef UMUI_POPVAR1 + Pop $1 + !undef UMUI_POPVAR1 + !endif + Pop $0 + + end${UMUI_UNIQUEIDIS}: + + !undef UMUI_UNIQUEIDIS + + !endif + +!macroend + + +!macro UMUI_SET_INSTALLFLAG VALUE + Push $0 + + ; convert INT|INT|INT string into an integer value + !insertmacro UMUI_STR2INT ${VALUE} + Pop $0 + + IntOp $UMUI_INSTALLFLAG $UMUI_INSTALLFLAG | $0 + + Pop $0 +!macroend + +!macro UMUI_UNSET_INSTALLFLAG VALUE + Push $0 + + ; convert INT|INT|INT string into an integer value + !insertmacro UMUI_STR2INT ${VALUE} + Pop $0 + + IntOp $0 $0 ~ + IntOp $UMUI_INSTALLFLAG $UMUI_INSTALLFLAG & $0 + + Pop $0 +!macroend + + + + +!macro UMUI_UMUI_HIDEBACKBUTTON + + !ifdef UMUI_HIDEFIRSTBACKBUTTON + GetDlgItem $MUI_TEMP1 $HWNDPARENT 3 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + !else + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_HIDEBACKBUTTON} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 3 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + !insertmacro UMUI_ENDIF_INSTALLFLAG + !endif + + !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} + + !ifndef UMUI_HIDENEXTBACKBUTTON + !insertmacro MUI_UNSET UMUI_HIDEFIRSTBACKBUTTON + !else + !define /IfNDef UMUI_HIDEFIRSTBACKBUTTON + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_HIDEBACKBUTTON} + !undef UMUI_HIDENEXTBACKBUTTON + !endif + +!macroend + + +!macro MUI_PAGE_FUNCTION_CUSTOM TYPE + + !ifdef MUI_PAGE_CUSTOMFUNCTION_${TYPE} + Call "${MUI_PAGE_CUSTOMFUNCTION_${TYPE}}" + !undef MUI_PAGE_CUSTOMFUNCTION_${TYPE} + !endif + +!macroend + +!macro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM + + !ifdef MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT + Call "${MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT}" + !undef MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT + !endif + +!macroend + + + +!macro MUI_FUNCTION_WELCOMEPAGE PRE LEAVE + + !ifndef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE + !define UMUI_INTERNAL_WNUMFIELDS 2 + !define UMUI_INTERNAL_WFIELDTITLE 1 + !define UMUI_INTERNAL_WFIELDTEXT 2 + !define UMUI_INTERNAL_WIDTITLE 1200 + !define UMUI_INTERNAL_WIDTEXT 1201 + !else + !define UMUI_INTERNAL_WNUMFIELDS 3 + !define UMUI_INTERNAL_WFIELDTITLE 2 + !define UMUI_INTERNAL_WFIELDTEXT 3 + !define UMUI_INTERNAL_WIDTITLE 1201 + !define UMUI_INTERNAL_WIDTEXT 1202 + !endif + + Function "${PRE}" + + ; IF setup cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} + + !insertmacro MUI_HEADER_TEXT_PAGE "" "" + + !insertmacro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NumFields" "${UMUI_INTERNAL_WNUMFIELDS}" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NextButtonText" "" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "CancelEnabled" "" + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTITLE}" "Text" "MUI_WELCOMEPAGE_TITLE" + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef MUI_WELCOMEPAGE_TITLE_3LINES + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTITLE}" "Bottom" "55" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTEXT}" "Top" "62" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTITLE}" "Bottom" "62" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTEXT}" "Top" "69" + !endif + !endif + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTEXT}" "Bottom" "-1" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_WFIELDTEXT}" "Text" "MUI_WELCOMEPAGE_TEXT" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + LockWindow on + +!ifdef USE_MUIEx +;----------------- + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 + ShowWindow $MUI_TEMP1 ${SW_HIDE} +!endif +;----------------- + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + LockWindow off + + + !insertmacro INSTALLOPTIONS_INITDIALOG "ioSpecial.ini" + Pop $MUI_HWND + + !insertmacro UMUI_WFAPAGEBGTRANSPARENT_INIT $MUI_HWND + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_WIDTITLE} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + CreateFont $MUI_TEMP2 "$(^Font)" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_WIDTEXT} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + + !else + + ;alternate page + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_WIDTITLE} + CreateFont $MUI_TEMP2 "MS Sans Serif" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 $MUI_TEMP2 + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_WIDTEXT} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + + !endif + + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 3 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_SHOW + + LockWindow on + +!ifdef USE_MUIEx +;----------------- + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} +!endif +;----------------- + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + LockWindow off + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + FunctionEnd + + !undef UMUI_INTERNAL_WNUMFIELDS + !undef UMUI_INTERNAL_WFIELDTITLE + !undef UMUI_INTERNAL_WFIELDTEXT + !undef UMUI_INTERNAL_WIDTITLE + !undef UMUI_INTERNAL_WIDTEXT + +!macroend + + + +!macro MUI_FUNCTION_LICENSEPAGE PRE SHOW LEAVE + + Function "${PRE}" + + ; IF setup cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_LICENSE_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_LICENSE_SUBTITLE) + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${SHOW}" + + !insertmacro UMUI_UMUI_HIDEBACKBUTTON + + !insertmacro UMUI_PAGEBGTRANSPARENT_INIT + + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1040 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1036 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1006 + + !if "${UMUI_XPSTYLE}" == "On" + !insertmacro UMUI_PAGECTL_INIT 1034 + !insertmacro UMUI_PAGECTL_INIT 1035 + !else + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1034 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1035 + !endif + + !insertmacro MUI_INNERDIALOG_TEXT 1040 "${MUI_LICENSEPAGE_TEXT_TOP}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + FunctionEnd + +!macroend + + +!macro MUI_FUNCTION_COMPONENTSPAGE PRE SHOW LEAVE + + Function "${PRE}" + + !ifdef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME | UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME + + !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_MINIMAL}&${UMUI_STANDARD}&${UMUI_COMPLETE}&${UMUI_COMPONENTSSET} + + !ifdef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME + + ReadRegStr $MUI_TEMP1 ${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" + StrCmp $MUI_TEMP1 "" endis + + ;search the ID of the saved InstType + ClearErrors + StrCpy $MUI_TEMP2 0 + loopis: + InstTypeGetText $MUI_TEMP2 $UMUI_TEMP3 + IfErrors endis + StrCmp $UMUI_TEMP3 $MUI_TEMP1 foundis + IntOp $MUI_TEMP2 $MUI_TEMP2 + 1 + Goto loopis + foundis: + SetCurInstType $MUI_TEMP2 + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_COMPONENTSSET} + endis: + ClearErrors + + ; IF page skipped save + GetCurInstType $MUI_TEMP1 + InstTypeGetText $MUI_TEMP1 $MUI_TEMP2 + StrCmp $MUI_TEMP1 "32" 0 +2 + StrCpy $MUI_TEMP2 "" + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" $MUI_TEMP2 + + !endif + + !ifdef UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME + + !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_COMPONENTSSET} + + ReadRegStr $MUI_TEMP1 ${UMUI_COMPONENTSPAGE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" + StrCmp $MUI_TEMP1 "" End + ClearErrors + Call "${MUI_PAGE_UNINSTALLER_FUNCPREFIX}umui_components" + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_COMPONENTSSET} + End: + ClearErrors + + !insertmacro UMUI_ENDIF_INSTALLFLAG + + ; IF page skipped save + StrCpy $MUI_TEMP1 "save" + !ifdef UMUI_PREUNINSTALL_FUNCTION + StrCpy $MUI_TEMP2 "" + !else + ReadRegStr $MUI_TEMP2 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" + ClearErrors + !endif + Call "${MUI_PAGE_UNINSTALLER_FUNCPREFIX}umui_components" + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_COMPONENTSPAGE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" $MUI_TEMP2 + + !endif + + !insertmacro UMUI_ENDIF_INSTALLFLAG + + !endif + + ; IF setup cancelled or setuptype choosen + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MINIMAL}|${UMUI_STANDARD}|${UMUI_COMPLETE}|${UMUI_REPAIR}|${UMUI_UPDATE} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_COMPONENTS_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_COMPONENTS_SUBTITLE) + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${SHOW}" + + !insertmacro UMUI_UMUI_HIDEBACKBUTTON + + !insertmacro UMUI_PAGEBGTRANSPARENT_INIT + !insertmacro UMUI_PAGEINPUTCTL_INIT 1017 + !insertmacro UMUI_PAGEINPUTCTL_INIT 1032 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1022 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1021 + !insertmacro UMUI_PAGECTL_INIT 1023 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1006 + !insertmacro UMUI_PAGECTL_INIT 1043 +; !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1043 + !insertmacro UMUI_PAGECTLLIGHT_INIT 1042 + + !insertmacro MUI_INNERDIALOG_TEXT 1042 "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE}" + + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043 + +!ifndef USE_MUIEx +;---------------- + !ifndef UMUI_ENABLE_DESCRIPTION_TEXT + EnableWindow $MUI_TEMP1 0 + !else + !insertmacro UMUI_PAGECTLLIGHT_INIT 1043 +; !insertmacro UMUI_PAGECTLLIGHTTRANSPARENT_INIT 1043 + EnableWindow $MUI_TEMP1 1 + !endif +!else +;----- + EnableWindow $MUI_TEMP1 0 +!endif +;----- + + !insertmacro MUI_INNERDIALOG_TEXT 1043 "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO}" + StrCpy $MUI_TEXT "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO}" + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + FunctionEnd + + Function "${LEAVE}" + + !ifdef UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME + + GetCurInstType $MUI_TEMP1 + InstTypeGetText $MUI_TEMP1 $MUI_TEMP2 + StrCmp $MUI_TEMP1 "32" 0 +2 + StrCpy $MUI_TEMP2 "" + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" $MUI_TEMP2 + + !endif + + !ifdef UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME + + StrCpy $MUI_TEMP1 "save" + !ifdef UMUI_PREUNINSTALL_FUNCTION + StrCpy $MUI_TEMP2 "" + !else + ReadRegStr $MUI_TEMP2 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" + ClearErrors + !endif + + Call "${MUI_PAGE_UNINSTALLER_FUNCPREFIX}umui_components" + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_COMPONENTSPAGE_REGISTRY_ROOT} "${UMUI_COMPONENTSPAGE_REGISTRY_KEY}" "${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" $MUI_TEMP2 + + !endif + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + FunctionEnd + +!macroend + +!macro UMUI_DECLARECOMPONENTS_BEGIN + Function umui_components +!macroend + +!macro UMUI_DECLAREUNCOMPONENTS_BEGIN + Function un.umui_components +!macroend + +; TODO: Develop the version number comparison +!macro UMUI_COMPONENT SEC + + Push $0 ; len of "${SEC}=" + Push $1 ; temporary compare string + Push $2 ; characters to test + Push $3 ; Len to compare + Push $4 ; Counter + + StrCmp "$MUI_TEMP1" "save" 0 "read${SEC}" + ;Save choosen components + SectionGetFlags "${${SEC}}" "$UMUI_TEMP3" + IntOp "$UMUI_TEMP3" "$UMUI_TEMP3" & 1 ; 1 is ${SF_SELECTED} + StrCmp "$UMUI_TEMP3" 1 0 "end${SEC}" + + ;delete "${SEC}=*|" from $MUI_TEMP2 if already in + StrLen $0 "${SEC}=" + StrCpy $2 "$MUI_TEMP2" + StrCpy $4 0 + + "loops${SEC}:" + StrCpy $1 $2 $0 + StrLen $3 $2 + IntCmp $3 $0 0 "notfounds${SEC}" 0 + StrCmp "$1" "${SEC}=" "founds${SEC}" + StrCpy $2 $2 "" 1 + IntOp $4 $4 + 1 + Goto "loops${SEC}" + "founds${SEC}:" + ;$0 the temporary new $MUI_TEMP2 string + StrCpy $0 "$MUI_TEMP2" $4 + "loopsc${SEC}:" + StrCpy $1 $2 1 + StrCmp $1 "|" "foundsc${SEC}" + StrCpy $2 $2 "" 1 + Goto "loopsc${SEC}" + "foundsc${SEC}:" + StrCpy $2 $2 "" 1 + StrCpy "$MUI_TEMP2" "$0$2" + "notfounds${SEC}:" + !ifdef UMUI_COMPONENT_VERSION + StrCpy "$MUI_TEMP2" "$MUI_TEMP2${SEC}=${VER}|" + !else + StrCpy "$MUI_TEMP2" "$MUI_TEMP2${SEC}=|" + !endif + Goto "end${SEC}" + + ;Read choosen components + "read${SEC}:" + + StrLen $0 "${SEC}=" + StrCpy $2 "$MUI_TEMP1" + + "loop${SEC}:" + StrCpy $1 $2 $0 + StrLen $3 $2 + IntCmp $3 $0 0 "notfound${SEC}" 0 + StrCmp $1 "${SEC}=" "found${SEC}" + StrCpy $2 $2 "" 1 + Goto "loop${SEC}" + + "found${SEC}:" + ; select component + SectionGetFlags "${${SEC}}" $0 + IntOp $0 $0 | 1 ; 0x00000001 is ${SF_SELECTED} + SectionSetFlags "${${SEC}}" $0 + + Goto "end${SEC}" + "notfound${SEC}:" + ; unselect component + SectionGetFlags "${${SEC}}" $0 + IntOp $0 $0 & 0xFFFFFFFE ; 0xFFFFFFFE is ${SECTION_OFF} + SectionSetFlags "${${SEC}}" $0 + + "end${SEC}:" + + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Pop $0 + + !insertmacro MUI_UNSET UMUI_COMPONENT_VERSION + +!macroend + +!macro UMUI_DECLARECOMPONENTS_END + FunctionEnd +!macroend + +!macro UMUI_DECLAREUNCOMPONENTS_END + FunctionEnd +!macroend + + +!macro MUI_FUNCTION_DIRECTORYPAGE PRE SHOW LEAVE + + Function "${PRE}" + + ; IF setup cancelled or setuptype choosen + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MINIMAL}|${UMUI_STANDARD}|${UMUI_COMPLETE}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_DIRECTORY_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_DIRECTORY_SUBTITLE) + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${SHOW}" + + !insertmacro UMUI_UMUI_HIDEBACKBUTTON + + !insertmacro UMUI_PAGEBGTRANSPARENT_INIT + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1001 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1008 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1006 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1023 + !insertmacro UMUI_PAGECTL_INIT 1024 + !insertmacro UMUI_PAGECTLLIGHT_INIT 1020 + + !ifdef MUI_DIRECTORYPAGE_BGCOLOR + !insertmacro MUI_DEFAULT MUI_DIRECTORYPAGE_TEXTCOLOR "" + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1019 + SetCtlColors $MUI_TEMP1 "${MUI_DIRECTORYPAGE_TEXTCOLOR}" "${MUI_DIRECTORYPAGE_BGCOLOR}" + !else + !insertmacro UMUI_PAGEINPUTCTL_INIT 1019 + !endif + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + FunctionEnd + +!macroend + +!macro MUI_FUNCTION_STARTMENUPAGE PRE LEAVE + + Function "${PRE}" + + !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME + StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 +4 + + ReadRegStr $MUI_TEMP1 ${MUI_STARTMENUPAGE_REGISTRY_ROOT} "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" + + StrCmp $MUI_TEMP1 "" +2 + StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" $MUI_TEMP1 + + !endif + + ; IF setup cancelled or steuptype complete + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MINIMAL}|${UMUI_STANDARD}|${UMUI_COMPLETE}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} + + !insertmacro UMUI_UMUI_HIDEBACKBUTTON + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE) + + StrCmp $(^RTL) 0 mui.startmenu_nortl + !ifndef MUI_STARTMENUPAGE_NODISABLE + StartMenu::Init /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !else + StartMenu::Init /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !endif + Goto mui.startmenu_initdone + mui.startmenu_nortl: + !ifndef MUI_STARTMENUPAGE_NODISABLE + StartMenu::Init /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !else + StartMenu::Init /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !endif + mui.startmenu_initdone: + + Pop $MUI_HWND + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + +!ifndef USE_MUIEx +;----------------- + + !insertmacro UMUI_IOPAGEBG_INIT $MUI_HWND + + GetDlgItem $MUI_TEMP1 $MUI_HWND 1003 + !insertmacro UMUI_IOPAGECTL_INIT $MUI_TEMP1 + GetDlgItem $MUI_TEMP1 $MUI_HWND 1005 + !insertmacro UMUI_IOPAGECTL_INIT $MUI_TEMP1 + +!endif +;----- + + !ifdef MUI_STARTMENUPAGE_BGCOLOR + !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_TEXTCOLOR "" + GetDlgItem $MUI_TEMP1 $MUI_HWND 1002 + SetCtlColors $MUI_TEMP1 "${MUI_STARTMENUPAGE_TEXTCOLOR}" "${MUI_STARTMENUPAGE_BGCOLOR}" + GetDlgItem $MUI_TEMP1 $MUI_HWND 1004 + SetCtlColors $MUI_TEMP1 "${MUI_STARTMENUPAGE_TEXTCOLOR}" "${MUI_STARTMENUPAGE_BGCOLOR}" + !else + GetDlgItem $MUI_TEMP1 $MUI_HWND 1002 + !insertmacro UMUI_IOPAGEINPUTCTL_INIT $MUI_TEMP1 + GetDlgItem $MUI_TEMP1 $MUI_HWND 1004 + !insertmacro UMUI_IOPAGEINPUTCTL_INIT $MUI_TEMP1 + !endif + + StartMenu::Show + !insertmacro MUI_PAGE_FUNCTION_CUSTOM DESTROYED + + Pop $MUI_TEMP1 + StrCmp $MUI_TEMP1 "success" 0 +2 + Pop "${MUI_STARTMENUPAGE_VARIABLE}" + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${MUI_STARTMENUPAGE_REGISTRY_ROOT} "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" "${MUI_STARTMENUPAGE_VARIABLE}" + !endif + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + FunctionEnd + +!macroend + + +!macro MUI_FUNCTION_INSTFILESPAGE PRE SHOW LEAVE + + !ifdef UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON + !ifndef UMUI_NB_CALL_FUNCTION_CANCEL_DEFINED + !define UMUI_NB_CALL_FUNCTION_CANCEL_DEFINED + Var UMUI_NB_CALL_FUNCTION_CANCEL + !endif + !endif + + Function "${PRE}" + + ;IF setup is cancelled + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + SetAutoClose true + !insertmacro UMUI_ENDIF_INSTALLFLAG + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_SUBTITLE) + + !ifdef UMUI_INSTALLDIR_REGISTRY_VALUENAME + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_INSTALLDIR_REGISTRY_ROOT} "${UMUI_INSTALLDIR_REGISTRY_KEY}" "${UMUI_INSTALLDIR_REGISTRY_VALUENAME}" $INSTDIR + !endif + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${SHOW}" + + !insertmacro UMUI_UMUI_HIDEBACKBUTTON + + !insertmacro UMUI_PAGEBGTRANSPARENT_INIT + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1027 + !insertmacro UMUI_PAGECTL_INIT 1006 + !insertmacro UMUI_PAGECTLLIGHT_INIT 1004 + + !ifdef UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON + StrCpy $UMUI_NB_CALL_FUNCTION_CANCEL 0 + GetDlgItem $MUI_TEMP1 $HWNDPARENT 2 + EnableWindow $MUI_TEMP1 1 + !endif + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + FunctionEnd + + Function "${LEAVE}" + + IfAbort 0 noabort + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_CANCELLED} + noabort: + + !ifdef UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + StrCmp $UMUI_NB_CALL_FUNCTION_CANCEL 0 0 +3 + StrCpy $UMUI_NB_CALL_FUNCTION_CANCEL 1 + Call ${UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON} + !insertmacro UMUI_ENDIF_INSTALLFLAG + !endif + + !insertmacro MUI_UNSET UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + !insertmacro UMUI_ADDSHELLVARCONTEXTTOSAVETOREGISTRY + + ; Save paths + !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} + StrCmp ${MUI_PAGE_UNINSTALLER_PREFIX} "" 0 endPathSave + !insertmacro UMUI_PATH_SAVE + endPathSave: + !insertmacro UMUI_ENDIF_INSTALLFLAG + + ;Save all parameters + !insertmacro UMUI_SAVEPARAMSTOREGISTRY + + !ifdef MUI_UNFINISHPAGE_NOAUTOCLOSE + !insertmacro MUI_ENDHEADER + !endif + + FunctionEnd + +!ifndef USE_MUIEx +;----------------- + + ;This is a workaround for the background of the progress bar that wasn't drawn properly with background image + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + !ifndef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}SECTION_WORKAROUND_INSERTED + !define UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}SECTION_WORKAROUND_INSERTED + + Section "${MUI_PAGE_UNINSTALLER_FUNCPREFIX}" + SetDetailsPrint none + + FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1004 + + System::Call "user32::InvalidateRect(i,i,i)i ($MUI_TEMP1, 0, 1)" + + SetDetailsPrint both + SectionEnd + + !endif + !endif + +!endif +;----------------- + + !ifndef MUI_UNINSTALLER + !ifdef UMUI_PREUNINSTALL_FUNCTION + + !ifndef UMUI_SECTION_PREUNINSTALL + !define UMUI_SECTION_PREUNINSTALL + + Section "" + ClearErrors + IfFileExists $INSTDIR 0 end + + Call "${UMUI_PREUNINSTALL_FUNCTION}" + + end: + ClearErrors + SectionEnd + + !endif + + !endif + !endif + +!macroend + +!macro MUI_FUNCTION_FINISHPAGE PRE LEAVE + + !ifndef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE + !define UMUI_INTERNAL_FNUMFIELDS_3ADDITIONALCONTROLS 5 + !define UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS 4 + !define UMUI_INTERNAL_FNUMFIELDS_1ADDITIONALCONTROLS 3 + !define UMUI_INTERNAL_FIELDTITLE 1 + !define UMUI_INTERNAL_FIELDTEXT 2 + !define UMUI_INTERNAL_FIELDTHIRD 3 + !define UMUI_INTERNAL_FIELDFOURTH 4 + !define UMUI_INTERNAL_FIELDFIFTH 5 + !define UMUI_INTERNAL_FIDTITLE 1200 + !define UMUI_INTERNAL_FIDTEXT 1201 + !define UMUI_INTERNAL_FIDTHIRD 1202 + !define UMUI_INTERNAL_FIDFOURTH 1203 + !define UMUI_INTERNAL_FIDFIFTH 1204 + !define UMUI_INTERNAL_FPOSLINKLEFT 22 + !define UMUI_INTERNAL_FOPTIONCHECKLEFT 26 + !else + !define UMUI_INTERNAL_FNUMFIELDS_3ADDITIONALCONTROLS 6 + !define UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS 5 + !define UMUI_INTERNAL_FNUMFIELDS_1ADDITIONALCONTROLS 4 + !define UMUI_INTERNAL_FIELDTITLE 2 + !define UMUI_INTERNAL_FIELDTEXT 3 + !define UMUI_INTERNAL_FIELDTHIRD 4 + !define UMUI_INTERNAL_FIELDFOURTH 5 + !define UMUI_INTERNAL_FIELDFIFTH 6 + !define UMUI_INTERNAL_FIDTITLE 1201 + !define UMUI_INTERNAL_FIDTEXT 1202 + !define UMUI_INTERNAL_FIDTHIRD 1203 + !define UMUI_INTERNAL_FIDFOURTH 1204 + !define UMUI_INTERNAL_FIDFIFTH 1205 + !define UMUI_INTERNAL_FPOSLINKLEFT 130 + !define UMUI_INTERNAL_FOPTIONCHECKLEFT 134 + !endif + + Function "${PRE}" + + ; IF setup cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + + !insertmacro MUI_HEADER_TEXT_PAGE "" "" + + !insertmacro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM + + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NextButtonText" "${MUI_FINISHPAGE_BUTTON}" + + !ifdef MUI_FINISHPAGE_CANCEL_ENABLED + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "CancelEnabled" "1" + !endif + + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTITLE}" "Text" "MUI_FINISHPAGE_TITLE" + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef MUI_FINISHPAGE_TITLE_3LINES + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTITLE}" "Bottom" "38" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Top" "45" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTITLE}" "Bottom" "48" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Top" "55" + !endif + !endif + + !ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef MUI_FINISHPAGE_TITLE_3LINES + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "85" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "115" + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "95" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "125" + !endif + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "124" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "139" + !endif + !endif + !else + !ifndef MUI_FINISHPAGE_LINK + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "-1" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "-15" + !endif + !endif + + !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT + + IfRebootFlag 0 mui.finish_noreboot_init + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef MUI_FINISHPAGE_TITLE_3LINES + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "85" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "115" + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "95" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "125" + !endif + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "124" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Bottom" "151" + !endif + !endif + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Text" "MUI_FINISHPAGE_TEXT_REBOOT" + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS}" + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Type" "RadioButton" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Text" "MUI_FINISHPAGE_TEXT_REBOOTNOW" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Left" "${UMUI_INTERNAL_FOPTIONCHECKLEFT}" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Right" "-15" + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef MUI_FINISHPAGE_TITLE_3LINES + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "90" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "100" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "120" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "130" + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "100" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "110" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "130" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "140" + !endif + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "129" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "139" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "159" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "169" + !endif + !endif + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Type" "RadioButton" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Text" "MUI_FINISHPAGE_TEXT_REBOOTLATER" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Left" "${UMUI_INTERNAL_FOPTIONCHECKLEFT}" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Right" "-15" + + !ifdef MUI_FINISHPAGE_REBOOTLATER_DEFAULT + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "State" "0" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "State" "1" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "State" "1" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "State" "0" + !endif + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef MUI_FINISHPAGE_TITLE_3LINES + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Top" "110" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Bottom" "120" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Top" "110" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Bottom" "120" + !endif + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Top" "149" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "Bottom" "159" + !endif + + Goto mui.finish_load + + mui.finish_noreboot_init: + + !endif + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTEXT}" "Text" "MUI_FINISHPAGE_TEXT" + + !ifdef MUI_FINISHPAGE_RUN + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Type" "CheckBox" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Text" "MUI_FINISHPAGE_RUN_TEXT" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Left" "${UMUI_INTERNAL_FOPTIONCHECKLEFT}" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Right" "-15" + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef MUI_FINISHPAGE_TITLE_3LINES + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "90" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "100" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "120" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "130" + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "100" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "110" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "130" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "140" + !endif + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "129" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "139" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Top" "139" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "Bottom" "149" + !endif + !endif + + !ifndef MUI_FINISHPAGE_RUN_NOTCHECKED + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "State" "1" + !endif + + !endif + + + !ifdef MUI_FINISHPAGE_SHOWREADME + + !ifdef MUI_FINISHPAGE_CURFIELD_NO + !undef MUI_FINISHPAGE_CURFIELD_NO + !endif + + !ifndef MUI_FINISHPAGE_RUN + !define MUI_FINISHPAGE_CURFIELD_NO ${UMUI_INTERNAL_FIELDTHIRD} + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef MUI_FINISHPAGE_TITLE_3LINES + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !define MUI_FINISHPAGE_CURFIELD_TOP 90 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 100 + !else + !define MUI_FINISHPAGE_CURFIELD_TOP 120 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 130 + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !define MUI_FINISHPAGE_CURFIELD_TOP 100 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 110 + !else + !define MUI_FINISHPAGE_CURFIELD_TOP 130 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 140 + !endif + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !define MUI_FINISHPAGE_CURFIELD_TOP 144 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 159 + !else + !define MUI_FINISHPAGE_CURFIELD_TOP 174 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 189 + !endif + !endif + ; finishpagerun + !else + !define MUI_FINISHPAGE_CURFIELD_NO ${UMUI_INTERNAL_FIELDFOURTH} + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef MUI_FINISHPAGE_TITLE_3LINES + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !define MUI_FINISHPAGE_CURFIELD_TOP 110 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 120 + !else + !define MUI_FINISHPAGE_CURFIELD_TOP 140 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 150 + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !define MUI_FINISHPAGE_CURFIELD_TOP 120 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 130 + !else + !define MUI_FINISHPAGE_CURFIELD_TOP 150 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 160 + !endif + !endif + !else + !ifndef MUI_FINISHPAGE_TEXT_LARGE + !define MUI_FINISHPAGE_CURFIELD_TOP 150 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 160 + !else + !define MUI_FINISHPAGE_CURFIELD_TOP 160 + !define MUI_FINISHPAGE_CURFIELD_BOTTOM 170 + !endif + !endif + !endif + + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Type" "CheckBox" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Text" "MUI_FINISHPAGE_SHOWREADME_TEXT" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Left" "${UMUI_INTERNAL_FOPTIONCHECKLEFT}" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Right" "-15" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Top" "${MUI_FINISHPAGE_CURFIELD_TOP}" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Bottom" "${MUI_FINISHPAGE_CURFIELD_BOTTOM}" + !ifndef MUI_FINISHPAGE_SHOWREADME_NOTCHECKED + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "State" "1" + !endif + + !endif + + !ifdef MUI_FINISHPAGE_LINK + + !ifdef MUI_FINISHPAGE_CURFIELD_NO + !undef MUI_FINISHPAGE_CURFIELD_NO + !endif + + !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME + !define MUI_FINISHPAGE_CURFIELD_NO ${UMUI_INTERNAL_FIELDFIFTH} + !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME + !define MUI_FINISHPAGE_CURFIELD_NO ${UMUI_INTERNAL_FIELDFOURTH} + !else + !define MUI_FINISHPAGE_CURFIELD_NO ${UMUI_INTERNAL_FIELDTHIRD} + !endif + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Type" "Link" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Text" "MUI_FINISHPAGE_LINK" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Left" "${UMUI_INTERNAL_FPOSLINKLEFT}" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Right" "-15" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Top" "-14" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Bottom" "-5" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "State" "MUI_FINISHPAGE_LINK_LOCATION" + + !endif + + + !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME & MUI_FINISHPAGE_LINK + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_3ADDITIONALCONTROLS}" + !else ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS}" + !else ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_LINK + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS}" + !else ifdef MUI_FINISHPAGE_SHOWREADME & MUI_FINISHPAGE_LINK + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS}" + !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME | MUI_FINISHPAGE_LINK + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "${UMUI_INTERNAL_FNUMFIELDS_1ADDITIONALCONTROLS}" + !endif + + + !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT + mui.finish_load: + !endif + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + LockWindow on + +!ifdef USE_MUIEx +;----------------- + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 + ShowWindow $MUI_TEMP1 ${SW_HIDE} +!endif +;----------------- + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + LockWindow off + + + !insertmacro INSTALLOPTIONS_INITDIALOG "ioSpecial.ini" + Pop $MUI_HWND + + !insertmacro UMUI_WFAPAGEBGTRANSPARENT_INIT $MUI_HWND + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTITLE} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + CreateFont $MUI_TEMP2 "$(^Font)" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTEXT} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + + !else + + ;alternate page + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTITLE} + CreateFont $MUI_TEMP2 "MS Sans Serif" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 $MUI_TEMP2 + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTEXT} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + + !endif + + + !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT + + IfRebootFlag 0 mui.finish_noreboot_show + + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFOURTH} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + + Goto mui.finish_show + + mui.finish_noreboot_show: + + !endif + + !ifdef MUI_FINISHPAGE_RUN + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + !endif + + !ifdef MUI_FINISHPAGE_SHOWREADME + !ifndef MUI_FINISHPAGE_RUN + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} + !else + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFOURTH} + !endif + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + !endif + + !ifdef MUI_FINISHPAGE_LINK + !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFIFTH} + !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFOURTH} + !else + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} + !endif + + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + SetCtlColors $MUI_TEMP1 "${MUI_FINISHPAGE_LINK_COLOR}" "transparent" + !else + SetCtlColors $MUI_TEMP1 "${MUI_FINISHPAGE_LINK_COLOR}" "${MUI_BGCOLOR}" + !endif + + !endif + + + !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT + mui.finish_show: + !endif + + !if "${UMUI_XPSTYLE}" == "On" + !ifndef MUI_FORCECLASSICCONTROLS + ${If} ${IsHighContrastModeActive} + !endif + ; SetCtlColors does not change the check/radio text color (bug #443) + !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} + System::Call 'UXTHEME::SetWindowTheme(p$MUI_TEMP1,w" ",w" ")' + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFOURTH} + System::Call 'UXTHEME::SetWindowTheme(p$MUI_TEMP1,w" ",w" ")' + !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDTHIRD} + System::Call 'UXTHEME::SetWindowTheme(p$MUI_TEMP1,w" ",w" ")' + !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_FIDFOURTH} + System::Call 'UXTHEME::SetWindowTheme(p$MUI_TEMP1,w" ",w" ")' + !endif + !endif + !ifndef MUI_FORCECLASSICCONTROLS + ${EndIf} + !endif + !endif + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 3 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + GetDlgItem $MUI_TEMP1 $HWNDPARENT 2 + EnableWindow $MUI_TEMP1 0 + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !ifdef MUI_FINISHPAGE_CANCEL_ENABLED + StrCpy $MUI_NOABORTWARNING "1" + !endif + + !insertmacro INSTALLOPTIONS_SHOW + + !ifdef MUI_FINISHPAGE_CANCEL_ENABLED + StrCpy $MUI_NOABORTWARNING "" + !endif + + LockWindow on + +!ifdef USE_MUIEx +;----------------- + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} +!endif +;----------------- + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + LockWindow off + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT + + IfRebootFlag "" mui.finish_noreboot_end + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "State" + + StrCmp $MUI_TEMP1 "1" 0 +2 + Reboot + + Return + + mui.finish_noreboot_end: + + !endif + + !ifdef MUI_FINISHPAGE_RUN + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "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: + + !endif + + !ifdef MUI_FINISHPAGE_SHOWREADME + + !ifndef MUI_FINISHPAGE_RUN + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDTHIRD}" "State" + !else + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field ${UMUI_INTERNAL_FIELDFOURTH}" "State" + !endif + + StrCmp $MUI_TEMP1 "1" 0 mui.finish_noshowreadme + !ifndef MUI_FINISHPAGE_SHOWREADME_FUNCTION + ExecShell "open" "${MUI_FINISHPAGE_SHOWREADME}" + !else + Call "${MUI_FINISHPAGE_SHOWREADME_FUNCTION}" + !endif + + mui.finish_noshowreadme: + + !endif + + FunctionEnd + + !undef UMUI_INTERNAL_FNUMFIELDS_3ADDITIONALCONTROLS + !undef UMUI_INTERNAL_FNUMFIELDS_2ADDITIONALCONTROLS + !undef UMUI_INTERNAL_FNUMFIELDS_1ADDITIONALCONTROLS + !undef UMUI_INTERNAL_FIELDTITLE + !undef UMUI_INTERNAL_FIELDTEXT + !undef UMUI_INTERNAL_FIELDTHIRD + !undef UMUI_INTERNAL_FIELDFOURTH + !undef UMUI_INTERNAL_FIELDFIFTH + !undef UMUI_INTERNAL_FIDTITLE + !undef UMUI_INTERNAL_FIDTEXT + !undef UMUI_INTERNAL_FIDTHIRD + !undef UMUI_INTERNAL_FIDFOURTH + !undef UMUI_INTERNAL_FIDFIFTH + !undef UMUI_INTERNAL_FPOSLINKLEFT + !undef UMUI_INTERNAL_FOPTIONCHECKLEFT + +!macroend + +!macro MUI_UNFUNCTION_CONFIRMPAGE PRE SHOW LEAVE + + Function "${PRE}" + + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_UNTEXT_CONFIRM_TITLE) $(MUI_UNTEXT_CONFIRM_SUBTITLE) + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${SHOW}" + + !insertmacro UMUI_PAGEBGTRANSPARENT_INIT + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1029 + !insertmacro UMUI_PAGECTLLIGHT_INIT 1000 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1006 + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + FunctionEnd + +!macroend + + + + +; ======================== +; New UltraModern page +; ======================== + + + +!macro UMUI_PAGE_MULTILANGUAGE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}MULTILANGUAGEPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MULTILANGUAGEPAGE_TITLE "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_MULTILANGUAGE_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MULTILANGUAGEPAGE_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_MULTILANGUAGE_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MULTILANGUAGEPAGE_LANGUAGE "$(UMUI_TEXT_MULTILANGUAGE_LANGUAGE)" + + !ifndef MUI_VAR_HWND + Var MUI_HWND + !define MUI_VAR_HWND + !endif + + !ifndef UMUI_VAR_LANGLIST + Var UMUI_LANGLIST + !define UMUI_VAR_LANGLIST + !endif + + !ifndef UMUI_VAR_UMUI_TEMP3 + Var UMUI_TEMP3 + !define UMUI_VAR_UMUI_TEMP3 + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.MultiLanguagePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.MultiLanguageLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro UMUI_FUNCTION_MULTILANGUAGEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.MultiLanguagePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.MultiLanguageLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET UMUI_MULTILANGUAGEPAGE_TITLE + !insertmacro MUI_UNSET UMUI_MULTILANGUAGEPAGE_TEXT + !insertmacro MUI_UNSET UMUI_MULTILANGUAGEPAGE_LANGUAGE + !insertmacro MUI_UNSET UMUI_MULTILANGUAGEPAGE_TITLE_3LINES + + !verbose pop + +!macroend + + +!macro UMUI_UNPAGE_MULTILANGUAGE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro UMUI_PAGE_MULTILANGUAGE + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + + +!macro UMUI_FUNCTION_MULTILANGUAGEPAGE PRE LEAVE + + !ifndef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE + !define UMUI_INTERNAL_MNUMFIELDS 4 + !define UMUI_INTERNAL_MFIELDTITLE 1 + !define UMUI_INTERNAL_MFIELDTEXT 2 + !define UMUI_INTERNAL_MFIELDGROUPBOX 3 + !define UMUI_INTERNAL_MFIELDDROPDOWN 4 + !define UMUI_INTERNAL_MIDTITLE 1200 + !define UMUI_INTERNAL_MIDTEXT 1201 + !define UMUI_INTERNAL_MIDGROUPBOX 1202 + !define UMUI_INTERNAL_MIDDROPDOWN 1203 + !define UMUI_INTERNAL_MPOSGROUPBOXLEFT 75 + !define UMUI_INTERNAL_MPOSGROUPBOXRIGHT -75 + !define UMUI_INTERNAL_MPOSDROPDOWNLEFT 105 + !define UMUI_INTERNAL_MPOSDROPDOWNRIGHT -105 + !else + !define UMUI_INTERNAL_MNUMFIELDS 5 + !define UMUI_INTERNAL_MFIELDTITLE 2 + !define UMUI_INTERNAL_MFIELDTEXT 3 + !define UMUI_INTERNAL_MFIELDGROUPBOX 4 + !define UMUI_INTERNAL_MFIELDDROPDOWN 5 + !define UMUI_INTERNAL_MIDTITLE 1201 + !define UMUI_INTERNAL_MIDTEXT 1202 + !define UMUI_INTERNAL_MIDGROUPBOX 1203 + !define UMUI_INTERNAL_MIDDROPDOWN 1204 + !define UMUI_INTERNAL_MPOSGROUPBOXLEFT 140 + !define UMUI_INTERNAL_MPOSGROUPBOXRIGHT -30 + !define UMUI_INTERNAL_MPOSDROPDOWNLEFT 170 + !define UMUI_INTERNAL_MPOSDROPDOWNRIGHT -60 + !endif + + !define /IfNDef UMUI_HIDENEXTBACKBUTTON + + Function "${PRE}" + + ; IF setup cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_LANGISSET} + + !insertmacro MUI_HEADER_TEXT_PAGE "" "" + + ; save the old language id + StrCpy $UMUI_TEMP3 $LANGUAGE + + StrCmp $UMUI_LANGLIST "" 0 +2 + MessageBox MB_OK|MB_ICONSTOP "Ultra-Modern UI error: You have forgotten to insert the UMUI_MULTILANG_GET macro in your ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}.oninit function." + + ClearErrors + ; Get the current language id + nsArray::Get LangMap $LANGUAGE + Pop $MUI_TEMP1 + + ;if don't exist + IfErrors 0 foundLang + + ;search for english + nsArray::Get LangMap "1033" + Pop $MUI_TEMP1 + + ;if don't exist + IfErrors 0 foundLang + + ;english an system language was not been inserted + StrCpy $MUI_TEMP1 "" + + foundLang: + + CopyFiles /SILENT "$PLUGINSDIR\ioSpecial.ini" "$PLUGINSDIR\MultiLanguage.ini" + + + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Settings" "NumFields" "${UMUI_INTERNAL_MNUMFIELDS}" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Settings" "NextButtonText" "" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Settings" "CancelEnabled" "" + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTITLE}" "Text" "UMUI_MULTILANGUAGEPAGE_TITLE" + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef UMUI_MULTILANGUAGEPAGE_TITLE_3LINES + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTITLE}" "Bottom" "55" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTEXT}" "Top" "62" + !else + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTITLE}" "Bottom" "62" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTEXT}" "Top" "69" + !endif + !endif + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTEXT}" "Text" "UMUI_MULTILANGUAGEPAGE_TEXT" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDTEXT}" "Bottom" "120" + + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Type" "GroupBox" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Text" "UMUI_MULTILANGUAGEPAGE_LANGUAGE" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Left" "${UMUI_INTERNAL_MPOSGROUPBOXLEFT}" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Right" "${UMUI_INTERNAL_MPOSGROUPBOXRIGHT}" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Top" "120" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDGROUPBOX}" "Bottom" "160" + + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "Type" "DropList" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "ListItems" "$UMUI_LANGLIST" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "State" $MUI_TEMP1 + + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "Left" "${UMUI_INTERNAL_MPOSDROPDOWNLEFT}" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "Right" "${UMUI_INTERNAL_MPOSDROPDOWNRIGHT}" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "Top" "135" + !insertmacro INSTALLOPTIONS_WRITE "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "Bottom" "-1" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + LockWindow on + +!ifdef USE_MUIEx +;----------------- + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 + ShowWindow $MUI_TEMP1 ${SW_HIDE} +!endif +;----------------- + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + LockWindow off + + + !insertmacro INSTALLOPTIONS_INITDIALOG "MultiLanguage.ini" + Pop $MUI_HWND + + !insertmacro UMUI_WFAPAGEBGTRANSPARENT_INIT $MUI_HWND + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDTITLE} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + CreateFont $MUI_TEMP2 "$(^Font)" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDTEXT} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + + !else + + ;alternate page + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDTITLE} + CreateFont $MUI_TEMP2 "MS Sans Serif" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 $MUI_TEMP2 + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDTEXT} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + + !endif + + + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDGROUPBOX} + !insertmacro UMUI_IOPAGECTLLIGHT_INIT $MUI_TEMP1 + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_MIDDROPDOWN} + !insertmacro UMUI_IOPAGEINPUTCTL_INIT $MUI_TEMP1 + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_SHOW + + LockWindow on + +!ifdef USE_MUIEx +;----------------- + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} +!endif +;----------------- + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + LockWindow off + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + ; Get the choosed language name + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "MultiLanguage.ini" "Field ${UMUI_INTERNAL_MFIELDDROPDOWN}" "State" + + ;Search key of selcted value + ClearErrors + langLoop: + nsArray::Iterate LangMap + Pop $LANGUAGE + Pop $MUI_TEMP2 + StrCmp $MUI_TEMP1 $MUI_TEMP2 +2 0 + IfErrors 0 langLoop + + nsArray::Clear LangMap + + ; if we choose the same language + StrCmp $UMUI_TEMP3 $LANGUAGE 0 reloadinstall + + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_LANGISSET} + + !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" "$LANGUAGE" + !endif + + Goto end + reloadinstall: + + ;Recall this programm and quit + !insertmacro UMUI_GET_PARAMETERS + Pop $MUI_TEMP2 + + !insertmacro UMUI_DELETE_PLUGINDIR + HideWindow + + !ifndef MUI_UNINSTALLER + ExecWait "$EXEPATH $MUI_TEMP2 /L=$LANGUAGE /NCRC" + !else + ExecWait "$EXEPATH $MUI_TEMP2 /L=$LANGUAGE _?=$INSTDIR" + !endif + Quit + + end: + + + !insertmacro UMUI_ENDIF_INSTALLFLAG + + FunctionEnd + + !undef UMUI_INTERNAL_MNUMFIELDS + !undef UMUI_INTERNAL_MFIELDTITLE + !undef UMUI_INTERNAL_MFIELDTEXT + !undef UMUI_INTERNAL_MFIELDGROUPBOX + !undef UMUI_INTERNAL_MFIELDDROPDOWN + !undef UMUI_INTERNAL_MIDTITLE + !undef UMUI_INTERNAL_MIDTEXT + !undef UMUI_INTERNAL_MIDGROUPBOX + !undef UMUI_INTERNAL_MIDDROPDOWN + !undef UMUI_INTERNAL_MPOSGROUPBOXLEFT + !undef UMUI_INTERNAL_MPOSGROUPBOXRIGHT + !undef UMUI_INTERNAL_MPOSDROPDOWNLEFT + !undef UMUI_INTERNAL_MPOSDROPDOWNRIGHT + +!macroend + + +!macro UMUI_PAGE_CONFIRM + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}CONFIRMPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_CONFIRMPAGE_TEXT_TOP "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_INSTCONFIRM_TEXT_TOP)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_CONFIRMPAGE_TEXT_BOTTOM "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_TITLE)" + + !ifdef UMUI_CONFIRMPAGE_TEXTBOX + !ifndef UMUI_VAR_UMUI_TEMP3 + Var UMUI_TEMP3 + !define UMUI_VAR_UMUI_TEMP3 + !endif + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ConfirmPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ConfirmLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro UMUI_FUNCTION_CONFIRMPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ConfirmPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ConfirmLeave_${MUI_UNIQUEID} + + !undef UMUI_CONFIRMPAGE_TEXT_TOP + !undef UMUI_CONFIRMPAGE_TEXT_BOTTOM + + !insertmacro MUI_UNSET UMUI_CONFIRMPAGE_TEXTBOX + + !verbose pop + +!macroend + +!macro UMUI_UNPAGE_CONFIRM + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro UMUI_PAGE_CONFIRM + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + +!macro UMUI_FUNCTION_CONFIRMPAGE PRE LEAVE + + Function "${PRE}" + + ; IF setup cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_CONFIRMPAGE_INI}" "Confirm.ini" + + ; Bodenseematze-2016-09-15: missing PRE-Function support added: + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_INSTCONFIRM_TITLE)" "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_INSTCONFIRM_SUBTITLE)" + + !ifdef UMUI_CONFIRMPAGE_TEXTBOX + FlushINI "$PLUGINSDIR\Confirm.ini" + + FileOpen $MUI_TEMP2 "$PLUGINSDIR\Confirm.ini" a + !ifdef NSIS_UNICODE + FileSeek $MUI_TEMP2 -4 END + !else + FileSeek $MUI_TEMP2 -2 END + !endif + + Call "${UMUI_CONFIRMPAGE_TEXTBOX}" + + FileClose $MUI_TEMP2 + + !insertmacro INSTALLOPTIONS_WRITE "Confirm.ini" "Settings" NumFields "3" + + !endif + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Confirm.ini" "Field 1" "Text" "UMUI_CONFIRMPAGE_TEXT_TOP" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Confirm.ini" "Field 2" "Text" "UMUI_CONFIRMPAGE_TEXT_BOTTOM" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_DISPLAY "Confirm.ini" + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + FunctionEnd + +!macroend + +!macro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE STR + + StrCpy $UMUI_TEMP3 "${STR}" + + !insertmacro UMUI_STRREPLACE $UMUI_TEMP3 "\" "\\" $UMUI_TEMP3 + + !ifdef NSIS_UNICODE + FileWriteUTF16LE $MUI_TEMP2 "$UMUI_TEMP3\r\n" + !else + FileWrite $MUI_TEMP2 "$UMUI_TEMP3\r\n" + !endif + + ClearErrors + +!macroend + + + + + + + +!macro UMUI_PAGE_ABORT + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}ABORTPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_ABORTPAGE_TITLE "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_INFO_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_ABORTPAGE_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_INFO_TEXT)" + + !define /IfNDef UMUI_ABORTPAGE_LINK_COLOR "${UMUI_TEXT_LIGHTCOLOR}" + + !ifndef MUI_VAR_HWND + Var MUI_HWND + !define MUI_VAR_HWND + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ABORTPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ABORTLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro UMUI_FUNCTION_ABORTPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ABORTPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ABORTLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET UMUI_ABORTPAGE_TITLE + !insertmacro MUI_UNSET UMUI_ABORTPAGE_TITLE_3LINES + !insertmacro MUI_UNSET UMUI_ABORTPAGE_TEXT + !insertmacro MUI_UNSET UMUI_ABORTPAGE_LINK + !insertmacro MUI_UNSET UMUI_ABORTPAGE_LINK_LOCATION + !insertmacro MUI_UNSET UMUI_ABORTPAGE_LINK_COLOR + + !verbose pop + +!macroend + + +!macro UMUI_UNPAGE_ABORT + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro UMUI_PAGE_ABORT + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + + +!macro UMUI_FUNCTION_ABORTPAGE PRE LEAVE + + !ifndef UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE + !define UMUI_INTERNAL_ANUMFIELDS 2 + !define UMUI_INTERNAL_ANUMFIELDSLINK 3 + !define UMUI_INTERNAL_AFIELDTITLE 1 + !define UMUI_INTERNAL_AFIELDTEXT 2 + !define UMUI_INTERNAL_AFIELDLINK 3 + !define UMUI_INTERNAL_AIDTITLE 1200 + !define UMUI_INTERNAL_AIDTEXT 1201 + !define UMUI_INTERNAL_AIDLINK 1202 + !define UMUI_INTERNAL_APOSLINKLEFT 22 + !else + !define UMUI_INTERNAL_ANUMFIELDS 3 + !define UMUI_INTERNAL_ANUMFIELDSLINK 4 + !define UMUI_INTERNAL_AFIELDTITLE 2 + !define UMUI_INTERNAL_AFIELDTEXT 3 + !define UMUI_INTERNAL_AFIELDLINK 4 + !define UMUI_INTERNAL_AIDTITLE 1201 + !define UMUI_INTERNAL_AIDTEXT 1202 + !define UMUI_INTERNAL_AIDLINK 1203 + !define UMUI_INTERNAL_APOSLINKLEFT 130 + !endif + + Function "${PRE}" + + ;If setup is not cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} + + !insertmacro MUI_HEADER_TEXT_PAGE "" "" + + !insertmacro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" NextButtonText "$(^CloseBtn)" + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NumFields" "${UMUI_INTERNAL_ANUMFIELDS}" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTITLE}" "Text" "UMUI_ABORTPAGE_TITLE" + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + !ifndef UMUI_ABORTPAGE_TITLE_3LINES + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTITLE}" "Bottom" "55" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTEXT}" "Top" "62" + !else + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTITLE}" "Bottom" "62" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTEXT}" "Top" "69" + !endif + !endif + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTEXT}" "Bottom" "-15" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDTEXT}" "Text" "UMUI_ABORTPAGE_TEXT" + + !ifdef UMUI_ABORTPAGE_LINK + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" NumFields "${UMUI_INTERNAL_ANUMFIELDSLINK}" + + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Type" "Link" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Text" "UMUI_ABORTPAGE_LINK" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Left" "${UMUI_INTERNAL_APOSLINKLEFT}" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Right" "-15" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Top" "-14" + !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "Bottom" "-5" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${UMUI_INTERNAL_AFIELDLINK}" "State" "UMUI_ABORTPAGE_LINK_LOCATION" + + !endif + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + LockWindow on + +!ifdef USE_MUIEx +;----------------- + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 + ShowWindow $MUI_TEMP1 ${SW_HIDE} +!endif +;----------------- + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + LockWindow off + + + !insertmacro INSTALLOPTIONS_INITDIALOG "ioSpecial.ini" + Pop $MUI_HWND + + !insertmacro UMUI_WFAPAGEBGTRANSPARENT_INIT $MUI_HWND + + !ifndef UMUI_USE_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATE_PAGE + + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_AIDTITLE} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + CreateFont $MUI_TEMP2 "$(^Font)" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0 + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_AIDTEXT} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + + !else + + ;alternate page + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_AIDTITLE} + CreateFont $MUI_TEMP2 "MS Sans Serif" "${UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE}" "700" + SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 $MUI_TEMP2 + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_AIDTEXT} + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP1 + + !endif + + + !ifdef UMUI_ABORTPAGE_LINK + GetDlgItem $MUI_TEMP1 $MUI_HWND ${UMUI_INTERNAL_AIDLINK} + !ifdef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGEBGIMAGE + SetCtlColors $MUI_TEMP1 "${UMUI_ABORTPAGE_LINK_COLOR}" "transparent" + !else + SetCtlColors $MUI_TEMP1 "${UMUI_ABORTPAGE_LINK_COLOR}" "${MUI_BGCOLOR}" + !endif + !endif + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 3 + EnableWindow $MUI_TEMP1 0 + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_SHOW + + LockWindow on + +!ifdef USE_MUIEx +;----------------- + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039 + ShowWindow $MUI_TEMP1 ${SW_NORMAL} +!endif +;----------------- + + GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + LockWindow off + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + !insertmacro UMUI_DELETE_PLUGINDIR + + FunctionEnd + + !undef UMUI_INTERNAL_ANUMFIELDS + !undef UMUI_INTERNAL_ANUMFIELDSLINK + !undef UMUI_INTERNAL_AFIELDTITLE + !undef UMUI_INTERNAL_AFIELDTEXT + !undef UMUI_INTERNAL_AFIELDLINK + !undef UMUI_INTERNAL_AIDTITLE + !undef UMUI_INTERNAL_AIDTEXT + !undef UMUI_INTERNAL_AIDLINK + !undef UMUI_INTERNAL_APOSLINKLEFT + +!macroend + + + + + +!macro UMUI_PAGE_INFORMATION FILE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}INFORMATIONPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_INFORMATIONPAGE_TEXT "$(UMUI_TEXT_INFORMATION_INFO_TEXT)" + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InformationPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InformationLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro UMUI_FUNCTION_INFORMATIONPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InformationPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InformationLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET UMUI_INFORMATIONPAGE_TEXT + !insertmacro MUI_UNSET UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT + + !verbose pop + +!macroend + + +!macro UMUI_UNPAGE_INFORMATION FILE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro UMUI_PAGE_INFORMATION "${FILE}" + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + + +!macro UMUI_FUNCTION_INFORMATIONPAGE PRE LEAVE + + Function "${PRE}" + + ; IF setup cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} + + !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_TEXT_INFORMATION_TITLE)" "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_INFORMATION_SUBTITLE)" + + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_INFORMATIONPAGE_INI}" "Information.ini" + + SetOutPath $PLUGINSDIR + File "${FILE}" + + ; search file names by removing characters before back-slash + ; $MUI_TEMP1 : file name + ; $R0 : character to read + ; $0 : seek + Push $R0 + Push $0 + + StrLen $0 "${FILE}" + + loopfile: + IntOp $0 $0 - 1 + StrCmp $0 '0' endfile + StrCpy $R0 "${FILE}" 1 $0 + StrCmp $R0 '\' endfile + Goto loopfile + endfile: + StrCpy $MUI_TEMP1 "${FILE}" "" $0 + + StrCpy $R0 $MUI_TEMP1 1 + StrCmp $R0 '\' 0 +2 + StrCpy $MUI_TEMP1 $MUI_TEMP1 "" 1 + + Pop $0 + Pop $R0 + + ; Determine the file name based on the current language + ; if '*' was used in the file name, it will be replaced by the $LANGUAGE + !insertmacro UMUI_STRREPLACE $MUI_TEMP2 "*" "$LANGUAGE" $MUI_TEMP1 + IfFileExists '$PLUGINSDIR\$MUI_TEMP2' fileFound + ClearErrors + !insertmacro UMUI_STRREPLACE $MUI_TEMP2 "*" "" $MUI_TEMP1 + IfFileExists '$PLUGINSDIR\$MUI_TEMP2' fileFound + StrCpy $MUI_TEMP2 "" + fileFound: + StrCpy $MUI_TEMP1 $MUI_TEMP2 + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !ifdef UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT + + !ifndef UMUI_USE_INSTALLOPTIONSEX + !error "The Rich Text Control that you want to use with the UMUI_USE_INSTALLOPTIONSEX define work only with InstallOptionEx but it seen that you don't use it. Use the define UMUI_USE_INSTALLOPTIONSEX" + !endif + + !insertmacro INSTALLOPTIONS_WRITE "Information.ini" "Field 2" Type "RichText" + + StrCmp $MUI_TEMP1 "" fileNotFound + !insertmacro INSTALLOPTIONS_WRITE "Information.ini" "Field 2" State '$PLUGINSDIR\$MUI_TEMP1' + + !insertmacro INSTALLOPTIONS_WRITE "Information.ini" "Field 2" Notify ONCLICK + + !else + + StrCmp $MUI_TEMP1 "" fileNotFound + + ; $MUI_TEMP1 : txt file + ; $MUI_TEMP2 : ini file + ; $R0 : text read on one line + ; $R1 : test if the end of line is $\r$\n + ; $0 : 1 if UTF16LE, 0 if ANSI + + Push $R1 + Push $R0 + Push $0 + + FlushINI "$PLUGINSDIR\Information.ini" + + ClearErrors + !ifdef NSIS_UNICODE + !insertmacro UMUI_FILE_IS_UTF16LE "$PLUGINSDIR\$MUI_TEMP1" $0 + !endif + IfErrors doneWrite + + FileOpen $MUI_TEMP1 "$PLUGINSDIR\$MUI_TEMP1" r + IfErrors 0 +2 + Abort + FileOpen $MUI_TEMP2 "$PLUGINSDIR\Information.ini" a + IfErrors 0 +2 + Abort + !ifdef NSIS_UNICODE + FileSeek $MUI_TEMP2 -4 END + FileWriteUTF16LE $MUI_TEMP2 "$\"" + !else + FileSeek $MUI_TEMP2 -2 END + FileWrite $MUI_TEMP2 "$\"" + !endif + IfErrors doneWrite + + loopWrite: + !ifdef NSIS_UNICODE + StrCmp $0 1 0 +3 ; if UTF16LE + FileReadUTF16LE $MUI_TEMP1 $R0 + Goto +2 + !endif + FileRead $MUI_TEMP1 $R0 + IfErrors doneWrite ; if End Of File + + StrCpy $R1 "$R0" "" -1 + StrCmp $R1 $\n 0 write + StrCpy $R0 "$R0" -1 + StrCpy $R1 "$R0" "" -1 + StrCmp $R1 $\r 0 +2 + StrCpy $R0 "$R0" -1 + StrCpy $R0 "$R0\r\n" + + write: + !ifdef NSIS_UNICODE + FileWriteUTF16LE $MUI_TEMP2 "$R0" + !else + FileWrite $MUI_TEMP2 "$R0" + !endif + Goto loopWrite + doneWrite: + !ifdef NSIS_UNICODE + FileWriteUTF16LE $MUI_TEMP2 "$\"" + !else + FileWrite $MUI_TEMP2 "$\"" + !endif + + FileClose $MUI_TEMP1 + FileClose $MUI_TEMP2 + ClearErrors + + Pop $0 + Pop $R0 + Pop $R1 + + !endif + + fileNotFound: + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Information.ini" "Field 1" "Text" "UMUI_INFORMATIONPAGE_TEXT" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_DISPLAY "Information.ini" + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + !ifdef UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "Information.ini" "Settings" Notify + StrCmp $MUI_TEMP1 "ONNEXT" +2 0 + Abort + + !endif + + FunctionEnd + +!macroend + +!macro UMUI_FILE_IS_UTF16LE FILE RESULT_VAR + Push $2 + Push $1 + + StrCpy ${RESULT_VAR} 0 ; is not UFT16LE + FileOpen $2 "${FILE}" r + FileReadByte $2 $1 + IntCmpU $1 0xFF "" doneUTF16LE doneUTF16LE + FileReadByte $2 $1 + IntCmpU $1 0xFE "" doneUTF16LE doneUTF16LE + StrCpy ${RESULT_VAR} 1 ; is UFT16LE + doneUTF16LE: + FileClose $2 + + Pop $1 + Pop $2 +!macroend + + + +!macro UMUI_PAGE_ADDITIONALTASKS ADDTASKS_FUNC + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}ADDITIONALTASKSPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_ADDITIONALTASKSPAGE_TEXT_TOP "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ADDITIONALTASKS_INFO_TEXT)" + + !ifndef UMUI_VAR_UMUI_TEMP3 + Var UMUI_TEMP3 + !define UMUI_VAR_UMUI_TEMP3 + !endif + + !ifndef UMUI_VAR_UMUI_TEMP4 + Var UMUI_TEMP4 + !define UMUI_VAR_UMUI_TEMP4 + !endif + + !ifdef UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME + !ifndef UMUI_ADDITIONALTASKS_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_ADDITIONALTASKS_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME, the UMUI_ADDITIONALTASKS_REGISTRY_ROOT & UMUI_ADDITIONALTASKS_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_ADDITIONALTASKS_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_ADDITIONALTASKS_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME, the UMUI_ADDITIONALTASKS_REGISTRY_ROOT & UMUI_ADDITIONALTASKS_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AdditionalTasksPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AdditionalTasksLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro UMUI_FUNCTION_ADDITIONALTASKSPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AdditionalTasksPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AdditionalTasksLeave_${MUI_UNIQUEID} + + !undef UMUI_ADDITIONALTASKSPAGE_TEXT_TOP + + !verbose pop + +!macroend + +!macro UMUI_UNPAGE_ADDITIONALTASKS ADDTASKS_FUNC + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro UMUI_PAGE_ADDITIONALTASKS ${ADDTASKS_FUNC} + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + +!macro UMUI_FUNCTION_ADDITIONALTASKSPAGE PRE LEAVE + + Function "${PRE}" + + ; Bodenseematze-2016-09-15: missing PRE-Function support added: + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_TEXT_ADDITIONALTASKS_TITLE)" "$(UMUI_TEXT_ADDITIONALTASKS_SUBTITLE)" + + IfFileExists "$PLUGINSDIR\AdditionalTasks${ADDTASKS_FUNC}.ini" alreadyExists + + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_ADDITIONALTASKSPAGE_INI}" "AdditionalTasks${ADDTASKS_FUNC}.ini" + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AdditionalTasks${ADDTASKS_FUNC}.ini" "Field 1" "Text" "UMUI_ADDITIONALTASKSPAGE_TEXT_TOP" + + StrCpy $UMUI_TEMP3 1 ; number of field + StrCpy $UMUI_TEMP4 24 ; height of all fields + + StrCpy $MUI_TEMP1 "AdditionalTasks${ADDTASKS_FUNC}.ini" ; name of the ini file + Push $MUI_TEMP1 + + Call "${ADDTASKS_FUNC}" + + ; IF page skipped save + !ifdef UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME + !insertmacro UMUI_INTERNAL_ADDITIONALTASKSPAGE_ADDPARAMTOSAVETOREGISTRY + !endif + + alreadyExists: + + ; IF setup cancelled or setuptype choosen + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MINIMAL}|${UMUI_STANDARD}|${UMUI_COMPLETE}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_DISPLAY "AdditionalTasks${ADDTASKS_FUNC}.ini" + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro INSTALLOPTIONS_READ $UMUI_TEMP3 "AdditionalTasks${ADDTASKS_FUNC}.ini" "Settings" NumFields + StrCpy $UMUI_TEMP4 1 ;init at 1 because of the label text top + + ;do + loop: + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 1 + + ;get task ID + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AdditionalTasks${ADDTASKS_FUNC}.ini" "Field $UMUI_TEMP4" TaskID + ;if field is not a CheckBox or a RadioButton break + StrCmp $MUI_TEMP1 "" endloop 0 + + ;get task State + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AdditionalTasks${ADDTASKS_FUNC}.ini" "Field $UMUI_TEMP4" State + ;save task State + !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "Task $MUI_TEMP1" State "$MUI_TEMP2" + + endloop: + ;while $UMUI_TEMP4 < $UMUI_TEMP3 + IntCmp $UMUI_TEMP4 $UMUI_TEMP3 0 loop 0 + + ClearErrors + + ;save into the registery + !ifdef UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME + !insertmacro UMUI_INTERNAL_ADDITIONALTASKSPAGE_ADDPARAMTOSAVETOREGISTRY + !endif + + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + FunctionEnd + +!macroend + +!macro UMUI_INTERNAL_ADDITIONALTASKSPAGE_ADDPARAMTOSAVETOREGISTRY + + Push $R9 + + !insertmacro INSTALLOPTIONS_READ $UMUI_TEMP3 "AdditionalTasksList.ini" "Settings" NumTasks + StrCpy $UMUI_TEMP4 0 ;init at 1 because the label text top + StrCpy $R9 "" + + ;do + loops: + + ;get task ID + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AdditionalTasksList.ini" "$UMUI_TEMP4" TaskID + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AdditionalTasksList.ini" "Task $MUI_TEMP1" State + + StrCpy $R9 "$R9|$MUI_TEMP1=$MUI_TEMP2" + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 1 + + ;while $UMUI_TEMP4 < $UMUI_TEMP3 + IntCmp $UMUI_TEMP4 $UMUI_TEMP3 0 loops 0 + + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_ADDITIONALTASKS_REGISTRY_ROOT} "${UMUI_ADDITIONALTASKS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" "$R9" + + Pop $R9 + + ClearErrors + +!macroend + +!macro UMUI_INTERNAL_ADDITIONALTASKSPAGE_REGISTRY_SET_STATE ID DEFSTATE + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifdef UMUI_UNIQUEID + !undef UMUI_UNIQUEID + !endif + + !define UMUI_UNIQUEID ${__LINE__} + + ;Search in the registery + !ifdef UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME + Push $0 + Push $1 + Push $2 + Push $3 + Push $4 + + ReadRegStr $0 ${UMUI_ADDITIONALTASKS_REGISTRY_ROOT} "${UMUI_ADDITIONALTASKS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" + StrCmp $0 "" end${UMUI_UNIQUEID} + + ;search the state of the ID + ClearErrors + + StrCpy $4 "|${ID}=" ; string to search + StrLen $3 $4 ; len of the task to found + + loop${UMUI_UNIQUEID}: + StrCpy $2 $0 $3 + + StrCmp $2 $4 found${UMUI_UNIQUEID} 0 + StrLen $5 $0 + IntCmp $5 $3 end${UMUI_UNIQUEID} end${UMUI_UNIQUEID} 0 ;if there is not suffitiently char end + StrCpy $0 $0 "" 1 + Goto loop${UMUI_UNIQUEID} + + found${UMUI_UNIQUEID}: + StrCpy $2 $0 1 $3 + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "0" + StrCmp $2 1 0 end${UMUI_UNIQUEID} + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "1" + + end${UMUI_UNIQUEID}: + ClearErrors + + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Pop $0 + !endif + + !undef UMUI_UNIQUEID + + !verbose pop + +!macroend + + + + + +!macro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL STR + + !verbose push + !verbose ${MUI_VERBOSE} + + Pop $MUI_TEMP1 + Pop $MUI_TEMP2 + + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "Label" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "${STR}" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "5" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-5" + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 6 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" + + Push $0 + Push $1 + Push $2 + Push $3 + + !ifdef UMUI_UNIQUEID + !undef UMUI_UNIQUEID + !endif + + !define UMUI_UNIQUEID ${__LINE__} + + StrCpy $0 "${STR}" + StrCpy $2 0 + StrCpy $3 0 + + loop${UMUI_UNIQUEID}: + StrCpy $1 $0 4 + IntOp $2 $2 + 1 + + StrCmp $1 "" end${UMUI_UNIQUEID} 0 + + StrCmp $1 "\r\n" 0 +3 ; a new line if \n\r appear + IntOp $3 $3 + 1 + StrCpy $2 0 + + StrCmp $2 75 0 +3 ; a new line if character number on this line is > 75 + IntOp $3 $3 + 1 + StrCpy $2 0 + + StrCpy $0 $0 "" 1 + Goto loop${UMUI_UNIQUEID} + end${UMUI_UNIQUEID}: + + !undef UMUI_UNIQUEID + + IntOp $MUI_TEMP2 $3 * 8 + + Pop $3 + Pop $2 + Pop $1 + Pop $0 + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 12 + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + $MUI_TEMP2 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" + + !ifndef UMUI_NEWGROUP + !define UMUI_NEWGROUP + !endif + + ClearErrors + + Push $MUI_TEMP2 + Push $MUI_TEMP1 + + !verbose pop + +!macroend + +!macro UMUI_ADDITIONALTASKSPAGE_ADD_TASK ID DEFSTATE STR + + !verbose push + !verbose ${MUI_VERBOSE} + + Pop $MUI_TEMP1 + Pop $MUI_TEMP2 + + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "CheckBox" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "${STR}" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "${DEFSTATE}" + !insertmacro UMUI_INTERNAL_ADDITIONALTASKSPAGE_REGISTRY_SET_STATE "${ID}" "${DEFSTATE}" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" TaskID "${ID}" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "10" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-10" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 12 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "$MUI_TEMP1" "Field $UMUI_TEMP3" State + !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "Task ${ID}" State "$MUI_TEMP2" + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AdditionalTasksList.ini" "Settings" NumTasks + StrCmp $MUI_TEMP2 "" 0 +2 + StrCpy $MUI_TEMP2 0 + !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "$MUI_TEMP2" TaskID "${ID}" + IntOp $MUI_TEMP2 $MUI_TEMP2 + 1 + !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "Settings" NumTasks "$MUI_TEMP2" + + ClearErrors + + Push $MUI_TEMP2 + Push $MUI_TEMP1 + + !verbose pop + +!macroend + +!macro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ID DEFSTATE STR + + !verbose push + !verbose ${MUI_VERBOSE} + + Pop $MUI_TEMP1 + Pop $MUI_TEMP2 + + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "RadioButton" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "${STR}" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "${DEFSTATE}" + !insertmacro UMUI_INTERNAL_ADDITIONALTASKSPAGE_REGISTRY_SET_STATE "${ID}" "${DEFSTATE}" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" TaskID "${ID}" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "10" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-10" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 12 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" + + !ifdef UMUI_NEWGROUP + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Flags "GROUP" + !undef UMUI_NEWGROUP + !endif + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "$MUI_TEMP1" "Field $UMUI_TEMP3" State + !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "Task ${ID}" State "$MUI_TEMP2" + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AdditionalTasksList.ini" "Settings" NumTasks + StrCmp $MUI_TEMP2 "" 0 +2 + StrCpy $MUI_TEMP2 0 + !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "$MUI_TEMP2" TaskID "${ID}" + IntOp $MUI_TEMP2 $MUI_TEMP2 + 1 + !insertmacro INSTALLOPTIONS_WRITE "AdditionalTasksList.ini" "Settings" NumTasks "$MUI_TEMP2" + + ClearErrors + + Push $MUI_TEMP2 + Push $MUI_TEMP1 + + !verbose pop + +!macroend + +!macro UMUI_ADDITIONALTASKSPAGE_ADD_EMPTYLINE + + !verbose push + !verbose ${MUI_VERBOSE} + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 6 + + !verbose pop + +!macroend + +!macro UMUI_ADDITIONALTASKSPAGE_ADD_LINE + + !verbose push + !verbose ${MUI_VERBOSE} + + Pop $MUI_TEMP1 + + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "HLine" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "5" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-5" + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 3 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" + + Push $MUI_TEMP1 + + !verbose pop + +!macroend + +; listid can be a string containing ID1|ID2|ID3 +!macro UMUI_ADDITIONALTASKS_IF_CKECKED LISTID + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifdef UMUI_UNIQUEID + !undef UMUI_UNIQUEID + !endif + + !define UMUI_UNIQUEID ${__LINE__} + + Push $0 + Push $1 + Push $2 + + StrCpy $0 "${LISTID}" ;the sources + StrCpy $1 "" ;an id + StrCpy $MUI_TEMP1 0 ; 0 = false , 1 = true + + loop${UMUI_UNIQUEID}: + ;copy one id + loopid${UMUI_UNIQUEID}: + StrCpy $2 $0 1 + StrCmp $2 "" check${UMUI_UNIQUEID} 0 + StrCpy $0 $0 "" 1 + StrCmp $2 "|" check${UMUI_UNIQUEID} 0 + StrCpy $1 "$1$2" + Goto loopid${UMUI_UNIQUEID} + check${UMUI_UNIQUEID}: + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AdditionalTasksList.ini" "Task $1" State + StrCpy $1 "" + StrCmp $MUI_TEMP1 1 endloop${UMUI_UNIQUEID} + StrCpy $MUI_TEMP1 0 + StrCmp $2 "" endloop${UMUI_UNIQUEID} loop${UMUI_UNIQUEID} + endloop${UMUI_UNIQUEID}: + + ClearErrors + + Pop $2 + Pop $1 + Pop $0 + + ; if any of VALS is checked goto done + StrCmp $MUI_TEMP1 1 0 done_${UMUI_UNIQUEID} + + !verbose pop + +!macroend + +; listid can be a string containing ID1&ID2&ID3 +!macro UMUI_ADDITIONALTASKS_IF_NOT_CKECKED LISTID + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifdef UMUI_UNIQUEID + !undef UMUI_UNIQUEID + !endif + + !define UMUI_UNIQUEID ${__LINE__} + + Push $0 + Push $1 + Push $2 + + StrCpy $0 "${LISTID}" ;the sources + StrCpy $1 "" ;an id + StrCpy $MUI_TEMP1 1 ; 0 = false , 1 = true + + loop${UMUI_UNIQUEID}: + ;copy one id + loopid${UMUI_UNIQUEID}: + StrCpy $2 $0 1 + StrCmp $2 "" check${UMUI_UNIQUEID} 0 + StrCpy $0 $0 "" 1 + StrCmp $2 "&" check${UMUI_UNIQUEID} 0 + StrCpy $1 "$1$2" + Goto loopid${UMUI_UNIQUEID} + check${UMUI_UNIQUEID}: + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AdditionalTasksList.ini" "Task $1" State + StrCpy $1 "" + StrCmp $MUI_TEMP1 0 endloop${UMUI_UNIQUEID} + StrCpy $MUI_TEMP1 1 + StrCmp $2 "" endloop${UMUI_UNIQUEID} loop${UMUI_UNIQUEID} + endloop${UMUI_UNIQUEID}: + + ClearErrors + + Pop $2 + Pop $1 + Pop $0 + + ; if any of VALS is checked goto done + StrCmp $MUI_TEMP1 0 0 done_${UMUI_UNIQUEID} + + !verbose pop + +!macroend + +!macro UMUI_ADDITIONALTASKS_ENDIF + + !verbose push + !verbose ${MUI_VERBOSE} + + done_${UMUI_UNIQUEID}: + + !undef UMUI_UNIQUEID + + !verbose pop + +!macroend + + + + +!macro UMUI_PAGE_SERIALNUMBER SERIAL_FUNC + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}SERIALNUMBERPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SERIALNUMBERPAGE_TEXT_TOP "$(UMUI_TEXT_SERIALNUMBER_INFO_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SERIALNUMBERPAGE_INVALIDATE_TEXT "$(UMUI_TEXT_SERIALNUMBER_INVALIDATE_TEXT)" + + !ifndef UMUI_VAR_UMUI_TEMP3 + Var UMUI_TEMP3 + !define UMUI_VAR_UMUI_TEMP3 + !endif + + !ifndef UMUI_VAR_UMUI_TEMP4 + Var UMUI_TEMP4 + !define UMUI_VAR_UMUI_TEMP4 + !endif + + !ifndef UMUI_VAR_UMUI_SNTEXT + Var UMUI_SNTEXT + !define UMUI_VAR_UMUI_SNTEXT + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.serialnumberPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.serialnumberLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro UMUI_FUNCTION_SERIALNUMBERPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.serialnumberPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.serialnumberLeave_${MUI_UNIQUEID} + + !undef UMUI_SERIALNUMBERPAGE_TEXT_TOP + + !verbose pop + +!macroend + +!macro UMUI_UNPAGE_SERIALNUMBER SERIAL_FUNC + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro UMUI_PAGE_SERIALNUMBER ${SERIAL_FUNC} + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + +!macro UMUI_FUNCTION_SERIALNUMBERPAGE PRE LEAVE + + Function "${PRE}" + + ; IF setup cancelled or setuptype choosen + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} + + ; Bodenseematze-2016-09-15: missing PRE-Function support added: + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_TEXT_SERIALNUMBER_TITLE)" "$(UMUI_TEXT_SERIALNUMBER_SUBTITLE)" + + IfFileExists "$PLUGINSDIR\SerialNumber_${SERIAL_FUNC}.ini" alreadyExists + + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_SERIALNUMBERPAGE_INI}" "SerialNumber_${SERIAL_FUNC}.ini" + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SerialNumber_${SERIAL_FUNC}.ini" "Field 1" "Text" "UMUI_SERIALNUMBERPAGE_TEXT_TOP" + + StrCpy $MUI_TEMP1 "SerialNumber_${SERIAL_FUNC}.ini" ; name of the ini file + StrCpy $MUI_TEMP2 0 ; serials counter + StrCpy $UMUI_TEMP3 1 ; field counter + StrCpy $UMUI_TEMP4 30 ; height of all fields + + Call "${SERIAL_FUNC}" + + !insertmacro UMUI_SERIALNUMBERPAGE_APPLYFLAGS "SerialNumber_${SERIAL_FUNC}.ini" + + !insertmacro UMUI_SERIALNUMBERPAGE_SAVE "SerialNumber_${SERIAL_FUNC}.ini" + + alreadyExists: + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_DISPLAY "SerialNumber_${SERIAL_FUNC}.ini" + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} + + !ifdef UMUI_USE_INSTALLOPTIONSEX + + Push $0 + Push $1 + Push $2 + Push $3 + Push $4 + + ; $MUI_TEMP1 : Current field number + ; $0 : max lenght + ; $1 : state of the current field + ; $2 : lenght of the state + ; $3 : back/next field number + ; $4 : HWND of the back/next field + + ClearErrors + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "SerialNumber_${SERIAL_FUNC}.ini" "Settings" State + StrCmp $MUI_TEMP1 "0" ok 0 + + !insertmacro INSTALLOPTIONS_READ $1 "SerialNumber_${SERIAL_FUNC}.ini" "Field $MUI_TEMP1" State + + StrCmp $1 "" 0 next + + !insertmacro INSTALLOPTIONS_READ $3 "SerialNumber_${SERIAL_FUNC}.ini" "Field $MUI_TEMP1" BackField + IfErrors abort + + !insertmacro INSTALLOPTIONS_READ $4 "SerialNumber_${SERIAL_FUNC}.ini" "Field $3" HWND + IfErrors abort + + !insertmacro UMUI_INSTALLOPTIONSEX_SETFOCUS $4 + + next: + + !insertmacro INSTALLOPTIONS_READ $0 "SerialNumber_${SERIAL_FUNC}.ini" "Field $MUI_TEMP1" MaxLen + IfErrors abort + + StrLen $2 $1 + StrCmp $2 $0 0 abort + + !insertmacro INSTALLOPTIONS_READ $3 "SerialNumber_${SERIAL_FUNC}.ini" "Field $MUI_TEMP1" NextField + IfErrors abort + + !insertmacro INSTALLOPTIONS_READ $4 "SerialNumber_${SERIAL_FUNC}.ini" "Field $3" HWND + IfErrors abort + + !insertmacro UMUI_INSTALLOPTIONSEX_SETFOCUS $4 + + abort: + + ClearErrors + + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Pop $0 + + Abort + + ok: + + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Pop $0 + + !endif + + !insertmacro UMUI_SERIALNUMBERPAGE_APPLYFLAGS "SerialNumber_${SERIAL_FUNC}.ini" + + !insertmacro UMUI_SERIALNUMBERPAGE_SAVE "SerialNumber_${SERIAL_FUNC}.ini" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + !insertmacro UMUI_ENDIF_INSTALLFLAG + + FunctionEnd + +!macroend + + +!macro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_OWNER VAR + ClearErrors + ; Windows NT + ReadRegStr $${VAR} HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "RegisteredOwner" + IfErrors 0 +2 + ; Windows 9x + ReadRegStr $${VAR} HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion" "RegisteredOwner" + ClearErrors +!macroend + +!macro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_ORGANIZATION VAR + ClearErrors + ; Windows NT + ReadRegStr $${VAR} HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "RegisteredOrganization" + IfErrors 0 +2 + ; Windows 9x + ReadRegStr $${VAR} HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion" "RegisteredOrganization" + ClearErrors +!macroend + + + +!macro UMUI_SERIALNUMBERPAGE_APPLYFLAGS FILE + + Push $0 + Push $1 + Push $2 + Push $4 + Push $6 + Push $7 + Push $8 + Push $9 + + ; $MUI_TEMP2 : serials line number + ; $0 : System::Call return success if ok + ; $1 : curent ID + ; $2 : curent FLAGS + ; $4 : the curent serial number + ; $6 : one portion of the $5 serial number + ; $7 : Is FLAGS == "TOLOWER" + ; $8 : Is FLAGS == "TOUPPER" + ; $9 : current field + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "${FILE}" Settings NumTasks + + StrCpy $4 0 + + loopApplyFlags: + + ClearErrors + + IntOp $4 $4 + 1 + IntCmp $4 $MUI_TEMP2 0 0 endApplyFlags + + !insertmacro INSTALLOPTIONS_READ $1 "${FILE}" $4 SerialID + !insertmacro INSTALLOPTIONS_READ $9 "${FILE}" $4 FirstField + !insertmacro INSTALLOPTIONS_READ $2 "${FILE}" $4 FLAGS + + !insertmacro UMUI_STRCOUNT "NUMBERS" "$2" + Pop $7 + IntCmp $7 0 0 loopApplyFlags loopApplyFlags + + !insertmacro UMUI_STRCOUNT "TOLOWER" "$2" + Pop $7 + !insertmacro UMUI_STRCOUNT "TOUPPER" "$2" + Pop $8 + + ;if $7 = $8 = 0 goto end + IntCmp $7 0 0 +2 +2 + IntCmp $8 0 loopApplyFlags 0 0 + + ;if $7 != 0 && $8 != 0 goto end + IntCmp $7 0 +2 0 0 + IntCmp $8 0 0 loopApplyFlags loopApplyFlags + + loopSerialApplyFlags: + !insertmacro INSTALLOPTIONS_READ $6 "${FILE}" "Field $9" State + + ;if flag is lower + IntCmp $7 0 +2 0 0 + ;then + System::Call "User32::CharLower(t r6 r6)i" + ;endif + + ;if flag is upper + IntCmp $8 0 +2 0 0 + ;then + System::Call "User32::CharUpper(t r6 r6)i" + ;endif + + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field $9" State $6 + + !insertmacro INSTALLOPTIONS_READ $0 "${FILE}" "Field $9" HWND + IfErrors +2 0 + SendMessage $0 ${WM_SETTEXT} 0 "STR:$6" + ClearErrors + + !insertmacro INSTALLOPTIONS_READ $9 "${FILE}" "Field $9" NextField + IfErrors 0 loopSerialApplyFlags + + Goto loopApplyFlags + endApplyFlags: + + Pop $9 + Pop $8 + Pop $7 + Pop $6 + Pop $4 + Pop $2 + Pop $1 + Pop $0 + +!macroend + + + +!macro UMUI_SERIALNUMBERPAGE_SAVE FILE + + Push $0 + Push $1 + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + Push $7 + Push $8 + Push $9 + + ; $MUI_TEMP2 : serials line number + ; $0 : temp var + ; $1 : curent ID + ; $2 : curent FLAGS + ; $3 : temp var + ; $4 : the curent serial number + ; $5 : full serial number + ; $6 : one portion of the $5 serial number + ; $7 : temp var + ; $8 : Is FLAGS == "NODASHS" + ; $9 : current field + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "${FILE}" Settings NumTasks + + StrCpy $4 0 + + loopSave: + + ClearErrors + StrCpy $5 "" + + IntOp $4 $4 + 1 + IntCmp $4 $MUI_TEMP2 0 0 endSave + + !insertmacro INSTALLOPTIONS_READ $1 "${FILE}" $4 SerialID + !insertmacro INSTALLOPTIONS_READ $9 "${FILE}" $4 FirstField + !insertmacro INSTALLOPTIONS_READ $2 "${FILE}" $4 FLAGS + + !insertmacro UMUI_STRCOUNT "NODASHS" "$2" + Pop $8 + + loopSerial: + + !insertmacro INSTALLOPTIONS_READ $6 "${FILE}" "Field $9" State + + ;if $8 != 0 + IntCmp $8 0 +3 0 0 + ;then + StrCpy $5 "$5$6" + Goto +2 + ;else + StrCpy $5 "$5-$6" + ;endif + + !insertmacro INSTALLOPTIONS_READ $9 "${FILE}" "Field $9" NextField + StrCmp $9 "" 0 loopSerial + ClearErrors + + StrCpy $0 $5 1 ; get first char + StrCmp $0 "-" 0 +2 + StrCpy $5 $5 "" 1 + + !insertmacro INSTALLOPTIONS_WRITE "SerialNumberList.ini" "Serial $1" SN "$5" + + !insertmacro INSTALLOPTIONS_READ $3 "SerialNumberList.ini" "Serial $1" REGISTRY_VALUENAME + IfErrors loopSave 0 + + !insertmacro INSTALLOPTIONS_READ $0 "SerialNumberList.ini" "Serial $1" REGISTRY_ROOT + !insertmacro INSTALLOPTIONS_READ $7 "SerialNumberList.ini" "Serial $1" REGISTRY_KEY + + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY "$0" "$7" "$3" "$5" + + Goto loopSave + endSave: + + Pop $9 + Pop $8 + Pop $7 + Pop $6 + Pop $5 + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Pop $0 + +!macroend + + +!macro UMUI_SERIALNUMBERPAGE_ADD_LINE + + !verbose push + !verbose ${MUI_VERBOSE} + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 6 + + !verbose pop + +!macroend + +!macro UMUI_SERIALNUMBERPAGE_ADD_HLINE + + !verbose push + !verbose ${MUI_VERBOSE} + + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "HLine" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "5" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-1" + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 3 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 4 + + !verbose pop + +!macroend + +!macro UMUI_SERIALNUMBERPAGE_ADD_LABEL TEXT + + !verbose push + !verbose ${MUI_VERBOSE} + + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "Label" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "${TEXT}" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "5" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "-5" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 10 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" + + !verbose pop + +!macroend + +; ID: A unique identifiant for this serial number +; STR: 555 for 3 inputs of 5 characters each +; FLAGS: "", NODASHS, TOUPPER, TOLOWER, NUMBERS, CANBEEMPTY +; DEFAULT: XXXXX-XXXXX-XXXXX OR XXXXXXXXXXXXXXX +; WIDTH: The initial width +!macro UMUI_SERIALNUMBERPAGE_CREATE ID STR FLAGS DEFAULT TEXT WIDTH + + !define UMUI_UNIQUEIDSN ${__LINE__} + + Push $0 + Push $1 + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + Push $7 + Push $8 + Push $9 + Push $R0 + + ; $MUI_TEMP1 : name of the ini file + ; $MUI_TEMP2 : serials line counter + ; $UMUI_TEMP3 : field counter for all the page + ; $UMUI_TEMP4 : current height of all fields + ; $0 : source str (555 for 3 inputs of 5 characters each) + ; $1 : temp var + ; $2 : one of the $0 numbers + ; $3 : the current width + ; $4 : the curent serial value + ; $5 : the next chars of the curent serial value + ; $6 : one portion of the $5 serial number + ; $7 : temp var + ; $8 : Is FLAGS == "NUMBERS" + ; $9 : first field + ; $R0 : Is FLAGS == "CANBEEMPTY" + + StrCpy $0 "${STR}" + StrCpy $7 0 + StrCpy $3 "${WIDTH}" + + !ifdef UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME + !ifndef UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME, the UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT & UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME, the UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT & UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + ClearErrors + ReadRegStr $5 "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT}" "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY}" "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME}" + IfErrors 0 +2 + StrCpy $5 "${DEFAULT}" + ClearErrors + !else + StrCpy $5 "${DEFAULT}" + !endif + + StrCpy $4 $5 + + !insertmacro UMUI_STRCOUNT "NUMBERS" "${FLAGS}" + Pop $8 + !insertmacro UMUI_STRCOUNT "CANBEEMPTY" "${FLAGS}" + Pop $R0 + + ;foreach number of $0 AS $2 + loop1${UMUI_UNIQUEIDSN}: + StrCpy $2 $0 1 ; Get the next source char + + StrCmp $2 "" done1${UMUI_UNIQUEIDSN} ; Abort when none left + StrCpy $0 $0 "" 1 ; Remove it from the source + + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 + + ; add the on text change notify if installoptionsex + !ifdef UMUI_USE_INSTALLOPTIONSEX + StrLen $1 "${STR}" + StrCmp $1 1 endTextChange${UMUI_UNIQUEIDSN} 0 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Notify ONTEXTCHANGE + endTextChange${UMUI_UNIQUEIDSN}: + !endif + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "text" + + changeLine${UMUI_UNIQUEIDSN}: + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "$3" + + ;if $2 = 0 + IntCmp $2 0 0 +3 +3 + ;then + StrCpy $3 -1 + Goto +3 + ;else + IntOp $1 $2 * 7 + IntOp $3 $1 + $3 + ;endif + +!ifdef USE_MUIEx | UMUI_ULTRAMODERN_SMALL +;---------------- + IntCmp $3 300 +4 +4 0 +!else +;---------------- + IntCmp $3 315 +4 +4 0 +!endif +;---------------- + StrCpy $3 ${WIDTH} + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 14 + Goto changeLine${UMUI_UNIQUEIDSN} + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "$3" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 12 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" + IntOp $UMUI_TEMP4 $UMUI_TEMP4 - 12 + + ;if $2 = 0 ; no limit + IntCmp $2 0 0 notnull${UMUI_UNIQUEIDSN} notnull${UMUI_UNIQUEIDSN} + ;then + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "$5" + Goto done2${UMUI_UNIQUEIDSN} + ;else + notnull${UMUI_UNIQUEIDSN}: + StrCpy $6 $5 $2 ; Get $2 next source char + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" State "$6" + + StrCpy $5 $5 "" $2 ; Remove it from the source + + ;if $5 next char is "-" remove + StrCpy $6 $5 1 ; Get the next source char + StrCmp $6 "-" 0 +2 + StrCpy $5 $5 "" 1 ; Remove it from the source + ;endif + ;endif + done2${UMUI_UNIQUEIDSN}: + + ;if $2 != 0 + IntCmp $2 0 null${UMUI_UNIQUEIDSN} 0 0 + ;then + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" MaxLen "$2" + + ;if $R0 == 0 + IntCmp $R0 0 0 endCanBeEmpty${UMUI_UNIQUEIDSN} endCanBeEmpty${UMUI_UNIQUEIDSN} + ;then + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" MinLen "$2" + ;end + endCanBeEmpty${UMUI_UNIQUEIDSN}: + + StrCpy $UMUI_SNTEXT "${TEXT}" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" ValidateText "${UMUI_SERIALNUMBERPAGE_INVALIDATE_TEXT}" + Goto endnull${UMUI_UNIQUEIDSN} + + ;else + null${UMUI_UNIQUEIDSN}: + + ;if $R0 == 0 + IntCmp $R0 0 0 endCanBeEmpty2${UMUI_UNIQUEIDSN} endCanBeEmpty2${UMUI_UNIQUEIDSN} + ;then + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" MinLen "1" + StrCpy $UMUI_SNTEXT "${TEXT}" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" ValidateText "${UMUI_SERIALNUMBERPAGE_INVALIDATE_TEXT}" + ;end + endCanBeEmpty2${UMUI_UNIQUEIDSN}: + + ;endif + endnull${UMUI_UNIQUEIDSN}: + + ;if $8 != 0 + IntCmp $8 0 flagNoNumbers${UMUI_UNIQUEIDSN} 0 0 + ;then + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Flags "ONLY_NUMBERS" + ;endif + flagNoNumbers${UMUI_UNIQUEIDSN}: + + ;if $7 != 0 + IntCmp $7 0 isfirst${UMUI_UNIQUEIDSN} + ;then + IntOp $1 $UMUI_TEMP3 - 2 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" BackField "$1" + Goto endfirst${UMUI_UNIQUEIDSN} + ;else + isfirst${UMUI_UNIQUEIDSN}: + StrCpy $9 $UMUI_TEMP3 + ;endif + endfirst${UMUI_UNIQUEIDSN}: + + IntOp $7 $7 + 1 + + ;if $2 == 0 done1 + IntCmp $2 0 done1${UMUI_UNIQUEIDSN} 0 0 + + ; draw "_" + StrCpy $2 $0 1 ; Get the next source char + StrCmp $2 "" done1${UMUI_UNIQUEIDSN} ; Abort when none left + + IntOp $1 $UMUI_TEMP3 + 2 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" NextField "$1" + + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "label" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "_" + IntOp $UMUI_TEMP4 $UMUI_TEMP4 - 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 10 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" + IntOp $UMUI_TEMP4 $UMUI_TEMP4 - 9 + IntOp $3 $3 + 3 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "$3" + IntOp $3 $3 + 7 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "$3" + + Goto loop1${UMUI_UNIQUEIDSN} + + done1${UMUI_UNIQUEIDSN}: + ;endforeach + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumFields "$UMUI_TEMP3" + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 15 + + ;save to list serial ini + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "$MUI_TEMP1" "Settings" NumTasks + + IntOp $MUI_TEMP2 $MUI_TEMP2 + 1 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Settings" NumTasks "$MUI_TEMP2" + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "$MUI_TEMP2" SerialID "${ID}" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "$MUI_TEMP2" FirstField "$9" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "$MUI_TEMP2" FLAGS "${FLAGS}" + + !ifdef UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME + !insertmacro INSTALLOPTIONS_WRITE "SerialNumberList.ini" "Serial ${ID}" REGISTRY_ROOT "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT}" + !insertmacro INSTALLOPTIONS_WRITE "SerialNumberList.ini" "Serial ${ID}" REGISTRY_KEY "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY}" + !insertmacro INSTALLOPTIONS_WRITE "SerialNumberList.ini" "Serial ${ID}" REGISTRY_VALUENAME "${UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME}" + !endif + + ClearErrors + + !insertmacro MUI_UNSET UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME + + !undef UMUI_UNIQUEIDSN + + Pop $R0 + Pop $9 + Pop $8 + Pop $7 + Pop $6 + Pop $5 + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Pop $0 + +!macroend + + + +!macro UMUI_SERIALNUMBERPAGE_ADD_SERIAL ID STR FLAGS DEFAULT + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro UMUI_SERIALNUMBERPAGE_CREATE "${ID}" "${STR}" "${FLAGS}" "${DEFAULT}" "${ID}" "5" + + !verbose pop + +!macroend + + +!macro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL ID STR FLAGS DEFAULT TEXT + + !verbose push + !verbose ${MUI_VERBOSE} + + ;label + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 1 + + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Type "Label" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Text "${TEXT}:" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Left "5" + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Right "78" + + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 2 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Top "$UMUI_TEMP4" + IntOp $UMUI_TEMP4 $UMUI_TEMP4 + 10 + !insertmacro INSTALLOPTIONS_WRITE "$MUI_TEMP1" "Field $UMUI_TEMP3" Bottom "$UMUI_TEMP4" + IntOp $UMUI_TEMP4 $UMUI_TEMP4 - 12 + + ;inputs + !insertmacro UMUI_SERIALNUMBERPAGE_CREATE "${ID}" "${STR}" "${FLAGS}" "${DEFAULT}" "${TEXT}" "79" + + !verbose pop + +!macroend + + +!macro UMUI_SERIALNUMBER_GET ID VAR + + !insertmacro INSTALLOPTIONS_READ $${VAR} "SerialNumberList.ini" "Serial ${ID}" SN + ClearErrors + +!macroend + + + + + + + +!macro UMUI_PAGE_ALTERNATIVESTARTMENU ID VAR + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}STARTMENUPAGE + !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}ALTERNATIVESTARTMENUPAGE + + !define /IfNDef MUI_STARTMENUPAGE_DEFAULTFOLDER "$(^Name)" + !insertmacro MUI_DEFAULT_IOCONVERT MUI_STARTMENUPAGE_TEXT_TOP "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_TOP)" + !insertmacro MUI_DEFAULT_IOCONVERT MUI_STARTMENUPAGE_TEXT_CHECKBOX "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_CHECKBOX)" + + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_STARTMENUPAGE_SHELL_VAR_CONTEXT_TITLE "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_STARTMENUPAGE_TEXT_FOR_ALL_USERS "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_STARTMENUPAGE_TEXT_FOR_THE_CURRENT_USER "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + + !define MUI_STARTMENUPAGE_VARIABLE "${VAR}" + !define "MUI_STARTMENUPAGE_${ID}_VARIABLE" "${MUI_STARTMENUPAGE_VARIABLE}" + !define "MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" + + !ifndef MUI_STARTMENUPAGE_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For MUI_STARTMENUPAGE_REGISTRY_VALUENAME, the MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef MUI_STARTMENUPAGE_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define MUI_STARTMENUPAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For MUI_STARTMENUPAGE_REGISTRY_VALUENAME, the MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT" "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" + + !endif + + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW + !ifndef UMUI_USE_INSTALLOPTIONSEX + !error "You want to use a TreeView in the ALTERNATIVESTARTMENU page but you don't use InstallOptionEx. This page won't work without the UMUI_USE_INSTALLOPTIONSEX define." + !endif + !endif + + !ifndef MUI_VAR_HWND + Var MUI_HWND + !define MUI_VAR_HWND + !endif + + !ifndef UMUI_VAR_UMUI_TEMP3 + Var UMUI_TEMP3 + !define UMUI_VAR_UMUI_TEMP3 + !endif + + !ifndef UMUI_VAR_UMUI_TEMP4 + Var UMUI_TEMP4 + !define UMUI_VAR_UMUI_TEMP4 + !endif + + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT + !ifndef UMUI_VAR_UMUI_TEMP5 + Var UMUI_TEMP5 + !define UMUI_VAR_UMUI_TEMP5 + !endif + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AlternativeStartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AlternativeStartmenuLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro UMUI_FUNCTION_ALTERNATIVESTARTMENUPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AlternativeStartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AlternativeStartmenuLeave_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.AlternativeStartmenuCreateList_${MUI_UNIQUEID} + + !undef MUI_STARTMENUPAGE_VARIABLE + !undef MUI_STARTMENUPAGE_TEXT_TOP + !undef MUI_STARTMENUPAGE_TEXT_CHECKBOX + !undef MUI_STARTMENUPAGE_DEFAULTFOLDER + + !undef UMUI_STARTMENUPAGE_SHELL_VAR_CONTEXT_TITLE + !undef UMUI_STARTMENUPAGE_TEXT_FOR_ALL_USERS + !undef UMUI_STARTMENUPAGE_TEXT_FOR_THE_CURRENT_USER + + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_NODISABLE + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_ROOT + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_KEY + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_VALUENAME + + !insertmacro MUI_UNSET UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT + !insertmacro MUI_UNSET UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW + + !verbose pop + +!macroend + + +!macro UMUI_FUNCTION_ALTERNATIVESTARTMENUPAGE PRE LEAVE CREATELIST + + !ifdef MUI_STARTMENUPAGE_NODISABLE + !define UMUI_INTERNAL_ASMGOUPBOXFIELD 4 + !define UMUI_INTERNAL_ASMALLOPTFIELD 5 + !define UMUI_INTERNAL_ASMCURRENTOPTFIELD 6 + !else + !define UMUI_INTERNAL_ASMGOUPBOXFIELD 5 + !define UMUI_INTERNAL_ASMALLOPTFIELD 6 + !define UMUI_INTERNAL_ASMCURRENTOPTFIELD 7 + !endif + + Function "${PRE}" + + StrCpy $UMUI_TEMP4 "" + + !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME + + Push $R0 + Push $R1 + Push $R2 + + ClearErrors + + StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 endreg + + ReadRegStr $MUI_TEMP1 ${MUI_STARTMENUPAGE_REGISTRY_ROOT} "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" + + StrCmp $MUI_TEMP1 "" endreg + StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" $MUI_TEMP1 + StrLen $R0 $MUI_TEMP1 + StrLen $R1 "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + + IntCmp $R0 $R1 endreg endreg 0 + ;delete de default folder from the path if it is in. + IntOp $R0 $R0 - $R1 + IntOp $R0 $R0 - 1 + + StrCpy $UMUI_TEMP4 $MUI_TEMP1 $R0 + + ;Convert this Folder path into a IOEx string + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW + !insertmacro UMUI_STRREPLACE $UMUI_TEMP4 "\" "{" $UMUI_TEMP4 + !insertmacro UMUI_STRCOUNT "{" $UMUI_TEMP4 + Pop $R0 + + loopadd: + StrCmp $R0 "0" endreg + StrCpy $UMUI_TEMP4 "$UMUI_TEMP4}" + + IntOp $R0 $R0 - 1 + Goto loopadd + !endif + + endreg: + + Pop $R2 + Pop $R1 + Pop $R0 + + !endif + + StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 +2 + StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + + !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME ; IF page skipped save + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${MUI_STARTMENUPAGE_REGISTRY_ROOT} "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" "${MUI_STARTMENUPAGE_VARIABLE}" + !endif + + ; IF setup cancelled or steuptype complete + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MINIMAL}|${UMUI_STANDARD}|${UMUI_COMPLETE}|${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE) + + ; disable sellvarcontext radio buttons if no admin rights + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT + UserInfo::GetAccountType + Pop $UMUI_TEMP5 + StrCmp $UMUI_TEMP5 "Admin" endcheck + StrCmp $UMUI_TEMP5 "User" endcheck + StrCmp $UMUI_TEMP5 "Power" 0 +3 + StrCpy $UMUI_TEMP5 "Admin" + Goto endcheck + StrCmp $UMUI_TEMP5 "Guest" 0 +3 + StrCpy $UMUI_TEMP5 "User" + Goto endcheck + ;if error or win 95 + StrCpy $UMUI_TEMP5 "Admin" + + endcheck: + !endif + + IfFileExists "$PLUGINSDIR\AlternativeStartMenu${ID}.ini" alreadyExists + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_ALTERNATIVESTARTMENUPAGE_INI}" "AlternativeStartMenu${ID}.ini" + + ; serach all directory and add it in the listbox/treeview + + ;Save the current ShellVarContext + !insertmacro UMUI_GETSHELLVARCONTEXT + Pop $MUI_TEMP2 + + ; In treeview mod, the create list function directly write into the ini because of the string lengh limit to 1024 characters + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW + + FlushINI "$PLUGINSDIR\AlternativeStartMenu${ID}.ini" + + FileOpen $MUI_TEMP1 "$PLUGINSDIR\AlternativeStartMenu${ID}.ini" a + + ;search the last "ListItems=" in the ini and seek just after + Push $R0 + + StrCpy $UMUI_TEMP3 0 + seekloop: + IntOp $UMUI_TEMP3 $UMUI_TEMP3 - 1 + FileSeek $MUI_TEMP1 $UMUI_TEMP3 END + !ifdef NSIS_UNICODE + FileReadUTF16LE $MUI_TEMP1 $R0 10 + !else + FileRead $MUI_TEMP1 $R0 10 + !endif + StrCmp $R0 "ListItems=" 0 seekloop + !ifdef NSIS_UNICODE + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 20 + !else + IntOp $UMUI_TEMP3 $UMUI_TEMP3 + 10 + !endif + FileSeek $MUI_TEMP1 $UMUI_TEMP3 END + + Pop $R0 + + Push 0 + Push "" + + Call ${CREATELIST} + + FileClose $MUI_TEMP1 + + !else + + Call ${CREATELIST} + + Pop $MUI_TEMP1 + + !endif + + ;Save the saved ShellVarContext + StrCmp $MUI_TEMP2 "current" 0 +3 + SetShellVarContext current + Goto +2 + SetShellVarContext all + + ClearErrors + + + ;end search all directory and add it in the listbox/treeview + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AlternativeStartMenu${ID}.ini" "Field 1" "Text" "MUI_STARTMENUPAGE_TEXT_TOP" + + ;if in the old install the startmenu folder was disabled + StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" ">" 0 +5 + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 2" State "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 2" Flags "DISABLED" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" Flags "NOTIFY|DISABLED" + Goto +3 + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 2" State "${MUI_STARTMENUPAGE_VARIABLE}" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" State "$UMUI_TEMP4" + + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" Type "TreeView" + !endif + + ; we write only if it was not already doing by the createlist function (in case of the list lenght is > to 1024 character) + !ifndef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" ListItems "$MUI_TEMP1" + !endif + + !ifndef MUI_STARTMENUPAGE_NODISABLE + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" Bottom -12 + + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Type "CheckBox" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AlternativeStartMenu${ID}.ini" "Field 4" "Text" "MUI_STARTMENUPAGE_TEXT_CHECKBOX" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Left 0 + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Right -1 + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Top -12 + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Bottom -1 + + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" State 0 + + StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" ">" 0 +2 + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" State 1 + + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Flags NOTIFY + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" Notify ONCLICK + + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Settings" NumFields 4 + !endif + + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT + + !ifdef MUI_STARTMENUPAGE_NODISABLE + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" "Bottom" "-40" + !else + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" "Top" "-52" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 4" "Bottom" "-40" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" "Bottom" "-53" + !endif + + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Type" "GroupBox" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Text" "UMUI_STARTMENUPAGE_SHELL_VAR_CONTEXT_TITLE" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Left" "70" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Right" "-70" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Top" "-40" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMGOUPBOXFIELD}" "Bottom" "-1" + + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Type" "RadioButton" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Text" "UMUI_STARTMENUPAGE_TEXT_FOR_ALL_USERS" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Left" "80" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Right" "-80" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Top" "-29" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Bottom" "-19" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "Flag" "GROUP" + + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Type" "RadioButton" + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Text" "UMUI_STARTMENUPAGE_TEXT_FOR_THE_CURRENT_USER" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Left" "80" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Right" "-80" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Top" "-17" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "Bottom" "-7" + + StrCmp $UMUI_TEMP5 "User" 0 admin + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" Flags "DISABLED" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" Flags "DISABLED" + + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "State" "1" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "State" "0" + Goto endcontext + admin: + StrCmp $MUI_TEMP2 "current" 0 +4 + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "State" "1" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "State" "0" + Goto +3 + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" "State" "1" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" "State" "0" + endcontext: + + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Settings" NumFields "${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" + !endif + + alreadyExists: + + StrCpy $UMUI_TEMP3 ">" + + !ifndef MUI_STARTMENUPAGE_NODISABLE + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AlternativeStartMenu${ID}.ini" "Field 4" State + + StrCmp $MUI_TEMP1 "1" 0 nodisable + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 2" Flags "DISABLED" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" Flags "NOTIFY|DISABLED" + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" Flags "DISABLED" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" Flags "DISABLED" + !endif + Goto endnodisable + nodisable: + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 2" "State" + StrCmp $MUI_TEMP2 "" 0 +3 + GetDlgItem $MUI_HWND $HWNDPARENT 1 ;next + EnableWindow $MUI_HWND 0 + + endnodisable: + + !else + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Settings" NumFields "3" + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 2" "State" + StrCmp $MUI_TEMP2 "" 0 +3 + GetDlgItem $MUI_HWND $HWNDPARENT 1 ;next + EnableWindow $MUI_HWND 0 + + !endif + + StrCmp $MUI_TEMP1 "0" 0 noenable + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 2" Flags "" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field 3" Flags "NOTIFY" + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT + StrCmp $UMUI_TEMP5 "Admin" 0 noenable + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" Flags "" + !insertmacro INSTALLOPTIONS_WRITE "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMCURRENTOPTFIELD}" Flags "" + !endif + noenable: + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_DISPLAY_RETURN "AlternativeStartMenu${ID}.ini" + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + ;only the first time, get the HWND + StrCmp $UMUI_TEMP3 ">" 0 +2 + Pop $UMUI_TEMP3 + + GetDlgItem $MUI_HWND $HWNDPARENT 1 ;next + EnableWindow $MUI_HWND 1 + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AlternativeStartMenu${ID}.ini" "Settings" State + + ; if not next, back or cancel + StrCmp $MUI_TEMP1 "0" ok 0 + + ; if inputtext + StrCmp $MUI_TEMP1 "2" 0 noinputtext + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 2" "State" + StrCmp $MUI_TEMP2 "" 0 +2 + EnableWindow $MUI_HWND 0 + + ClearErrors + Abort + + noinputtext: + ; if listbox or treeview + StrCmp $MUI_TEMP1 "3" 0 checkbox + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 3" "State" + + ;Conversion IOEx State string into Folder string + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW + !insertmacro UMUI_STRREPLACE $MUI_TEMP2 "{" "\" $MUI_TEMP2 + !insertmacro UMUI_STRREPLACE $MUI_TEMP2 "}" "" $MUI_TEMP2 + !endif + + GetDlgItem $MUI_HWND $UMUI_TEMP3 1201 ;"Field 2" "HWND" + SendMessage $MUI_HWND ${WM_SETTEXT} 0 "STR:$MUI_TEMP2\${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + + ClearErrors + Abort + + checkbox: + !ifndef MUI_STARTMENUPAGE_NODISABLE + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 4" "State" + StrCmp $MUI_TEMP2 "0" 0 +3 + StrCpy $MUI_TEMP2 1 + Goto +2 + StrCpy $MUI_TEMP2 0 + + GetDlgItem $MUI_HWND $UMUI_TEMP3 1201 ;"Field 2" "HWND" + EnableWindow $MUI_HWND $MUI_TEMP2 + GetDlgItem $MUI_HWND $UMUI_TEMP3 1202 ;"Field 3" "HWND" + EnableWindow $MUI_HWND $MUI_TEMP2 + + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT + + ; enable only if admin rights + StrCmp $UMUI_TEMP5 "Admin" 0 +5 + + GetDlgItem $MUI_HWND $UMUI_TEMP3 1205 ;"Field 6" "HWND" + EnableWindow $MUI_HWND $MUI_TEMP2 + GetDlgItem $MUI_HWND $UMUI_TEMP3 1206 ;"Field 7" "HWND" + EnableWindow $MUI_HWND $MUI_TEMP2 + + !endif + + StrCmp $MUI_TEMP2 "1" 0 endcheckbox + + GetDlgItem $MUI_HWND $HWNDPARENT 1 ;next + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "AlternativeStartMenu${ID}.ini" "Field 2" "State" + StrCmp $MUI_TEMP2 "" 0 +2 + EnableWindow $MUI_HWND 0 + + endcheckbox: + + Abort + + !endif + + Goto end + ok: + + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT + + !ifdef UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME + !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_SHELLVARCONTEXT_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_SHELLVARCONTEXT_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_SHELLVARCONTEXT_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME, the UMUI_SHELLVARCONTEXT_REGISTRY_ROOT & UMUI_SHELLVARCONTEXT_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !endif + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AlternativeStartMenu${ID}.ini" "Field ${UMUI_INTERNAL_ASMALLOPTFIELD}" State + StrCmp $MUI_TEMP1 "1" 0 current + SetShellVarContext all + !ifdef UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_SHELLVARCONTEXT_REGISTRY_ROOT} "${UMUI_SHELLVARCONTEXT_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" "all" + !endif + Goto endcontext + + current: + SetShellVarContext current + !ifdef UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_SHELLVARCONTEXT_REGISTRY_ROOT} "${UMUI_SHELLVARCONTEXT_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" "current" + !endif + endcontext: + + !endif + + ClearErrors + + !ifndef MUI_STARTMENUPAGE_NODISABLE + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "AlternativeStartMenu${ID}.ini" "Field 4" State + StrCmp $MUI_TEMP1 "1" 0 +3 + StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" ">" + Goto +2 + !endif + + !insertmacro INSTALLOPTIONS_READ "${MUI_STARTMENUPAGE_VARIABLE}" "AlternativeStartMenu${ID}.ini" "Field 2" State + + !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${MUI_STARTMENUPAGE_REGISTRY_ROOT} "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" "${MUI_STARTMENUPAGE_VARIABLE}" + !endif + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + end: + + FunctionEnd + + Function "${CREATELIST}" + + !ifdef UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW + !insertmacro UMUI_INTERNAL_CREATE_SMTREELIST + !else + !insertmacro UMUI_INTERNAL_CREATE_SMLIST + !endif + + FunctionEnd + + !undef UMUI_INTERNAL_ASMGOUPBOXFIELD + !undef UMUI_INTERNAL_ASMALLOPTFIELD + !undef UMUI_INTERNAL_ASMCURRENTOPTFIELD + +!macroend + + +!macro UMUI_INTERNAL_CREATE_SMLIST_LOOP SHELLVARCONTEXT + + SetShellVarContext ${SHELLVARCONTEXT} + + FindFirst $R3 $R1 "$SMPROGRAMS\$R4\*" + FindNext $R3 $R1 + + loop${SHELLVARCONTEXT}: + FindNext $R3 $R1 + + StrCmp $R1 "" exit${SHELLVARCONTEXT} + IfFileExists "$SMPROGRAMS\$R4\$R1\*" 0 loop${SHELLVARCONTEXT} + nsArray::Set "SMProgList$R2" /key='$R1' '$R1' + Goto loop${SHELLVARCONTEXT} + + exit${SHELLVARCONTEXT}: + FindClose $R3 + +!macroend + +; Generate the folder list for a listview +!macro UMUI_INTERNAL_CREATE_SMLIST + + Push $R4 ; directory to explore and the returned item list + Push $R1 ; current folder to look + Push $R3 ; the folder handle + Push $R2 ; Array name level (empty in this macro) + + StrCpy $R4 "" + StrCpy $R2 "" + + !insertmacro UMUI_INTERNAL_CREATE_SMLIST_LOOP all + !insertmacro UMUI_INTERNAL_CREATE_SMLIST_LOOP current + + nsArray::Sort "SMProgList$R2" 4 + + nsArray::Join "SMProgList$R2" "|" + Pop $R4 + + nsArray::Clear "SMProgList$R2" + + Pop $R2 + Pop $R3 + Pop $R1 + + Exch $R4 ; return the item list + +!macroend + + +; Generate the folder list for a treeview +!macro UMUI_INTERNAL_CREATE_SMTREELIST + + Exch $R4 ; directory to explore + Exch ; $R4 under $R2 + Exch $R2 ; Array name level number + + Push $R0 ; counter of the number of items added in this subdirectory + Push $R1 ; current folder to look and treeview: pop the return of the recursive function + Push $R3 ; the folder handle + Push $R5 ; the number of the level + Push $R6 ; the current item returned by the Read function + + !insertmacro UMUI_INTERNAL_CREATE_SMLIST_LOOP all + !insertmacro UMUI_INTERNAL_CREATE_SMLIST_LOOP current + + nsArray::Sort "SMProgList$R2" 4 + + IntOp $R5 $R2 + 1 + StrCpy $R1 0 + StrCpy $R0 0 + + ;for each item of the $R2 level, begin with the end + loop: + ClearErrors + nsArray::Get "SMProgList$R2" /at=$R0 + IfErrors end 0 + Pop $R6 ; key + Pop $R6 ; value + + StrCmp $R2 "0" endfirstleveltest 0 + StrCmp $R0 "0" 0 +3 + !ifdef NSIS_UNICODE + FileWriteUTF16LE $MUI_TEMP1 "{" + !else + FileWrite $MUI_TEMP1 "{" + !endif + Goto endfirstleveltest + StrCmp $R1 "}" +2 0 + !ifdef NSIS_UNICODE + FileWriteUTF16LE $MUI_TEMP1 "|" + !else + FileWrite $MUI_TEMP1 "|" + !endif + endfirstleveltest: + StrCmp $R2 "0" 0 +4 + StrCmp $R0 "0" +3 0 + StrCmp $R1 "}" +2 0 + !ifdef NSIS_UNICODE + FileWriteUTF16LE $MUI_TEMP1 "|" + !else + FileWrite $MUI_TEMP1 "|" + !endif + + !ifdef NSIS_UNICODE + FileWriteUTF16LE $MUI_TEMP1 "$R6" + !else + FileWrite $MUI_TEMP1 "$R6" + !endif + + Push $R5 + Push "$R4\$R6" + Call ${CREATELIST} + Pop $R1 + + IntOp $R0 $R0 + 1 + + Goto loop + end: + + StrCpy $R4 "0" + + StrCmp $R2 "0" +4 0 + StrCmp $R0 "0" +3 0 + !ifdef NSIS_UNICODE + FileWriteUTF16LE $MUI_TEMP1 "}" + !else + FileWrite $MUI_TEMP1 "}" + !endif + StrCpy $R4 "}" + + nsArray::Clear "SMProgList$R2" + + Pop $R6 + Pop $R5 + Pop $R3 + Pop $R1 + Pop $R0 + + StrCmp $R2 "0" 0 nolevel0 + Pop $R2 + Pop $R4 + Goto +3 + nolevel0: + Pop $R2 + Exch $R4 ; return "}" if it is the last character writed in the ini file, "0" otherwise and nothing if root directory + +!macroend + + + + +!macro UMUI_INTERNAL_PAGES_SETUPTYPE_MAINTENANCE_INI_4OPTIONS FILE + + !ifdef UMUI_USE_SMALL_PAGES + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 1" Bottom 17 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 2" Top 17 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 2" Bottom 27 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 3" Top 27 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 3" Bottom 47 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 4" Top 27 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 4" Bottom 48 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 5" Top 48 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 5" Bottom 58 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 6" Top 58 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 6" Bottom 78 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 7" Top 58 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 7" Bottom 79 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 8" Top 79 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 8" Bottom 89 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 9" Top 89 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 9" Bottom 109 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 10" Top 89 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 10" Bottom 110 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 11" Top 110 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 11" Bottom 120 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 12" Top 120 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 12" Bottom 140 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 13" Top 120 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Field 13" Bottom 140 + !endif + +!macroend + + + +!macro UMUI_PAGE_SETUPTYPE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}SETUPTYPEPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_INFO_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_MINIMAL_TITLE "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_MINIMAL_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_MINIMAL_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_STANDARD_TITLE "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_STANDARD_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_STANDARD_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_COMPLETE_TITLE "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_COMPLETE_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_COMPLETE_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_CUSTOM_TITLE "$(UMUI_TEXT_SETUPTYPE_CUSTOM_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_SETUPTYPEPAGE_CUSTOM_TEXT "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_CUSTOM_TEXT)" + +!ifndef USE_MUIEx +;----------------- + !define /IfNDef UMUI_SETUPTYPEPAGE_MINIMALBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Minimal.bmp" + !define /IfNDef UMUI_SETUPTYPEPAGE_STANDARDBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Standard.bmp" + !define /IfNDef UMUI_SETUPTYPEPAGE_COMPLETEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Complete.bmp" + !define /IfNDef UMUI_SETUPTYPEPAGE_CUSTOMBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Custom.bmp" +!else +;----- + !define /IfNDef UMUI_SETUPTYPEPAGE_MINIMALBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\MinimalEx.bmp" + !define /IfNDef UMUI_SETUPTYPEPAGE_STANDARDBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\StandardEx.bmp" + !define /IfNDef UMUI_SETUPTYPEPAGE_COMPLETEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\CompleteEx.bmp" + !define /IfNDef UMUI_SETUPTYPEPAGE_CUSTOMBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\CustomEx.bmp" +!endif +;------ + + !define /IfNDef UMUI_SETUPTYPEPAGE_DEFAULTCHOICE ${UMUI_CUSTOM} + + !ifdef UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME + !ifndef UMUI_SETUPTYPEPAGE_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_SETUPTYPEPAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME, the UMUI_SETUPTYPEPAGE_REGISTRY_ROOT & UMUI_SETUPTYPEPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_SETUPTYPEPAGE_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_SETUPTYPEPAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME, the UMUI_SETUPTYPEPAGE_REGISTRY_ROOT & UMUI_SETUPTYPEPAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !endif + + !ifndef UMUI_VAR_UMUI_TEMP3 + Var UMUI_TEMP3 + !define UMUI_VAR_UMUI_TEMP3 + !endif + + !ifndef UMUI_VAR_UMUI_TEMP4 + Var UMUI_TEMP4 + !define UMUI_VAR_UMUI_TEMP4 + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypeLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro UMUI_FUNCTION_SETUPTYPEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypeLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_TEXT + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_MINIMAL_TITLE + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_MINIMAL_TEXT + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_STANDARD_TITLE + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_STANDARD_TEXT + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_COMPLETE_TITLE + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_COMPLETE_TEXT + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_CUSTOM_TITLE + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_CUSTOM_TEXT + + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_MINIMALBITMAP + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_STANDARDBITMAP + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_COMPLETEBITMAP + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_CUSTOMBITMAP + + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_MINIMAL + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_STANDARD + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_COMPLETE + + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_DEFAULTCHOICE + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_REGISTRY_ROOT + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_REGISTRY_KEY + !insertmacro MUI_UNSET UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME + + !verbose pop + +!macroend + + +!macro UMUI_UNPAGE_SETUPTYPE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro UMUI_PAGE_SETUPTYPE + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + + +!macro UMUI_FUNCTION_SETUPTYPEPAGE PRE LEAVE + + Function "${PRE}" + + IfFileExists "$PLUGINSDIR\SetupType.ini" alreadyExists + + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI}" "SetupType.ini" + + ;reduce the size of the page win 4 options and a small installer + !ifdef UMUI_SETUPTYPEPAGE_MINIMAL & UMUI_SETUPTYPEPAGE_STANDARD & UMUI_SETUPTYPEPAGE_COMPLETE + !insertmacro UMUI_INTERNAL_PAGES_SETUPTYPE_MAINTENANCE_INI_4OPTIONS "SetupType.ini" + !endif + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SetupType.ini" "Field 1" "Text" "UMUI_SETUPTYPEPAGE_TEXT" + + ;Get registry and set the insttype + StrCpy $UMUI_TEMP4 ${UMUI_SETUPTYPEPAGE_DEFAULTCHOICE} + + !ifdef UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME + + ReadRegStr $MUI_TEMP1 ${UMUI_SETUPTYPEPAGE_REGISTRY_ROOT} "${UMUI_SETUPTYPEPAGE_REGISTRY_KEY}" "${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" + + StrCmp $MUI_TEMP1 "MINIMAL" 0 nominimal + StrCpy $UMUI_TEMP4 ${UMUI_MINIMAL} + Goto endreg + nominimal: + StrCmp $MUI_TEMP1 "STANDARD" 0 nostandard + StrCpy $UMUI_TEMP4 ${UMUI_STANDARD} + Goto endreg + nostandard: + StrCmp $MUI_TEMP1 "COMPLETE" 0 nocomplete + StrCpy $UMUI_TEMP4 ${UMUI_COMPLETE} + Goto endreg + nocomplete: + StrCmp $MUI_TEMP1 "CUSTOM" 0 endreg + StrCpy $UMUI_TEMP4 ${UMUI_CUSTOM} + endreg: + + ClearErrors + + ; IF page skipped save + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_SETUPTYPEPAGE_REGISTRY_ROOT} "${UMUI_SETUPTYPEPAGE_REGISTRY_KEY}" "${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" $MUI_TEMP1 + + !endif + + !define UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER 1 + + !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_ADDOPTION MINIMAL + !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_ADDOPTION STANDARD + !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_ADDOPTION COMPLETE + + File "/oname=$PLUGINSDIR\Custom.bmp" "${UMUI_SETUPTYPEPAGE_CUSTOMBITMAP}" + !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 + + StrCmp $UMUI_TEMP4 ${UMUI_CUSTOM} 0 +3 + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" State "1" + Goto +2 + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" State "0" + + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeID "-1" + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeOption "${UMUI_CUSTOM}" + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeOptionName "CUSTOM" + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "UMUI_SETUPTYPEPAGE_CUSTOM_TITLE" + !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "$PLUGINSDIR\Custom.bmp" + !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "UMUI_SETUPTYPEPAGE_CUSTOM_TEXT" + + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Settings" "NumFields" "${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" + + !undef UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER + + alreadyExists: + + ; IF setup cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_REPAIR}|${UMUI_UPDATE} + + ; Bodenseematze-2016-09-15: missing PRE-Function support added: + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_TITLE)" "$(UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_SETUPTYPE_SUBTITLE)" + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_DISPLAY "SetupType.ini" + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_GETOPTION 2 + !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_GETOPTION 5 + !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_GETOPTION 8 + !insertmacro UMUI_INTERNAL_PAGE_SETUPTYPE_GETOPTION 11 + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + FunctionEnd + +!macroend + +!macro UMUI_INTERNAL_PAGE_SETUPTYPE_ADDOPTION OPTION + + !ifdef UMUI_SETUPTYPEPAGE_${OPTION} + File "/oname=$PLUGINSDIR\${OPTION}.bmp" "${UMUI_SETUPTYPEPAGE_${OPTION}BITMAP}" + !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 + + ;search the ID of the InstType Associated to this option + ClearErrors + StrCpy $MUI_TEMP2 0 + loop${OPTION}: + InstTypeGetText $MUI_TEMP2 $UMUI_TEMP3 + IfErrors notfound${OPTION} + StrCmp $UMUI_TEMP3 "${UMUI_SETUPTYPEPAGE_${OPTION}}" found${OPTION} 0 + IntOp $MUI_TEMP2 $MUI_TEMP2 + 1 + Goto loop${OPTION} + found${OPTION}: + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeID "$MUI_TEMP2" + Goto end${OPTION} + notfound${OPTION}: + ClearErrors + MessageBox MB_OK "Error: ${UMUI_SETUPTYPEPAGE_${OPTION}} is not an defined InstType...$\nThis option will not work." + end${OPTION}: + + StrCmp $UMUI_TEMP4 ${UMUI_${OPTION}} 0 +4 + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" State "1" + SetCurInstType $MUI_TEMP2 + Goto +2 + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" State "0" + + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeOption "${UMUI_${OPTION}}" + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" InstTypeOptionName "${OPTION}" + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "UMUI_SETUPTYPEPAGE_${OPTION}_TITLE" + !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 + !insertmacro INSTALLOPTIONS_WRITE "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "$PLUGINSDIR\${OPTION}.bmp" + !define /redef /math UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER} + 1 + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "SetupType.ini" "Field ${UMUI_INTERNAL_PAGE_SETUPTYPE_COUNTER}" "Text" "UMUI_SETUPTYPEPAGE_${OPTION}_TEXT" + !endif + +!macroend + +!macro UMUI_INTERNAL_PAGE_SETUPTYPE_GETOPTION FIELDNUMBER + + !insertmacro INSTALLOPTIONS_READ $UMUI_TEMP3 "SetupType.ini" "Field ${FIELDNUMBER}" "InstTypeOption" + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "SetupType.ini" "Field ${FIELDNUMBER}" "State" + StrCmp $MUI_TEMP1 "1" 0 no${FIELDNUMBER} + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "SetupType.ini" "Field ${FIELDNUMBER}" "InstTypeID" + StrCmp $MUI_TEMP2 "-1" +2 0 + SetCurInstType $MUI_TEMP2 + + !insertmacro UMUI_SET_INSTALLFLAG $UMUI_TEMP3 + + !ifdef UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "SetupType.ini" "Field ${FIELDNUMBER}" "InstTypeOptionName" + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_SETUPTYPEPAGE_REGISTRY_ROOT} "${UMUI_SETUPTYPEPAGE_REGISTRY_KEY}" "${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" $MUI_TEMP1 + !endif + + Goto end${FIELDNUMBER} + no${FIELDNUMBER}: + !insertmacro UMUI_UNSET_INSTALLFLAG $UMUI_TEMP3 + end${FIELDNUMBER}: + +!macroend + +!macro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT + + Push $R0 + Push $R1 + + !insertmacro INSTALLOPTIONS_READ $R1 "SetupType.ini" "Field 2" "State" + StrCmp $R1 "1" 0 +3 + !insertmacro INSTALLOPTIONS_READ $R0 "SetupType.ini" "Field 2" "Text" + Goto end + + !insertmacro INSTALLOPTIONS_READ $R1 "SetupType.ini" "Field 5" "State" + StrCmp $R1 "1" 0 +3 + !insertmacro INSTALLOPTIONS_READ $R0 "SetupType.ini" "Field 5" "Text" + Goto end + + !insertmacro INSTALLOPTIONS_READ $R1 "SetupType.ini" "Field 8" "State" + StrCmp $R1 "1" 0 +3 + !insertmacro INSTALLOPTIONS_READ $R0 "SetupType.ini" "Field 8" "Text" + Goto end + + !insertmacro INSTALLOPTIONS_READ $R0 "SetupType.ini" "Field 11" "Text" + + end: + + Push $R1 + Exch $R0 + +!macroend + + + +!macro UMUI_PAGE_MAINTENANCE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}MAINTENANCEPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_TEXT "$(UMUI_TEXT_MAINTENANCE_INFO_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_MODIFY_TITLE "$(UMUI_TEXT_MAINTENANCE_MODIFY_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_MODIFY_TEXT "$(UMUI_TEXT_MAINTENANCE_MODIFY_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_REPAIR_TITLE "$(UMUI_TEXT_MAINTENANCE_REPAIR_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_REPAIR_TEXT "$(UMUI_TEXT_MAINTENANCE_REPAIR_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_REMOVE_TITLE "$(UMUI_TEXT_MAINTENANCE_REMOVE_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_REMOVE_TEXT "$(UMUI_TEXT_MAINTENANCE_REMOVE_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TITLE "$(UMUI_TEXT_MAINTENANCE_CONTINUE_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TEXT "$(UMUI_TEXT_MAINTENANCE_CONTINUE_TEXT)" + +!ifndef USE_MUIEx +;----------------- + !define /IfNDef UMUI_MAINTENANCEPAGE_MODIFYBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Modify.bmp" + !define /IfNDef UMUI_MAINTENANCEPAGE_REPAIRBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Repair.bmp" + !define /IfNDef UMUI_MAINTENANCEPAGE_REMOVEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Remove.bmp" + !define /IfNDef UMUI_MAINTENANCEPAGE_CONTINUE_SETUPBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Continue.bmp" +!else +;----- + !define /IfNDef UMUI_MAINTENANCEPAGE_MODIFYBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\ModifyEx.bmp" + !define /IfNDef UMUI_MAINTENANCEPAGE_REPAIRBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\RepairEx.bmp" + !define /IfNDef UMUI_MAINTENANCEPAGE_REMOVEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\RemoveEx.bmp" + !define /IfNDef UMUI_MAINTENANCEPAGE_CONTINUE_SETUPBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\ContinueEx.bmp" +!endif +;------ + + !ifdef UMUI_MAINTENANCEPAGE_MODIFY + !define /IfNDef UMUI_MAINTENANCEPAGE_DEFAULTCHOICE ${UMUI_MODIFY} + !else ifdef UMUI_MAINTENANCEPAGE_REPAIR + !define /IfNDef UMUI_MAINTENANCEPAGE_DEFAULTCHOICE ${UMUI_REPAIR} + !endif + + !ifndef UMUI_MAINTENANCEPAGE_MODIFY & UMUI_MAINTENANCEPAGE_REPAIR + !error "Maintenance page: You need to define at least one of these options: UMUI_MAINTENANCEPAGE_MODIFY or UMUI_MAINTENANCEPAGE_REPAIR." + !endif + + !ifdef UMUI_MAINTENANCEPAGE_REMOVE + !ifndef UMUI_UNINSTALL_FULLPATH | UMUI_UNINSTALLPATH_REGISTRY_VALUENAME + !error "Maintenance page: You need to set the UMUI_UNINSTALL_FULLPATH and UMUI_UNINSTALLPATH_REGISTRY_VALUENAME defines with the UMUI_MAINTENANCEPAGE_REMOVE option." + !endif + !endif + + !ifndef UMUI_PREUNINSTALL_FUNCTION + !warning "Maintenance page: You need to set the UMUI_PREUNINSTALL_FUNCTION define with a clean install function." + !endif + + !ifndef UMUI_VERBUILD_REGISTRY_VALUENAME | UMUI_VERBUILD + !error "Maintenance page: You need to set the UMUI_VERBUILD_REGISTRY_VALUENAME and UMUI_VERBUILD defines with this page." + !endif + + !ifndef UMUI_VAR_UMUI_TEMP3 + Var UMUI_TEMP3 + !define UMUI_VAR_UMUI_TEMP3 + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypeLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro UMUI_FUNCTION_MAINTENANCEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.setuptypeLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_TEXT + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_MODIFY_TITLE + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_MODIFY_TEXT + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REPAIR_TITLE + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REPAIR_TEXT + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REMOVE_TITLE + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REMOVE_TEXT + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TITLE + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TEXT + + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_MODIFYBITMAP + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REPAIRBITMAP + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REMOVEBITMAP + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_CONTINUE_SETUPBITMAP + + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_DEFAULTCHOICE + + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_MODIFY + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REPAIR + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_REMOVE + !insertmacro MUI_UNSET UMUI_MAINTENANCEPAGE_CONTINUE_SETUP + + !verbose pop + +!macroend + + +!macro UMUI_UNPAGE_MAINTENANCE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !ifndef UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME + !warning "The MAINTENANCE unpage need the UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME define" + !endif + + !ifndef UMUI_VAR_UMUI_TEMP4 + Var UMUI_TEMP4 + !define UMUI_VAR_UMUI_TEMP4 + !endif + + !insertmacro UMUI_PAGE_MAINTENANCE + + ; IF installer can't be found + !define /redef UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_REMOVE} + !define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.umui.fileRequestLeave + + !define UMUI_FILEDISKREQUESTPAGE_VARIABLE UMUI_TEMP4 + !define UMUI_FILEDISKREQUESTPAGE_FILE_NAME $MUI_TEMP2 + !define MUI_PAGE_HEADER_TEXT "$(UMUI_TEXT_MAINTENANCE_TITLE)" + + Function un.umui.fileRequestLeave + + ;Save the new installer file location + !ifdef UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME + + !ifndef UMUI_INSTALLERFULLPATH_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_INSTALLERFULLPATH_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else + !error "For UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME, the UMUI_INSTALLERFULLPATH_REGISTRY_ROOT & UMUI_INSTALLERFULLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_INSTALLERFULLPATH_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_INSTALLERFULLPATH_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else + !error "For UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME, the UMUI_INSTALLERFULLPATH_REGISTRY_ROOT & UMUI_INSTALLERFULLPATH_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_INSTALLERFULLPATH_REGISTRY_ROOT} "${UMUI_INSTALLERFULLPATH_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" "$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}\${UMUI_FILEDISKREQUESTPAGE_FILE_NAME}" + !endif + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY} + ;Recall this programm and quit + !insertmacro UMUI_GET_PARAMETERS + Pop $MUI_TEMP2 + + !insertmacro UMUI_DELETE_PLUGINDIR + HideWindow + + ExecWait '"$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}\${UMUI_FILEDISKREQUESTPAGE_FILE_NAME}" $MUI_TEMP2 /modify /L=$LANGUAGE' + Quit + !insertmacro UMUI_ENDIF_INSTALLFLAG + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REPAIR} + ;Recall this programm and quit + !insertmacro UMUI_GET_PARAMETERS + Pop $MUI_TEMP2 + + !insertmacro UMUI_DELETE_PLUGINDIR + HideWindow + + ExecWait '"$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}\${UMUI_FILEDISKREQUESTPAGE_FILE_NAME}" $MUI_TEMP2 /repair /L=$LANGUAGE' + Quit + !insertmacro UMUI_ENDIF_INSTALLFLAG + + FunctionEnd + + !insertmacro UMUI_PAGE_FILEDISKREQUEST + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + + +!macro UMUI_FUNCTION_MAINTENANCEPAGE PRE LEAVE + + Function "${PRE}" + + ; IF setup cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_UPDATE} + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_ISNOT ${UMUI_SAMEVERSION} + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_ABORTFIRSTTIME} + + ; call uninstaller if the /remove command line argument is set + !ifndef MUI_UNINSTALLER + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REMOVE} + + IfFileExists "${UMUI_UNINSTALL_FULLPATH}" 0 uninstaller_not_found + ;Recall this programm and quit + !insertmacro UMUI_GET_PARAMETERS + Pop $MUI_TEMP2 + + !insertmacro UMUI_DELETE_PLUGINDIR + HideWindow + + ExecWait '"${UMUI_UNINSTALL_FULLPATH}" $MUI_TEMP2 /remove /L=$LANGUAGE' + Quit + uninstaller_not_found: + ClearErrors + + !insertmacro UMUI_ENDIF_INSTALLFLAG + ;else continue + + ; call installer if the /modify, /repair or /continue command line argument is set + !else + + ReadRegStr $MUI_TEMP1 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" + IfFileExists "$MUI_TEMP1" 0 installer_not_found + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_CONTINUE_SETUP} + ;Recall this programm and quit + !insertmacro UMUI_GET_PARAMETERS + Pop $MUI_TEMP2 + + !insertmacro UMUI_DELETE_PLUGINDIR + HideWindow + !insertmacro UMUI_ENDIF_INSTALLFLAG + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY} + ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /modify /L=$LANGUAGE' + Quit + !insertmacro UMUI_ENDIF_INSTALLFLAG + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REPAIR} + ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /repair /L=$LANGUAGE' + Quit + !insertmacro UMUI_ENDIF_INSTALLFLAG + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_CONTINUE_SETUP} + ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /continue /L=$LANGUAGE' + Quit + !insertmacro UMUI_ENDIF_INSTALLFLAG + + installer_not_found: + ClearErrors + + ; continue to the next page for the File Request, Set the variable + !insertmacro UMUI_GETPARENTFOLDER $MUI_TEMP1 + Pop $UMUI_TEMP4 + + StrLen $UMUI_TEMP3 $UMUI_TEMP4 + StrCpy $MUI_TEMP2 $MUI_TEMP1 "" $UMUI_TEMP3 + + !endif + + + !insertmacro UMUI_UNSET_INSTALLFLAG ${UMUI_ABORTFIRSTTIME} + Abort + !insertmacro UMUI_ENDIF_INSTALLFLAG + + ; Bodenseematze-2016-09-15: missing PRE-Function support added: + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_TEXT_MAINTENANCE_TITLE)" "$(UMUI_TEXT_MAINTENANCE_SUBTITLE)" + + IfFileExists "$PLUGINSDIR\Maintenance.ini" alreadyExists + + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI}" "Maintenance.ini" + + ;reduce the size of the page win 4 options and a small installer + !ifdef UMUI_MAINTENANCEPAGE_MODIFY & UMUI_MAINTENANCEPAGE_REPAIR & UMUI_MAINTENANCEPAGE_REMOVE & UMUI_MAINTENANCEPAGE_CONTINUE_SETUP + !insertmacro UMUI_INTERNAL_PAGES_SETUPTYPE_MAINTENANCE_INI_4OPTIONS "Maintenance.ini" + !endif + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Maintenance.ini" "Field 1" "Text" "UMUI_MAINTENANCEPAGE_TEXT" + + StrCpy $UMUI_TEMP3 ${UMUI_MAINTENANCEPAGE_DEFAULTCHOICE} + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY} + StrCpy $UMUI_TEMP3 ${UMUI_MODIFY} + !insertmacro UMUI_ENDIF_INSTALLFLAG + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REPAIR} + StrCpy $UMUI_TEMP3 ${UMUI_REPAIR} + !insertmacro UMUI_ENDIF_INSTALLFLAG + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REMOVE} + StrCpy $UMUI_TEMP3 ${UMUI_REMOVE} + !insertmacro UMUI_ENDIF_INSTALLFLAG + + !define UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER 1 + + !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_ADDOPTION MODIFY + !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_ADDOPTION REPAIR + !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_ADDOPTION REMOVE + !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_ADDOPTION CONTINUE_SETUP + + !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Settings" "NumFields" "${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" + + !undef UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER + + alreadyExists: + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_DISPLAY "Maintenance.ini" + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_GETOPTION 2 + !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_GETOPTION 5 + !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_GETOPTION 8 + !insertmacro UMUI_INTERNAL_PAGE_MAINTENANCE_GETOPTION 11 + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + !ifndef MUI_UNINSTALLER + + !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REMOVE} + ;Recall this programm and quit + !insertmacro UMUI_GET_PARAMETERS + Pop $MUI_TEMP2 + + !insertmacro UMUI_DELETE_PLUGINDIR + HideWindow + + ExecWait '"${UMUI_UNINSTALL_FULLPATH}" $MUI_TEMP2 /remove /L=$LANGUAGE' + Quit + !insertmacro UMUI_ENDIF_INSTALLFLAG + ;else continue + + !insertmacro UMUI_ENDIF_INSTALLFLAG + + !else + + ;Remove? + !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_REMOVE}&${UMUI_CANCELLED} + + ReadRegStr $MUI_TEMP1 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" + IfFileExists "$MUI_TEMP1" 0 installer_not_found + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_CONTINUE_SETUP} + ;Recall this programm and quit + !insertmacro UMUI_GET_PARAMETERS + Pop $MUI_TEMP2 + + !insertmacro UMUI_DELETE_PLUGINDIR + HideWindow + !insertmacro UMUI_ENDIF_INSTALLFLAG + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY} + ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /modify /L=$LANGUAGE' + Quit + !insertmacro UMUI_ENDIF_INSTALLFLAG + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REPAIR} + ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /repair /L=$LANGUAGE' + Quit + !insertmacro UMUI_ENDIF_INSTALLFLAG + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_CONTINUE_SETUP} + ExecWait '"$MUI_TEMP1" $MUI_TEMP2 /continue /L=$LANGUAGE' + Quit + !insertmacro UMUI_ENDIF_INSTALLFLAG + + installer_not_found: + ClearErrors + + !insertmacro UMUI_GETPARENTFOLDER $MUI_TEMP1 + Pop $UMUI_TEMP4 + + StrLen $UMUI_TEMP3 $UMUI_TEMP4 + StrCpy $MUI_TEMP2 $MUI_TEMP1 "" $UMUI_TEMP3 + + !insertmacro UMUI_ENDIF_INSTALLFLAG + + ;if installer file not found: continue (the next page will request the install exedir folder) + + !endif + + FunctionEnd + +!macroend + + +!macro UMUI_INTERNAL_PAGE_MAINTENANCE_ADDOPTION OPTION + + !ifdef UMUI_MAINTENANCEPAGE_${OPTION} + File "/oname=$PLUGINSDIR\${OPTION}.bmp" "${UMUI_MAINTENANCEPAGE_${OPTION}BITMAP}" + !define /redef /math UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER} + 1 + + StrCmp $UMUI_TEMP3 ${UMUI_${OPTION}} 0 +4 + !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" State "1" + SetCurInstType $MUI_TEMP2 + Goto +2 + !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" State "0" + + !ifdef UMUI_MAINTENANCEPAGE_REMOVE + StrCmp ${OPTION} "REMOVE" 0 no${OPTION} + IfFileExists "${UMUI_UNINSTALL_FULLPATH}" no${OPTION} 0 + ClearErrors + !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" State "0" + !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" Flags DISABLED + no${OPTION}: + !endif + + !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" Maintenance "${UMUI_${OPTION}}" + !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" MaintenanceName "${OPTION}" + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" "Text" "UMUI_MAINTENANCEPAGE_${OPTION}_TITLE" + !define /redef /math UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER} + 1 + !insertmacro INSTALLOPTIONS_WRITE "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" Text "$PLUGINSDIR\${OPTION}.bmp" + !define /redef /math UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER} + 1 + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Maintenance.ini" "Field ${UMUI_INTERNAL_PAGE_MAINTENANCE_COUNTER}" "Text" "UMUI_MAINTENANCEPAGE_${OPTION}_TEXT" + !endif + +!macroend + +!macro UMUI_INTERNAL_PAGE_MAINTENANCE_GETOPTION FIELDNUMBER + + !insertmacro INSTALLOPTIONS_READ $UMUI_TEMP3 "Maintenance.ini" "Field ${FIELDNUMBER}" "Maintenance" + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "Maintenance.ini" "Field ${FIELDNUMBER}" "State" + StrCmp $MUI_TEMP1 "1" 0 no${FIELDNUMBER} + + !insertmacro UMUI_SET_INSTALLFLAG $UMUI_TEMP3 + Goto end${FIELDNUMBER} + + no${FIELDNUMBER}: + !insertmacro UMUI_UNSET_INSTALLFLAG $UMUI_TEMP3 + + end${FIELDNUMBER}: + +!macroend + + + + + +!macro UMUI_PAGE_UPDATE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef UMUI_UPDATEPAGE + + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_TEXT "$(UMUI_TEXT_UPDATE_INFO_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_UPDATE_TITLE "$(UMUI_TEXT_UPDATE_UPDATE_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_UPDATE_TEXT "$(UMUI_TEXT_UPDATE_UPDATE_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_REMOVE_TITLE "$(UMUI_TEXT_UPDATE_REMOVE_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_REMOVE_TEXT "$(UMUI_TEXT_UPDATE_REMOVE_TEXT)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_CONTINUE_SETUP_TITLE "$(UMUI_TEXT_UPDATE_CONTINUE_TITLE)" + !insertmacro MUI_DEFAULT_IOCONVERT UMUI_UPDATEPAGE_CONTINUE_SETUP_TEXT "$(UMUI_TEXT_UPDATE_CONTINUE_TEXT)" + +!ifndef USE_MUIEx +;----------------- + !define /IfNDef UMUI_UPDATEPAGE_UPDATEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Modify.bmp" + !define /IfNDef UMUI_UPDATEPAGE_REMOVEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Remove.bmp" + !define /IfNDef UMUI_UPDATEPAGE_CONTINUE_SETUPBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\Continue.bmp" +!else +;----- + !define /IfNDef UMUI_UPDATEPAGE_UPDATEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\ModifyEx.bmp" + !define /IfNDef UMUI_UPDATEPAGE_REMOVEBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\RemoveEx.bmp" + !define /IfNDef UMUI_UPDATEPAGE_CONTINUE_SETUPBITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\ContinueEx.bmp" +!endif +;------ + + !define /IfNDef UMUI_UPDATEPAGE_UPDATE + !define /IfNDef UMUI_UPDATEPAGE_DEFAULTCHOICE ${UMUI_UPDATE} + + !ifndef UMUI_VERBUILD_REGISTRY_VALUENAME | UMUI_VERBUILD + !error "Update page: You need to set the UMUI_VERBUILD_REGISTRY_VALUENAME and UMUI_VERBUILD defines with this page." + !endif + + !ifndef UMUI_VAR_OLDVERSION + Var OLDVERSION + !define UMUI_VAR_OLDVERSION + !endif + + !ifndef UMUI_VAR_NEWVERSION + Var NEWVERSION + !define UMUI_VAR_NEWVERSION + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.updatePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.updateLeave_${MUI_UNIQUEID} + + Caption " " + + PageExEnd + + !insertmacro UMUI_FUNCTION_UPDATEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.updatePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.updateLeave_${MUI_UNIQUEID} + + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_TEXT + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_UPDATE_TITLE + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_UPDATE_TEXT + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_REMOVE_TITLE + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_REMOVE_TEXT + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_CONTINUE_SETUP_TITLE + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_CONTINUE_SETUP_TEXT + + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_UPDATEBITMAP + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_REMOVEBITMAP + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_CONTINUE_SETUPBITMAP + + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_UPDATE + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_REMOVE + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_CONTINUE_SETUP + + !insertmacro MUI_UNSET UMUI_UPDATEPAGE_DEFAULTCHOICE + + !verbose pop + +!macroend + + +!macro UMUI_FUNCTION_UPDATEPAGE PRE LEAVE + + Function "${PRE}" + + ; IF setup cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED}|${UMUI_MODIFY}|${UMUI_REPAIR} + + ; call uninstaller if the /remove command line argument is set + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REMOVE} + + IfFileExists "${UMUI_UNINSTALL_FULLPATH}" 0 uninstaller_not_found + ;Recall this programm and quit + !insertmacro UMUI_GET_PARAMETERS + Pop $MUI_TEMP2 + + !insertmacro UMUI_DELETE_PLUGINDIR + HideWindow + + ExecWait '"${UMUI_UNINSTALL_FULLPATH}" $MUI_TEMP2 /remove /L=$LANGUAGE' + Quit + uninstaller_not_found: + ClearErrors + + !insertmacro UMUI_ENDIF_INSTALLFLAG + ;else continue + + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_ISNOT ${UMUI_DIFFVERSION} + + ; Bodenseematze-2016-09-15: missing PRE-Function support added: + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !insertmacro MUI_HEADER_TEXT_PAGE "$(UMUI_TEXT_UPDATE_TITLE)" "$(UMUI_TEXT_UPDATE_SUBTITLE)" + + IfFileExists "$PLUGINSDIR\Update.ini" alreadyExists + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI}" "Update.ini" + + !ifdef UMUI_VERSION + StrCpy $NEWVERSION "${UMUI_VERSION}" + !else + StrCpy $NEWVERSION "${UMUI_VERBUILD}" + !endif + + !ifdef UMUI_VERSION_REGISTRY_VALUENAME + ReadRegStr $OLDVERSION ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" + StrCmp $OLDVERSION "" 0 +2 + ReadRegStr $OLDVERSION ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" + !else + ReadRegStr $OLDVERSION ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" + !endif + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Update.ini" "Field 1" "Text" "UMUI_UPDATEPAGE_TEXT" + + !define UMUI_INTERNAL_PAGE_UPDATE_COUNTER 1 + + !insertmacro UMUI_INTERNAL_PAGE_UPDATE_ADDOPTION UPDATE + !insertmacro UMUI_INTERNAL_PAGE_UPDATE_ADDOPTION REMOVE + !insertmacro UMUI_INTERNAL_PAGE_UPDATE_ADDOPTION CONTINUE_SETUP + + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Settings" "NumFields" "${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" + + !undef UMUI_INTERNAL_PAGE_UPDATE_COUNTER + + !insertmacro UMUI_VERSIONCONVERT "${UMUI_VERBUILD}" + Pop $MUI_TEMP1 + ReadRegStr $MUI_TEMP2 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" + !insertmacro UMUI_VERSIONCONVERT $MUI_TEMP2 + Pop $MUI_TEMP2 + !insertmacro UMUI_VERSIONCOMPARE $MUI_TEMP1 $MUI_TEMP2 + Pop $MUI_TEMP1 + + StrCmp $MUI_TEMP1 1 alreadyExists 0 + ;disable the update option + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field 2" State "0" + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field 2" Flags DISABLED + + StrCmp ${UMUI_UPDATEPAGE_DEFAULTCHOICE} ${UMUI_UPDATE} 0 +2 + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field 5" State "1" + + alreadyExists: + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + !insertmacro INSTALLOPTIONS_DISPLAY "Update.ini" + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro UMUI_INTERNAL_PAGE_UPDATE_GETOPTION 2 + !insertmacro UMUI_INTERNAL_PAGE_UPDATE_GETOPTION 5 + !insertmacro UMUI_INTERNAL_PAGE_UPDATE_GETOPTION 8 + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} + + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_REMOVE} + ;Recall this programm and quit + !insertmacro UMUI_GET_PARAMETERS + Pop $MUI_TEMP2 + + !insertmacro UMUI_DELETE_PLUGINDIR + HideWindow + + ExecWait '"${UMUI_UNINSTALL_FULLPATH}" $MUI_TEMP2 /remove /L=$LANGUAGE' + Quit + !insertmacro UMUI_ENDIF_INSTALLFLAG + ;else continue + !insertmacro UMUI_ENDIF_INSTALLFLAG + + FunctionEnd + +!macroend + + +!macro UMUI_INTERNAL_PAGE_UPDATE_ADDOPTION OPTION + + !ifdef UMUI_UPDATEPAGE_${OPTION} + File "/oname=$PLUGINSDIR\${OPTION}.bmp" "${UMUI_UPDATEPAGE_${OPTION}BITMAP}" + !define /redef /math UMUI_INTERNAL_PAGE_UPDATE_COUNTER ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER} + 1 + + StrCmp ${UMUI_UPDATEPAGE_DEFAULTCHOICE} ${UMUI_${OPTION}} 0 +4 + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" State "1" + Goto +2 + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" State "0" + + !ifdef UMUI_UPDATEPAGE_REMOVE + StrCmp ${OPTION} "REMOVE" 0 no${OPTION} + IfFileExists "${UMUI_UNINSTALL_FULLPATH}" no${OPTION} 0 + ClearErrors + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" State "0" + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" Flags DISABLED + no${OPTION}: + !endif + + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" Update "${UMUI_${OPTION}}" + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" UpdateName "${OPTION}" + + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" "Text" "UMUI_UPDATEPAGE_${OPTION}_TITLE" + !define /redef /math UMUI_INTERNAL_PAGE_UPDATE_COUNTER ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER} + 1 + !insertmacro INSTALLOPTIONS_WRITE "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" "Text" "$PLUGINSDIR\${OPTION}.bmp" + !define /redef /math UMUI_INTERNAL_PAGE_UPDATE_COUNTER ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER} + 1 + !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "Update.ini" "Field ${UMUI_INTERNAL_PAGE_UPDATE_COUNTER}" "Text" "UMUI_UPDATEPAGE_${OPTION}_TEXT" + !endif + +!macroend + +!macro UMUI_INTERNAL_PAGE_UPDATE_GETOPTION FIELDNUMBER + + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP2 "Update.ini" "Field ${FIELDNUMBER}" "Update" + !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "Update.ini" "Field ${FIELDNUMBER}" "State" + StrCmp $MUI_TEMP1 "1" 0 no${FIELDNUMBER} + !insertmacro UMUI_SET_INSTALLFLAG $MUI_TEMP2 + Goto end${FIELDNUMBER} + no${FIELDNUMBER}: + !insertmacro UMUI_UNSET_INSTALLFLAG $MUI_TEMP2 + end${FIELDNUMBER}: + +!macroend + + +!macro UMUI_PAGE_FILEDISKREQUEST + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_PAGE_INIT + + !define /IfNDef UMUI_${MUI_PAGE_UNINSTALLER_PREFIX}FILEDISKREQUESTPAGE + + !ifdef UMUI_FILEDISKREQUESTPAGE_FILE_TO_FOUND + !warning "The UMUI_FILEDISKREQUESTPAGE_FILE_TO_FOUND define was renamed UMUI_FILEDISKREQUESTPAGE_FILE_NAME" + !define /IfNDef UMUI_FILEDISKREQUESTPAGE_FILE_NAME "{UMUI_FILEDISKREQUESTPAGE_FILE_TO_FOUND}" + !undef UMUI_FILEDISKREQUESTPAGE_FILE_TO_FOUND + !endif + + !ifndef UMUI_FILEDISKREQUESTPAGE_FILE_NAME || UMUI_FILEDISKREQUESTPAGE_VARIABLE + !error "For the FILEDISKREQUEST page, you need to define UMUI_FILEDISKREQUESTPAGE_FILE_NAME and UMUI_FILEDISKREQUESTPAGE_VARIABLE." + !endif + + !ifdef UMUI_FILEDISKREQUESTPAGE_DISK_NAME + !define /IfNDef UMUI_FILEDISKREQUESTPAGE_TEXT_TOP "$(UMUI_TEXT_FILEDISKREQUEST_DISK) ${UMUI_FILEDISKREQUESTPAGE_DISK_NAME}." + !else + !define /IfNDef UMUI_FILEDISKREQUESTPAGE_TEXT_TOP "$(UMUI_TEXT_FILEDISKREQUEST_FILE_BEGIN) ${UMUI_FILEDISKREQUESTPAGE_FILE_NAME} $(UMUI_TEXT_FILEDISKREQUEST_FILE_END)" + !endif + + !define /IfNDef UMUI_FILEDISKREQUESTPAGE_TEXT_PATH "$(UMUI_TEXT_FILEDISKREQUEST_PATH)" + + !ifndef MUI_VAR_HWND + Var MUI_HWND + !define MUI_VAR_HWND + !endif + + PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}directory + + PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestLeave_${MUI_UNIQUEID} + + Caption " " + + DirText "${UMUI_FILEDISKREQUESTPAGE_TEXT_TOP}" "${UMUI_FILEDISKREQUESTPAGE_TEXT_PATH}" "$(^BrowseBtn)" "${UMUI_FILEDISKREQUESTPAGE_TEXT_TOP}" + + DirVar "$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}" + + DirVerify leave + + PageExEnd + + !insertmacro UMUI_FUNCTION_FILEDISKREQUESTPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.filediskrequestLeave_${MUI_UNIQUEID} + + !undef UMUI_FILEDISKREQUESTPAGE_TEXT_TOP + !undef UMUI_FILEDISKREQUESTPAGE_TEXT_PATH + !undef UMUI_FILEDISKREQUESTPAGE_VARIABLE + !undef UMUI_FILEDISKREQUESTPAGE_FILE_NAME + + !insertmacro MUI_UNSET UMUI_FILEDISKREQUESTPAGE_DISK_NAME + + !verbose pop + +!macroend + +!macro UMUI_UNPAGE_FILEDISKREQUEST + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro MUI_UNPAGE_INIT + + !insertmacro UMUI_PAGE_FILEDISKREQUEST + + !insertmacro MUI_UNPAGE_END + + !verbose pop + +!macroend + +!macro UMUI_FUNCTION_FILEDISKREQUESTPAGE PRE SHOW LEAVE + + Function "${PRE}" + + ;if it's the installer page that call it and if remove : abort + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + + !ifdef UMUI_FILEDISKREQUESTPAGE_FILE_NAME + !insertmacro MUI_HEADER_TEXT_PAGE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_TITLE)" "$(UMUI_TEXT_FILEDISKREQUEST_FILE_SUBTITLE_BEGIN) ${UMUI_FILEDISKREQUESTPAGE_FILE_NAME} $(UMUI_TEXT_FILEDISKREQUEST_FILE_SUBTITLE_END)" + !else + !insertmacro MUI_HEADER_TEXT_PAGE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_TITLE)" "$(UMUI_TEXT_FILEDISKREQUEST_DISK_SUBTITLE)" + !endif + + !insertmacro UMUI_FIX_BUTTONS_SKIN + + FunctionEnd + + Function "${SHOW}" + + !insertmacro UMUI_UMUI_HIDEBACKBUTTON + + !insertmacro UMUI_PAGEBGTRANSPARENT_INIT + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1001 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1008 + !insertmacro UMUI_PAGECTLTRANSPARENT_INIT 1006 + !insertmacro UMUI_PAGECTLLIGHT_INIT 1020 + + FindWindow $MUI_HWND "#32770" "" $HWNDPARENT + GetDlgItem $MUI_TEMP1 $MUI_HWND 1023 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + GetDlgItem $MUI_TEMP1 $MUI_HWND 1024 + ShowWindow $MUI_TEMP1 ${SW_HIDE} + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + + FunctionEnd + + Function "${LEAVE}" + + !insertmacro UMUI_IF_INSTALLFLAG_ISNOT ${UMUI_CANCELLED} + + ClearErrors + IfFileExists "$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}\${UMUI_FILEDISKREQUESTPAGE_FILE_NAME}" file_found 0 + ClearErrors + + ;Repost this page + Abort + + file_found: + + !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + + !insertmacro UMUI_ENDIF_INSTALLFLAG + + FunctionEnd + +!macroend + + + +;-------------------------------- +;INSTALL OPTIONS (CUSTOM PAGES) + +!macro MUI_INSTALLOPTIONS_EXTRACT FILE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro INSTALLOPTIONS_EXTRACT "${FILE}" + + !verbose pop + +!macroend + +!macro MUI_INSTALLOPTIONS_EXTRACT_AS FILE FILENAME + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro INSTALLOPTIONS_EXTRACT_AS "${FILE}" "${FILENAME}" + + !verbose pop + +!macroend + +!macro MUI_INSTALLOPTIONS_DISPLAY FILE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro INSTALLOPTIONS_DISPLAY "${FILE}" + + !verbose pop + +!macroend + +!macro MUI_INSTALLOPTIONS_DISPLAY_RETURN FILE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro INSTALLOPTIONS_DISPLAY_RETURN "${FILE}" + + !verbose pop + +!macroend + +!macro MUI_INSTALLOPTIONS_INITDIALOG FILE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro INSTALLOPTIONS_INITDIALOG "${FILE}" + + !verbose pop + +!macroend + +!macro MUI_INSTALLOPTIONS_SHOW + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro INSTALLOPTIONS_SHOW + + !verbose pop + +!macroend + +!macro MUI_INSTALLOPTIONS_SHOW_RETURN + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro INSTALLOPTIONS_SHOW_RETURN + + !verbose pop + +!macroend + +!macro MUI_INSTALLOPTIONS_READ VAR FILE SECTION KEY + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro INSTALLOPTIONS_READ "${VAR}" "${FILE}" "${SECTION}" "${KEY}" + + !verbose pop + +!macroend + +!macro MUI_INSTALLOPTIONS_WRITE FILE SECTION KEY VALUE + + !verbose push + !verbose ${MUI_VERBOSE} + + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "${SECTION}" "${KEY}" "${VALUE}" + + !verbose pop + +!macroend + +!macro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT FILE SECTION KEY SYMBOL + + ;Converts default strings from language files to InstallOptions format + ;Only for use inside MUI + + !verbose push + !verbose ${MUI_VERBOSE} + + Push $R9 + + !ifndef "${SYMBOL}_DEFAULTSET" + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "${SECTION}" "${KEY}" "${${SYMBOL}}" + !else + Push "${${SYMBOL}}" + Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}Nsis2Io + Pop $R9 + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "${SECTION}" "${KEY}" $R9 + !endif + + Pop $R9 + + !verbose pop + +!macroend + + +; Additional Installoptions functions +; ------------------------------------ + +!macro UMUI_INSTALLOPTIONSEX_SETFOCUS HWND + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifdef UMUI_USE_INSTALLOPTIONSEX + InstallOptionsEx::setFocus ${HWND} + !else + !warning "setFocus is not available with InstallOptions, use InstallOptionsEx instead." + !endif + + !verbose pop + +!macroend + +!macro UMUI_INSTALLOPTIONSEX_SKIPVALIDATION + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifdef UMUI_USE_INSTALLOPTIONSEX + InstallOptionsEx::skipValidation + !else + !warning "skipValidation is not available with InstallOptions, use InstallOptionsEx instead." + !endif + + !verbose pop + +!macroend + + +; Convert an IO ini into a compatible IOEx ini +!macro UMUI_INSTALLOPTIONSEX_CONVERT FILE + + !ifdef UMUI_USE_INSTALLOPTIONSEX + !ifndef UMUI_DONT_USE_IOEX_CONVERTER + + !verbose push + !verbose ${MUI_VERBOSE} + + Push $R0 + Push $0 + Push $1 + Push $8 + Push $R1 + Push $R8 + + !insertmacro MUI_INSTALLOPTIONS_READ $R0 "${FILE}" "Settings" "NumFields" + + ;$R0 NumField + ;$1 NewNumField + ;$R1 type + ;$0 counter + ;$R8 temp string + ;$8 temp var + + StrCpy $0 0 + StrCpy $1 $R0 + + ;do + loopConvert: + IntOp $0 $0 + 1 + + !insertmacro MUI_INSTALLOPTIONS_READ $R1 "${FILE}" "Field $0" "Type" + + ;if Button + StrCmp $R1 "Button" isButtonType 0 + ;else if Link + StrCmp $R1 "Link" isButtonType 0 + ;else if CheckBox + StrCmp $R1 "CheckBox" isButtonType 0 + ;else if RadioButton + StrCmp $R1 "RadioButton" 0 isNotButtonType + isButtonType: + !insertmacro UMUI_INSTALLOPTIONSEX_CONVERT_NOTIFY "${FILE}" "$0" ONCLICK + Goto testConvert + isNotButtonType: + + ;else if ListBox + StrCmp $R1 "ListBox" +2 0 + ;else if DropList + StrCmp $R1 "DropList" 0 isNotListType + !insertmacro UMUI_INSTALLOPTIONSEX_CONVERT_NOTIFY "${FILE}" "$0" ONSELCHANGE + Goto testConvert + isNotListType: + + ;else if FileRequest + StrCmp $R1 "FileRequest" 0 isNotFileRequest + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Type" "Text" + IntOp $1 $1 + 1 + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Settings" "NumFields" "$1" + + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Type" "Button" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Text" "..." + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "RefFields" "$0" + + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Top" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Top" "$R8" + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Bottom" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Bottom" "$R8" + + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Right" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Right" "$R8" + IntOp $R8 $R8 - 19 + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Right" "$R8" + IntOp $R8 $R8 + 3 + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Left" "$R8" + + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Filter" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Filter" "$R8" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Filter" "" + + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Flags" + !insertmacro UMUI_STRCOUNT "REQ_SAVE" "$R8" + Pop $8 ;the return number + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Flags" + StrCmp $8 0 0 save + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Flags" "OPEN_FILEREQUEST|$R8" + Goto end + save: + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Flags" "SAVE_FILEREQUEST|$R8" + end: + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Flags" "" + + Goto testConvert + isNotFileRequest: + + ;else if DirRequest + StrCmp $R1 "DirRequest" 0 isNotDirRequest + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Type" "Text" + IntOp $1 $1 + 1 + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Settings" "NumFields" "$1" + + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Type" "Button" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Text" "..." + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "RefFields" "$0" + + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Text" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "ListItems" "$R8" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Text" "" + + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Top" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Top" "$R8" + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Bottom" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Bottom" "$R8" + + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Right" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Right" "$R8" + IntOp $R8 $R8 - 19 + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $0" "Right" "$R8" + IntOp $R8 $R8 + 3 + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Left" "$R8" + + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "Root" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Root" "$R8" + + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $1" "Flags" "DIRREQUEST" + + Goto testConvert + isNotDirRequest: + + ;endif + + testConvert: + ;while $0 <= $R0 + IntCmp $0 $R0 0 loopConvert 0 + + Pop $R8 + Pop $R1 + Pop $8 + Pop $1 + Pop $0 + Pop $R0 + + !verbose pop + + !endif + !endif + +!macroend + + +; Convert an IO ini into a compatible IOEx ini next and finish +!macro UMUI_INSTALLOPTIONSEX_CONVERT_NEXT FILE + + !ifdef UMUI_USE_INSTALLOPTIONSEX + !ifndef UMUI_DONT_USE_IOEX_CONVERTER + + !verbose push + !verbose ${MUI_VERBOSE} + + Push $R0 + Push $0 + Push $8 + Push $R1 + Push $R8 + + !insertmacro MUI_INSTALLOPTIONS_READ $R0 "${FILE}" "Settings" "NumFields" + + ;$R0 NumField + ;$R1 type + ;$0 counter + ;$R8 temp string + ;$8 temp var + + StrCpy $0 0 + + ;do + loopConvertNext: + IntOp $0 $0 + 1 + + !insertmacro MUI_INSTALLOPTIONS_READ $R1 "${FILE}" "Field $0" "Type" + ;if Button + StrCmp $R1 "Button" 0 testConvertNext + + !insertmacro MUI_INSTALLOPTIONS_READ $8 "${FILE}" "Field $0" "RefFields" + StrCmp $8 "" testConvertNext 0 + !insertmacro MUI_INSTALLOPTIONS_READ $R8 "${FILE}" "Field $0" "HWND" + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field $8" "HWND2" "$R8" + + testConvertNext: + ;while $0 <= $R0 + IntCmp $0 $R0 0 loopConvertNext 0 + + Pop $R8 + Pop $R1 + Pop $8 + Pop $0 + Pop $R0 + + !verbose pop + + !endif + !endif + +!macroend + +; Convert an IO NOTIFY flag into a Notify key compatible with IOEx +!macro UMUI_INSTALLOPTIONSEX_CONVERT_NOTIFY FILE FIELD NOTIFY + + Push $R9 + Push $9 + + !define UMUI_UNIQUEID_CONVERTNOTIFY ${__LINE__} + + !insertmacro MUI_INSTALLOPTIONS_READ $R9 "${FILE}" "Field ${FIELD}" "Notify" + StrCmp $R9 "" 0 end${UMUI_UNIQUEID_CONVERTNOTIFY} + + !insertmacro MUI_INSTALLOPTIONS_READ $R9 "${FILE}" "Field ${FIELD}" "Flags" + StrCmp $R9 "" end${UMUI_UNIQUEID_CONVERTNOTIFY} 0 + !insertmacro UMUI_STRCOUNT "NOTIFY" "$R9" + Pop $9 ;the return number + StrCmp $9 0 end${UMUI_UNIQUEID_CONVERTNOTIFY} 0 + + !insertmacro MUI_INSTALLOPTIONS_WRITE "${FILE}" "Field ${FIELD}" "Notify" "${NOTIFY}" + + end${UMUI_UNIQUEID_CONVERTNOTIFY}: + + !undef UMUI_UNIQUEID_CONVERTNOTIFY + + Pop $9 + Pop $R9 + +!macroend + + + +;-------------------------------- +;RESERVE FILES + +!macro MUI_RESERVEFILE_INSTALLOPTIONS + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifdef UMUI_USE_INSTALLOPTIONSEX + ReserveFile /plugin InstallOptionsEx.dll + !else + ReserveFile /plugin InstallOptions.dll + !endif + + !verbose pop + +!macroend + +!macro UMUI_RESERVEFILE_SKINNEDCONTROLS + + !verbose push + !verbose ${MUI_VERBOSE} + + ReserveFile /plugin SkinnedControls.dll + + !verbose pop + +!macroend + +!macro MUI_RESERVEFILE_LANGDLL + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifdef UMUI_MULTILANGUAGEPAGE | UMUI_UNMULTILANGUAGEPAGE + !warning "You tried to reserve the file LangDLL.dll whereas you have also inserted the UNMULTILANGUAGE page. You can remove the MUI_RESERVEFILE_LANGDLL macro insertion." + !endif + + ReserveFile /plugin LangDLL.dll + + !verbose pop + +!macroend + + + +;-------------------------------- +;LANGUAGES + +!macro MUI_LANGUAGE NLFID + + ;Include a language + + !verbose push + !verbose ${MUI_VERBOSE} + + ; MUI_PAGE_UNINSTALLER_PREFIX is undefined by uninstaller pages so we check MUI_UNINSTALLER as well + !ifndef MUI_PAGE_UNINSTALLER_PREFIX && MUI_UNINSTALLER + !ifndef MUI_DISABLE_INSERT_LANGUAGE_AFTER_PAGES_WARNING ; Define this to avoid the warning if you only have custom pages + !warning "MUI_LANGUAGE should be inserted after the MUI_[UN]PAGE_* macros" + !endif + !endif + + !insertmacro MUI_INSERT + + LoadLanguageFile "${NSISDIR}\Contrib\Language files\${NLFID}.nlf" + + ;Include language file + !insertmacro LANGFILE_INCLUDE_WITHDEFAULT \ + "${NSISDIR}\Contrib\Language files\${NLFID}.nsh" "${NSISDIR}\Contrib\Language files\English.nsh" "${NSISDIR}\Contrib\UltraModernUI\Language files\${NLFID}.nsh" "${NSISDIR}\Contrib\UltraModernUI\Language files\English.nsh" + + ;Add language to list of languages for selection dialog + !define /ifndef MUI_LANGDLL_LANGUAGES "" + !define /redef MUI_LANGDLL_LANGUAGES \ + `"${LANGFILE_${NLFID}_LANGDLL}" "${LANG_${NLFID}}" ${MUI_LANGDLL_LANGUAGES}` + !define /ifndef MUI_LANGDLL_LANGUAGES_CP "" + !define /redef MUI_LANGDLL_LANGUAGES_CP \ + `"${LANGFILE_${NLFID}_LANGDLL}" "${LANG_${NLFID}}" "${LANG_${NLFID}_CP}" ${MUI_LANGDLL_LANGUAGES_CP}` + + !define /ifndef UMUI_MULTILANG_LANGMAP "" + !define /redef UMUI_MULTILANG_LANGMAP "${UMUI_MULTILANG_LANGMAP} /key=${LANG_${NLFID}} `${LANGFILE_${NLFID}_NAME}`" + + !verbose pop + +!macroend + +!macro UMUI_MULTILANG_GET + + !verbose push + !verbose ${MUI_VERBOSE} + + ;Usually, this is done only later, but we need us now + InitPluginsDir + + ;get parameters in a ini file + !insertmacro UMUI_PARAMETERS_TO_INI + StrCpy $UMUI_INSTALLFLAG 0 + + ;bu default, $LANGUAGE contain the ID of the language of the system + + ; get the choosen langid if it is passed in the commandline + !insertmacro UMUI_GETPARAMETERVALUE "/L" "error" + Pop $MUI_TEMP1 + + StrCmp $MUI_TEMP1 "error" checkRegistery 0 + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_LANGISSET} + Goto setlang + + checkRegistery: + + !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME + ReadRegStr $MUI_TEMP1 ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" + StrCmp $MUI_TEMP1 "" 0 setlang + !endif + Goto endlang + + setlang: + + StrCpy $LANGUAGE $MUI_TEMP1 + + !ifndef UMUI_LANGUAGE_ALWAYSSHOW + !insertmacro UMUI_SET_INSTALLFLAG ${UMUI_LANGISSET} + !endif + + endlang: + + !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" "$LANGUAGE" + !endif + + !ifndef UMUI_VAR_LANGLIST + !error "It seem that you don't have inserted the MULTILANGUAGE page." + !endif + + !ifndef UMUI_MULTILANG_LANGMAP + !error "MUI_LANGUAGE must be inserted before UMUI_MULTILANG_GET" + !endif + + ClearErrors + + ; create a map that contain the langid => langstring + nsArray::SetList LangMap ${UMUI_MULTILANG_LANGMAP} /end + + nsArray::Sort LangMap 4 + + nsArray::Join LangMap "|" + Pop $UMUI_LANGLIST + + ClearErrors + + !verbose pop + +!macroend + + +;-------------------------------- +;LANGUAGE SELECTION DIALOG + +!macro MUI_LANGDLL_DISPLAY + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifdef UMUI_MULTILANGUAGEPAGE | UMUI_UNMULTILANGUAGEPAGE + !warning "You have used the MUI_LANGDLL_DISPLAY in your .onInit function whereas you have also inserted the MULTILANGUAGE page. Replace the MUI_LANGDLL_DISPLAY and the MUI_UNGETLANGUAGE macros by the UMUI_MULTILANG_GET macro in your .onInit and un.onInit functions otherwise, the MULTILANGUAGE page will not work." + !endif + + !ifdef MUI_LANGDLL_REGISTRY_ROOT | MUI_LANGDLL_REGISTRY_KEY | MUI_LANGDLL_REGISTRY_VALUENAME + !warning "Deprecated: The MUI_LANGDLL_REGISTRY_ROOT, MUI_LANGDLL_REGISTRY_KEY and MUI_LANGDLL_REGISTRY_VALUENAME defines were replaced by UMUI_LANGUAGE_REGISTRY_VALUENAME, UMUI_LANGUAGE_REGISTRY_ROOT, UMUI_LANGUAGE_REGISTRY_KEY or you can use also the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY globals parameters." + !endif + + !ifndef UMUI_LANGUAGE_REGISTRY_VALUENAME + !ifdef MUI_LANGDLL_REGISTRY_VALUENAME + !define UMUI_LANGUAGE_REGISTRY_VALUENAME "${MUI_LANGDLL_REGISTRY_VALUENAME}" + !endif + !endif + + !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME + + !ifndef UMUI_LANGUAGE_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_LANGUAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else ifdef MUI_LANGDLL_REGISTRY_ROOT + !define UMUI_LANGUAGE_REGISTRY_ROOT "${MUI_LANGDLL_REGISTRY_ROOT}" + !else + !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_LANGUAGE_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_LANGUAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else ifdef MUI_LANGDLL_REGISTRY_KEY + !define UMUI_LANGUAGE_REGISTRY_KEY "${MUI_LANGDLL_REGISTRY_KEY}" + !else + !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + !endif + + !define /IfNDef MUI_LANGDLL_WINDOWTITLE "Installer Language" + !define /IfNDef MUI_LANGDLL_INFO "Please select a language." + + !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME + + ReadRegStr $MUI_TEMP1 ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" + StrCmp $MUI_TEMP1 "" mui.langdll_show + StrCpy $LANGUAGE $MUI_TEMP1 + !ifndef UMUI_LANGUAGE_ALWAYSSHOW + Goto mui.langdll_done + !endif + mui.langdll_show: + + !endif + + !ifdef NSIS_CONFIG_SILENT_SUPPORT + IfSilent mui.langdll_done + !endif + + !ifdef MUI_LANGDLL_ALLLANGUAGES | UMUI_MULTILANGUAGEPAGE | UMUI_UNMULTILANGUAGEPAGE + LangDLL::LangDialog "${MUI_LANGDLL_WINDOWTITLE}" "${MUI_LANGDLL_INFO}" A ${MUI_LANGDLL_LANGUAGES} "" + !else + LangDLL::LangDialog "${MUI_LANGDLL_WINDOWTITLE}" "${MUI_LANGDLL_INFO}" AC ${MUI_LANGDLL_LANGUAGES_CP} "" + !endif + + Pop $LANGUAGE + StrCmp $LANGUAGE "cancel" 0 +2 + Abort + + !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME + !insertmacro UMUI_ADDPARAMTOSAVETOREGISTRYKEY ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" "$LANGUAGE" + !endif + + !ifdef NSIS_CONFIG_SILENT_SUPPORT | UMUI_LANGUAGE_REGISTRY_VALUENAME + mui.langdll_done: + !endif + + !verbose pop + +!macroend + +!macro MUI_UNGETLANGUAGE + + !verbose push + !verbose ${MUI_VERBOSE} + + !ifdef UMUI_UNMULTILANGUAGEPAGE + !warning "You have used the MUI_UNGETLANGUAGE in your un.onInit function whereas you have also inserted the UNMULTILANGUAGE page. Replace the MUI_LANGDLL_DISPLAY and the MUI_UNGETLANGUAGE macros by the UMUI_MULTILANG_GET macro in your .onInit and un.onInit functions otherwise, the MULTILANGUAGE page will not work." + !endif + + !ifdef MUI_LANGDLL_REGISTRY_ROOT | MUI_LANGDLL_REGISTRY_KEY | MUI_LANGDLL_REGISTRY_VALUENAME + !warning "Deprecated: The MUI_LANGDLL_REGISTRY_ROOT, MUI_LANGDLL_REGISTRY_KEY and MUI_LANGDLL_REGISTRY_VALUENAME defines were replaced by UMUI_LANGUAGE_REGISTRY_ROOT, UMUI_LANGUAGE_REGISTRY_KEY and UMUI_LANGUAGE_REGISTRY_VALUENAME or you can use also the UMUI_PARAMS_REGISTRY_ROOT and UMUI_PARAMS_REGISTRY_KEY globals parameters." + !endif + + !ifndef UMUI_LANGUAGE_REGISTRY_VALUENAME + !ifdef MUI_LANGDLL_REGISTRY_VALUENAME + !define UMUI_LANGUAGE_REGISTRY_VALUENAME "${MUI_LANGDLL_REGISTRY_VALUENAME}" + !endif + !endif + + !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME + + !ifndef UMUI_LANGUAGE_REGISTRY_ROOT + !ifdef UMUI_PARAMS_REGISTRY_ROOT + !define UMUI_LANGUAGE_REGISTRY_ROOT "${UMUI_PARAMS_REGISTRY_ROOT}" + !else ifdef MUI_LANGDLL_REGISTRY_ROOT + !define UMUI_LANGUAGE_REGISTRY_ROOT "${MUI_LANGDLL_REGISTRY_ROOT}" + !else + !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + !ifndef UMUI_LANGUAGE_REGISTRY_KEY + !ifdef UMUI_PARAMS_REGISTRY_KEY + !define UMUI_LANGUAGE_REGISTRY_KEY "${UMUI_PARAMS_REGISTRY_KEY}" + !else ifdef MUI_LANGDLL_REGISTRY_KEY + !define UMUI_LANGUAGE_REGISTRY_KEY "${MUI_LANGDLL_REGISTRY_KEY}" + !else + !error "For UMUI_LANGUAGE_REGISTRY_VALUENAME, the UMUI_LANGUAGE_REGISTRY_ROOT & UMUI_LANGUAGE_REGISTRY_KEY parameters or else the UMUI_PARAMS_REGISTRY_ROOT & UMUI_PARAMS_REGISTRY_KEY global parameters must be defined." + !endif + !endif + + ReadRegStr $MUI_TEMP1 ${UMUI_LANGUAGE_REGISTRY_ROOT} "${UMUI_LANGUAGE_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" + StrCmp $MUI_TEMP1 "" 0 mui.ungetlanguage_setlang + + !endif + + !insertmacro MUI_LANGDLL_DISPLAY + + !ifdef UMUI_LANGUAGE_REGISTRY_VALUENAME + + Goto mui.ungetlanguage_done + + mui.ungetlanguage_setlang: + StrCpy $LANGUAGE $MUI_TEMP1 + + mui.ungetlanguage_done: + + !endif + + !verbose pop + +!macroend + +;-------------------------------- + +/* + +LangFile.nsh + +Header file to create language files that can be +included with a single command. + +Copyright 2008-2016 Joost Verburg, Anders Kjersem + +* Either LANGFILE_INCLUDE or LANGFILE_INCLUDE_WITHDEFAULT + can be called from the script to include a language file. + + - LANGFILE_INCLUDE takes the language file name as parameter. + - LANGFILE_INCLUDE_WITHDEFAULT takes as additional second + parameter, the default language file to load missing strings from. + +* Language strings in the language file have the format: + ${LangFileString} LANGSTRING_NAME "Text" + +* There are two types of language header files: + + - NSIS multi-lang support; these must start with the LANGFILE macro and + provide strings for features like MUI and MultiUser. If you are adding + support for a new language to NSIS you should make a copy of English.nsh + and translate this .nsh along with the .nlf. + - Custom installer strings; these must start with the LANGFILE_EXT macro and + contain translated versions of + custom strings used in a particular installer. + This is useful if you want to put the translations for each language in + their own separate file. + +* Example: + + ; Setup.nsi + !include "MUI.nsh" + !insertmacro MUI_PAGE_INSTFILES + !insertmacro MUI_LANGUAGE "Danish" + !insertmacro LANGFILE_INCLUDE "DanishExtra.nsh" + !insertmacro MUI_LANGUAGE "Swedish" + !insertmacro LANGFILE_INCLUDE "SwedishExtra.nsh" + Section + MessageBox MB_OK "$(myCustomString)" + SectionEnd + + ; SwedishExtra.nsh + !insertmacro LANGFILE_EXT Swedish + ${LangFileString} myCustomString "Bork bork" + +*/ + +!ifndef LANGFILE_INCLUDED +!define LANGFILE_INCLUDED + +!macro LANGFILE_INCLUDE FILENAME UMUI_FILENAME + + ;Called from script: include a langauge file + + !define /redef LangFileString "!insertmacro LANGFILE_SETSTRING" + + !define LANGFILE_SETNAMES + !include "${FILENAME}" + !include "${UMUI_FILENAME}" + !undef LANGFILE_SETNAMES + + ;Create language strings + !define /redef LangFileString "!insertmacro LANGFILE_LANGSTRING" + !include "${FILENAME}" + !include "${UMUI_FILENAME}" + +!macroend + +!macro LANGFILE_INCLUDE_WITHDEFAULT FILENAME FILENAME_DEFAULT UMUI_FILENAME UMUI_FILENAME_DEFAULT + + ;Called from script: include a langauge file + ;Obtains missing strings from a default file + + !define /redef LangFileString "!insertmacro LANGFILE_SETSTRING" + + !define LANGFILE_SETNAMES + !include "${FILENAME}" + !include "${UMUI_FILENAME}" + !undef LANGFILE_SETNAMES + + ;Include default language for missing strings + !define LANGFILE_PRIV_INCLUDEISFALLBACK "${FILENAME_DEFAULT}" + !include "${FILENAME_DEFAULT}" + !undef LANGFILE_PRIV_INCLUDEISFALLBACK + !include "${UMUI_FILENAME_DEFAULT}" + + ;Create language strings + !define /redef LangFileString "!insertmacro LANGFILE_LANGSTRING" + !include "${FILENAME_DEFAULT}" + !include "${UMUI_FILENAME_DEFAULT}" + +!macroend + +!macro LANGFILE NLFID ENGNAME NATIVENAME NATIVEASCIINAME + + ;Start of standard NSIS language file + + ; NLFID: Must match the name of the .nlf file + ; ENGNAME: English name of language, "=" if it is the same as NLFID + ; NATIVENAME: Native name of language. (In Unicode) + ; NATIVEASCIINAME: Native name of language using only ASCII, "=" if it is the same as NATIVENAME + + ; Example: LANGFILE "Swedish" = "Svenska" = + ; For more examples, see French.nsh, Greek.nsh and PortugueseBR.nsh + + !ifdef LANGFILE_SETNAMES + + !ifdef LANGFILE_IDNAME + !undef LANGFILE_IDNAME + !endif + + !define LANGFILE_IDNAME "${NLFID}" + + ; ModernUI or the .nsi can change LANGFILE_LANGDLL_FMT if desired + !ifndef LANGFILE_LANGDLL_FMT + !ifndef NSIS_UNICODE + !define LANGFILE_LANGDLL_FMT "%ENGNAME% / %NATIVEASCIINAME%" + !endif + !define /ifndef LANGFILE_LANGDLL_FMT "%NATIVENAME%" + !endif + + !ifndef "LANGFILE_${NLFID}_NAME" + !if "${ENGNAME}" == "=" + !define /redef ENGNAME "${NLFID}" + !endif + !if "${NATIVEASCIINAME}" == "=" + !define /redef NATIVEASCIINAME "${NATIVENAME}" + !endif + + !define "LANGFILE_${NLFID}_ENGLISHNAME" "${ENGNAME}" + !ifdef NSIS_UNICODE + !define "LANGFILE_${NLFID}_NAME" "${NATIVENAME}" + !else + !define "LANGFILE_${NLFID}_NAME" "${NATIVEASCIINAME}" + !endif + + !searchreplace LANGFILE_${NLFID}_LANGDLL "${LANGFILE_LANGDLL_FMT}" %NATIVEASCIINAME% "${NATIVEASCIINAME}" + !searchreplace LANGFILE_${NLFID}_LANGDLL "${LANGFILE_${NLFID}_LANGDLL}" %NATIVENAME% "${NATIVENAME}" + !searchreplace LANGFILE_${NLFID}_LANGDLL "${LANGFILE_${NLFID}_LANGDLL}" %ENGNAME% "${ENGNAME}" + + !endif + + !endif + +!macroend + +!macro LANGFILE_EXT IDNAME + + ;Start of installer language file + + !ifdef LANGFILE_SETNAMES + + !define /redef LANGFILE_IDNAME "${IDNAME}" + + !endif + +!macroend + +!macro LANGFILE_SETSTRING NAME VALUE + + ;Set define with translated string + + !ifndef ${NAME} + !define "${NAME}" "${VALUE}" + !ifdef LANGFILE_PRIV_INCLUDEISFALLBACK + !warning 'LangString "${NAME}" for language ${LANGFILE_IDNAME} is missing, using fallback from "${LANGFILE_PRIV_INCLUDEISFALLBACK}"' + !endif + !endif + +!macroend + +!macro LANGFILE_LANGSTRING NAME DUMMY + + ;Create a language string from a define and undefine + + LangString "${NAME}" "${LANG_${LANGFILE_IDNAME}}" "${${NAME}}" + !undef "${NAME}" + +!macroend + +!endif + +;-------------------------------- + +/* + +InstallOptions.nsh +Macros and conversion functions for InstallOptions + +*/ + +!ifndef ___NSIS__INSTALL_OPTIONS__NSH___ +!define ___NSIS__INSTALL_OPTIONS__NSH___ + +!macro INSTALLOPTIONS_FUNCTION_READ_CONVERT + !insertmacro INSTALLOPTIONS_FUNCTION_IO2NSIS "" +!macroend + +!macro INSTALLOPTIONS_UNFUNCTION_READ_CONVERT + !insertmacro INSTALLOPTIONS_FUNCTION_IO2NSIS un. +!macroend + +!macro INSTALLOPTIONS_FUNCTION_WRITE_CONVERT + !insertmacro INSTALLOPTIONS_FUNCTION_NSIS2IO "" +!macroend + +!macro INSTALLOPTIONS_UNFUNCTION_WRITE_CONVERT + !insertmacro INSTALLOPTIONS_FUNCTION_NSIS2IO un. +!macroend + +!macro INSTALLOPTIONS_FUNCTION_NSIS2IO UNINSTALLER_FUNCPREFIX + + ; Convert an NSIS string to a form suitable for use by InstallOptions + ; Usage: + ; Push <NSIS-string> + ; Call Nsis2Io + ; Pop <IO-string> + + Function ${UNINSTALLER_FUNCPREFIX}Nsis2Io + + Exch $0 ; The source + Push $1 ; The output + Push $2 ; Temporary char + StrCpy $1 "" ; Initialise the output + + loop: + StrCpy $2 $0 1 ; Get the next source char + StrCmp $2 "" done ; Abort when none left + StrCpy $0 $0 "" 1 ; Remove it from the source + StrCmp $2 "\" "" +3 ; Back-slash? + StrCpy $1 "$1\\" + Goto loop + StrCmp $2 "$\r" "" +3 ; Carriage return? + StrCpy $1 "$1\r" + Goto loop + StrCmp $2 "$\n" "" +3 ; Line feed? + StrCpy $1 "$1\n" + Goto loop + StrCmp $2 "$\t" "" +3 ; Tab? + StrCpy $1 "$1\t" + Goto loop + StrCpy $1 "$1$2" ; Anything else + Goto loop + + done: + StrCpy $0 $1 + Pop $2 + Pop $1 + Exch $0 + + FunctionEnd + +!macroend + +!macro INSTALLOPTIONS_FUNCTION_IO2NSIS UNINSTALLER_FUNCPREFIX + + ; Convert an InstallOptions string to a form suitable for use by NSIS + ; Usage: + ; Push <IO-string> + ; Call Io2Nsis + ; Pop <NSIS-string> + + Function ${UNINSTALLER_FUNCPREFIX}Io2Nsis + + Exch $0 ; The source + Push $1 ; The output + Push $2 ; Temporary char + StrCpy $1 "" ; Initialise the output + + loop: + StrCpy $2 $0 1 ; Get the next source char + StrCmp $2 "" done ; Abort when none left + StrCpy $0 $0 "" 1 ; Remove it from the source + StrCmp $2 "\" +3 ; Escape character? + StrCpy $1 "$1$2" ; If not just output + Goto loop + StrCpy $2 $0 1 ; Get the next source char + StrCpy $0 $0 "" 1 ; Remove it from the source + StrCmp $2 "\" "" +3 ; Back-slash? + StrCpy $1 "$1\" + Goto loop + StrCmp $2 "r" "" +3 ; Carriage return? + StrCpy $1 "$1$\r" + Goto loop + StrCmp $2 "n" "" +3 ; Line feed? + StrCpy $1 "$1$\n" + Goto loop + StrCmp $2 "t" "" +3 ; Tab? + StrCpy $1 "$1$\t" + Goto loop + StrCpy $1 "$1$2" ; Anything else (should never get here) + Goto loop + + done: + StrCpy $0 $1 + Pop $2 + Pop $1 + Exch $0 + +FunctionEnd + +!macroend + +!macro INSTALLOPTIONS_EXTRACT FILE + + InitPluginsDir + File "/oname=$PLUGINSDIR\${FILE}" "${FILE}" + !ifdef NSIS_UNICODE + !ifdef UMUI_USE_INSTALLOPTIONSEX + InstallOptionsEx::make_unicode "$PLUGINSDIR\${FILE}" + !else + InstallOptions::make_unicode "$PLUGINSDIR\${FILE}" + !endif + !endif + !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Settings" "RTL" "$(^RTL)" + +!macroend + +!macro INSTALLOPTIONS_EXTRACT_AS FILE FILENAME + + InitPluginsDir + File "/oname=$PLUGINSDIR\${FILENAME}" "${FILE}" + !ifdef NSIS_UNICODE + !ifdef UMUI_USE_INSTALLOPTIONSEX + InstallOptionsEx::make_unicode "$PLUGINSDIR\${FILENAME}" + !else + InstallOptions::make_unicode "$PLUGINSDIR\${FILENAME}" + !endif + !endif + !insertmacro INSTALLOPTIONS_WRITE "${FILENAME}" "Settings" "RTL" "$(^RTL)" + +!macroend + +!macro INSTALLOPTIONS_DISPLAY FILE + + !insertmacro MUI_INSTALLOPTIONS_DISPLAY_RETURN ${FILE} + Exch + +!macroend + +!macro INSTALLOPTIONS_DISPLAY_RETURN FILE + + ; IF setup cancelled + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + + !define /IfNDef MUI_PAGE_UNINSTALLER_PREFIX "" + + ; we can't use InstallOptions::dialog function with UMUI because the background can not be initialised + Push $MUI_TEMP1 + Push $MUI_TEMP2 + Push $R0 + Push $0 + Push $1 + Push $R1 + + !insertmacro INSTALLOPTIONS_INITDIALOG "${FILE}" + Pop $MUI_TEMP1 + + !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $MUI_TEMP1 + + !insertmacro INSTALLOPTIONS_READ $R0 "${FILE}" "Settings" "NumFields" + + ;$R0 NumField + ;$R1 type + ;$0 counter + ;$1 counter + 1200 + + StrCpy $1 1200 + StrCpy $0 0 + + ;do + loop: + IntOp $0 $0 + 1 + + GetDlgItem $MUI_TEMP2 $MUI_TEMP1 $1 + + !insertmacro INSTALLOPTIONS_READ $R1 "${FILE}" "Field $0" "Type" + ;if text + StrCmp $R1 "Text" input 0 + ;else if password + StrCmp $R1 "Password" input 0 + ;else if listbox + StrCmp $R1 "ListBox" input 0 + ;else if DropList + StrCmp $R1 "DropList" input 0 + ;else if DateTime + StrCmp $R1 "DateTime" input 0 + ;else if ComboBox + StrCmp $R1 "ComboBox" input 0 + ;else if TreeView + StrCmp $R1 "TreeView" input 0 + ;else if IPAddress + StrCmp $R1 "IPAddress" input 0 + ;else if FileRequest + StrCmp $R1 "FileRequest" +2 0 + ;else if DirRequest + StrCmp $R1 "DirRequest" 0 notInput + IntOp $1 $1 + 1 + + input: + !insertmacro UMUI_IOPAGEINPUTCTL_INIT $MUI_TEMP2 + Goto test + notInput: + +!ifndef USE_MUIEx +;---------------- + ;if GroupBox + StrCmp $R1 "GroupBox" 0 notGroupBox + !insertmacro UMUI_IOPAGECTLLIGHT_INIT $MUI_TEMP2 + Goto test + notGroupBox: + ;else if link + StrCmp $R1 "Link" 0 notLink + !insertmacro UMUI_IOPAGECTLLIGHTTRANSPARENT_INIT $MUI_TEMP2 + Goto test + notLink: + + !if "${UMUI_XPSTYLE}" == "On" + ;else if CheckBox + StrCmp $R1 "CheckBox" +2 0 + ;else if RadioButton + StrCmp $R1 "RadioButton" 0 notCheckBoxRadio + !insertmacro UMUI_IOPAGECTL_INIT $MUI_TEMP2 + Goto test + notCheckBoxRadio: + !endif + + ;else if not Button (label, checkbox, radiobutton...) + StrCmp $R1 "Button" test 0 + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MUI_TEMP2 + +!endif +;----- + + test: + IntOp $1 $1 + 1 + ;while $0 <= $R0 + IntCmp $0 $R0 0 loop 0 + + Pop $R1 + Pop $1 + Pop $0 + Pop $R0 + Pop $MUI_TEMP2 + Exch $MUI_TEMP1 + + !insertmacro INSTALLOPTIONS_SHOW_RETURN + +!macroend + +!macro INSTALLOPTIONS_INITDIALOG FILE + + !ifdef UMUI_USE_INSTALLOPTIONSEX + !insertmacro UMUI_INSTALLOPTIONSEX_CONVERT "${FILE}" + InstallOptionsEx::initDialog "$PLUGINSDIR\${FILE}" + !insertmacro UMUI_INSTALLOPTIONSEX_CONVERT_NEXT "${FILE}" + !else + InstallOptions::initDialog "$PLUGINSDIR\${FILE}" + !endif + + !insertmacro UMUI_UMUI_HIDEBACKBUTTON + +!macroend + +!macro INSTALLOPTIONS_SHOW + + Push $0 + + !ifdef UMUI_USE_INSTALLOPTIONSEX + InstallOptionsEx::show + !else + InstallOptions::show + !endif + Pop $0 + + Pop $0 + +!macroend + +!macro INSTALLOPTIONS_SHOW_RETURN + + !ifdef UMUI_USE_INSTALLOPTIONSEX + InstallOptionsEx::show + !else + InstallOptions::show + !endif + +!macroend + +!macro INSTALLOPTIONS_READ VAR FILE SECTION KEY + + ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" + +!macroend + +!macro INSTALLOPTIONS_WRITE FILE SECTION KEY VALUE + + WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" "${VALUE}" + +!macroend + +!macro INSTALLOPTIONS_READ_CONVERT VAR FILE SECTION KEY + + ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" + Push ${VAR} + Call Io2Nsis + Pop ${VAR} + +!macroend + +!macro INSTALLOPTIONS_READ_UNCONVERT VAR FILE SECTION KEY + + ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" + Push ${VAR} + Call un.Io2Nsis + Pop ${VAR} + +!macroend + +!macro INSTALLOPTIONS_WRITE_CONVERT FILE SECTION KEY VALUE + + Push $0 + StrCpy $0 "${VALUE}" + Push $0 + Call Nsis2Io + Pop $0 + + WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" $0 + + Pop $0 + +!macroend + +!macro INSTALLOPTIONS_WRITE_UNCONVERT FILE SECTION KEY VALUE + + Push $0 + StrCpy $0 "${VALUE}" + Push $0 + Call un.Nsis2Io + Pop $0 + + WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" $0 + + Pop $0 + +!macroend + +!endif # ___NSIS__INSTALL_OPTIONS__NSH___ + + +;-------------------------------- +;END + +!verbose pop !endif \ No newline at end of file diff --git a/CreateZipUMUI.bat b/CreateZipUMUI.bat index 7e6ba7a..2e0bb89 100644 --- a/CreateZipUMUI.bat +++ b/CreateZipUMUI.bat @@ -1,123 +1,123 @@ -@echo off -@echo Creating UltraModernUI zip archive - - del /Q UltraModernUI_2.0b5.zip - rmdir /S /Q temp - - mkdir temp - copy NSISUMUI.exe temp - - mkdir "temp\Contrib\UltraModernUI\" - copy Contrib\UltraModernUI\UMUI.nsh temp\Contrib\UltraModernUI - mkdir "temp\Contrib\UltraModernUI\Ini" - copy Contrib\UltraModernUI\Ini\*.ini temp\Contrib\UltraModernUI\Ini - mkdir "temp\Contrib\UltraModernUI\Language files\" - copy "Contrib\UltraModernUI\Language files\*.nsh" "temp\Contrib\UltraModernUI\Language files" - mkdir "temp\Contrib\UltraModernUI\BGSkins\" - xcopy Contrib\UltraModernUI\BGSkins\* temp\Contrib\UltraModernUI\BGSkins /S /E - mkdir "temp\Contrib\UltraModernUI\Skins\" - xcopy Contrib\UltraModernUI\Skins\* temp\Contrib\UltraModernUI\Skins /S /E - - mkdir "temp\Docs\UltraModernUI\" - copy Docs\UltraModernUI\*.* temp\Docs\UltraModernUI - mkdir "temp\Docs\UltraModernUI\images\" - copy Docs\UltraModernUI\images\*.gif temp\Docs\UltraModernUI\images - copy Docs\UltraModernUI\images\*.png temp\Docs\UltraModernUI\images - - mkdir "temp\Examples\UltraModernUI\" - copy Examples\UltraModernUI\*.nsi temp\Examples\UltraModernUI - copy Examples\UltraModernUI\*.ini temp\Examples\UltraModernUI - copy Examples\UltraModernUI\*.txt temp\Examples\UltraModernUI - - mkdir "temp\Contrib\UIs\UltraModernUI\" - copy Contrib\UIs\UltraModernUI\*.exe temp\Contrib\UIs\UltraModernUI - - mkdir "temp\Contrib\Graphics\UltraModernUI\" - copy Contrib\Graphics\UltraModernUI\*.* temp\Contrib\Graphics\UltraModernUI - - mkdir "temp\Include\" - copy Include\UMUI.nsh temp\Include - copy Include\MUIEx.nsh temp\Include - - - mkdir "temp\Plugins\x86-ansi\" - copy Plugins\x86-ansi\SkinnedControls.dll temp\Plugins\x86-ansi - mkdir "temp\Plugins\x86-unicode\" - copy Plugins\x86-unicode\SkinnedControls.dll temp\Plugins\x86-unicode - - mkdir "temp\Docs\SkinnedControls\" - copy Docs\SkinnedControls\*.* temp\Docs\SkinnedControls - mkdir "temp\Docs\SkinnedControls\images\" - copy Docs\SkinnedControls\images\*.png temp\Docs\SkinnedControls\images - copy Docs\SkinnedControls\images\*.gif temp\Docs\SkinnedControls\images - - mkdir "temp\Contrib\SkinnedControls\" - copy Contrib\SkinnedControls\*.h temp\Contrib\SkinnedControls - copy Contrib\SkinnedControls\*.c temp\Contrib\SkinnedControls - copy Contrib\SkinnedControls\SkinnedControls.sln temp\Contrib\SkinnedControls - copy Contrib\SkinnedControls\SkinnedControls.vcproj temp\Contrib\SkinnedControls - mkdir "temp\Contrib\SkinnedControls\coolsb" - copy Contrib\SkinnedControls\coolsb\*.h temp\Contrib\SkinnedControls\coolsb - copy Contrib\SkinnedControls\coolsb\*.c temp\Contrib\SkinnedControls\coolsb - copy Contrib\SkinnedControls\coolsb\detours.lib temp\Contrib\SkinnedControls\coolsb - copy Contrib\SkinnedControls\coolsb\coolsb.vcproj temp\Contrib\SkinnedControls\coolsb - - mkdir "temp\Contrib\SkinnedControls\skins" - copy Contrib\SkinnedControls\skins\*.bmp temp\Contrib\SkinnedControls\skins - - mkdir "temp\Examples\SkinnedControls\" - copy Examples\SkinnedControls\*.nsi temp\Examples\SkinnedControls - -rem mkdir "temp\Contrib\UIs" - copy Contrib\UIs\modern_sb.exe temp\Contrib\UIs - copy Contrib\UIs\default_sb.exe temp\Contrib\UIs - - -rem mkdir "temp\Plugins\x86-ansi\" - copy Plugins\x86-ansi\InstallOptionsEx.dll temp\Plugins\x86-ansi -rem mkdir "temp\Plugins\x86-unicode\" - copy Plugins\x86-unicode\InstallOptionsEx.dll temp\Plugins\x86-unicode - - mkdir "temp\Docs\InstallOptionsEx\" - copy Docs\InstallOptionsEx\*.* temp\Docs\InstallOptionsEx - - mkdir "temp\Contrib\InstallOptionsEx\" - copy Contrib\InstallOptionsEx\*.h temp\Contrib\InstallOptionsEx - copy Contrib\InstallOptionsEx\*.cpp temp\Contrib\InstallOptionsEx - copy Contrib\InstallOptionsEx\*.c temp\Contrib\InstallOptionsEx - copy Contrib\InstallOptionsEx\ioptdll.rc temp\Contrib\InstallOptionsEx - copy Contrib\InstallOptionsEx\io.sln temp\Contrib\InstallOptionsEx - copy Contrib\InstallOptionsEx\io.vcproj temp\Contrib\InstallOptionsEx - mkdir "temp\Contrib\InstallOptionsEx\Controls" - copy Contrib\InstallOptionsEx\Controls\*.h temp\Contrib\InstallOptionsEx\Controls - - mkdir "temp\Examples\InstallOptionsEx\" - copy Examples\InstallOptionsEx\*.nsi temp\Examples\InstallOptionsEx - copy Examples\InstallOptionsEx\*.ini temp\Examples\InstallOptionsEx - - -rem mkdir "temp\Plugins\x86-ansi\" - copy Plugins\x86-ansi\nsArray.dll temp\Plugins\x86-ansi -rem mkdir "temp\Plugins\x86-unicode\" - copy Plugins\x86-unicode\nsArray.dll temp\Plugins\x86-unicode - -rem mkdir "temp\Include\" - copy Include\nsArray.nsh temp\Include - - mkdir "temp\Docs\nsArray\" - copy Docs\nsArray\*.* temp\Docs\nsArray - - mkdir "temp\Examples\nsArray\" - copy Examples\nsArray\*.nsi temp\Examples\nsArray - - mkdir "temp\Contrib\nsArray\" - copy Contrib\nsArray\*.* temp\Contrib\nsArray - - cd temp - "C:\Program Files\7-Zip\7z.exe" a -tzip -mx9 ..\UltraModernUI_2.0b5.zip * - cd .. - - rmdir /S /Q temp - -@echo Process completed +@echo off +@echo Creating UltraModernUI zip archive + + del /Q UltraModernUI_2.0b6.zip + rmdir /S /Q temp + + mkdir temp + copy NSISUMUI.exe temp + + mkdir "temp\Contrib\UltraModernUI\" + copy Contrib\UltraModernUI\UMUI.nsh temp\Contrib\UltraModernUI + mkdir "temp\Contrib\UltraModernUI\Ini" + copy Contrib\UltraModernUI\Ini\*.ini temp\Contrib\UltraModernUI\Ini + mkdir "temp\Contrib\UltraModernUI\Language files\" + copy "Contrib\UltraModernUI\Language files\*.nsh" "temp\Contrib\UltraModernUI\Language files" + mkdir "temp\Contrib\UltraModernUI\BGSkins\" + xcopy Contrib\UltraModernUI\BGSkins\* temp\Contrib\UltraModernUI\BGSkins /S /E + mkdir "temp\Contrib\UltraModernUI\Skins\" + xcopy Contrib\UltraModernUI\Skins\* temp\Contrib\UltraModernUI\Skins /S /E + + mkdir "temp\Docs\UltraModernUI\" + copy Docs\UltraModernUI\*.* temp\Docs\UltraModernUI + mkdir "temp\Docs\UltraModernUI\images\" + copy Docs\UltraModernUI\images\*.gif temp\Docs\UltraModernUI\images + copy Docs\UltraModernUI\images\*.png temp\Docs\UltraModernUI\images + + mkdir "temp\Examples\UltraModernUI\" + copy Examples\UltraModernUI\*.nsi temp\Examples\UltraModernUI + copy Examples\UltraModernUI\*.ini temp\Examples\UltraModernUI + copy Examples\UltraModernUI\*.txt temp\Examples\UltraModernUI + + mkdir "temp\Contrib\UIs\UltraModernUI\" + copy Contrib\UIs\UltraModernUI\*.exe temp\Contrib\UIs\UltraModernUI + + mkdir "temp\Contrib\Graphics\UltraModernUI\" + copy Contrib\Graphics\UltraModernUI\*.* temp\Contrib\Graphics\UltraModernUI + + mkdir "temp\Include\" + copy Include\UMUI.nsh temp\Include + copy Include\MUIEx.nsh temp\Include + + + mkdir "temp\Plugins\x86-ansi\" + copy Plugins\x86-ansi\SkinnedControls.dll temp\Plugins\x86-ansi + mkdir "temp\Plugins\x86-unicode\" + copy Plugins\x86-unicode\SkinnedControls.dll temp\Plugins\x86-unicode + + mkdir "temp\Docs\SkinnedControls\" + copy Docs\SkinnedControls\*.* temp\Docs\SkinnedControls + mkdir "temp\Docs\SkinnedControls\images\" + copy Docs\SkinnedControls\images\*.png temp\Docs\SkinnedControls\images + copy Docs\SkinnedControls\images\*.gif temp\Docs\SkinnedControls\images + + mkdir "temp\Contrib\SkinnedControls\" + copy Contrib\SkinnedControls\*.h temp\Contrib\SkinnedControls + copy Contrib\SkinnedControls\*.c temp\Contrib\SkinnedControls + copy Contrib\SkinnedControls\SkinnedControls.sln temp\Contrib\SkinnedControls + copy Contrib\SkinnedControls\SkinnedControls.vcproj temp\Contrib\SkinnedControls + mkdir "temp\Contrib\SkinnedControls\coolsb" + copy Contrib\SkinnedControls\coolsb\*.h temp\Contrib\SkinnedControls\coolsb + copy Contrib\SkinnedControls\coolsb\*.c temp\Contrib\SkinnedControls\coolsb + copy Contrib\SkinnedControls\coolsb\detours.lib temp\Contrib\SkinnedControls\coolsb + copy Contrib\SkinnedControls\coolsb\coolsb.vcproj temp\Contrib\SkinnedControls\coolsb + + mkdir "temp\Contrib\SkinnedControls\skins" + copy Contrib\SkinnedControls\skins\*.bmp temp\Contrib\SkinnedControls\skins + + mkdir "temp\Examples\SkinnedControls\" + copy Examples\SkinnedControls\*.nsi temp\Examples\SkinnedControls + +rem mkdir "temp\Contrib\UIs" + copy Contrib\UIs\modern_sb.exe temp\Contrib\UIs + copy Contrib\UIs\default_sb.exe temp\Contrib\UIs + + +rem mkdir "temp\Plugins\x86-ansi\" + copy Plugins\x86-ansi\InstallOptionsEx.dll temp\Plugins\x86-ansi +rem mkdir "temp\Plugins\x86-unicode\" + copy Plugins\x86-unicode\InstallOptionsEx.dll temp\Plugins\x86-unicode + + mkdir "temp\Docs\InstallOptionsEx\" + copy Docs\InstallOptionsEx\*.* temp\Docs\InstallOptionsEx + + mkdir "temp\Contrib\InstallOptionsEx\" + copy Contrib\InstallOptionsEx\*.h temp\Contrib\InstallOptionsEx + copy Contrib\InstallOptionsEx\*.cpp temp\Contrib\InstallOptionsEx + copy Contrib\InstallOptionsEx\*.c temp\Contrib\InstallOptionsEx + copy Contrib\InstallOptionsEx\ioptdll.rc temp\Contrib\InstallOptionsEx + copy Contrib\InstallOptionsEx\io.sln temp\Contrib\InstallOptionsEx + copy Contrib\InstallOptionsEx\io.vcproj temp\Contrib\InstallOptionsEx + mkdir "temp\Contrib\InstallOptionsEx\Controls" + copy Contrib\InstallOptionsEx\Controls\*.h temp\Contrib\InstallOptionsEx\Controls + + mkdir "temp\Examples\InstallOptionsEx\" + copy Examples\InstallOptionsEx\*.nsi temp\Examples\InstallOptionsEx + copy Examples\InstallOptionsEx\*.ini temp\Examples\InstallOptionsEx + + +rem mkdir "temp\Plugins\x86-ansi\" + copy Plugins\x86-ansi\nsArray.dll temp\Plugins\x86-ansi +rem mkdir "temp\Plugins\x86-unicode\" + copy Plugins\x86-unicode\nsArray.dll temp\Plugins\x86-unicode + +rem mkdir "temp\Include\" + copy Include\nsArray.nsh temp\Include + + mkdir "temp\Docs\nsArray\" + copy Docs\nsArray\*.* temp\Docs\nsArray + + mkdir "temp\Examples\nsArray\" + copy Examples\nsArray\*.nsi temp\Examples\nsArray + + mkdir "temp\Contrib\nsArray\" + copy Contrib\nsArray\*.* temp\Contrib\nsArray + + cd temp + "C:\Program Files\7-Zip\7z.exe" a -tzip -mx9 ..\UltraModernUI_2.0b6.zip * + cd .. + + rmdir /S /Q temp + +@echo Process completed @echo on \ No newline at end of file diff --git a/Docs/UltraModernUI/Readme.html b/Docs/UltraModernUI/Readme.html index 7903364..5968fed 100644 --- a/Docs/UltraModernUI/Readme.html +++ b/Docs/UltraModernUI/Readme.html @@ -1,2835 +1,2835 @@ -<!DOCTYPE html> -<html lang="en"> - -<head> - - <meta content="SuperPat" name="author" /> - <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> - - <link rel="stylesheet" href="style.css" type="text/css" /> - - <script type="text/javascript" src="script.js"></script> - - <title>NSIS Ultra-Modern User Interface</title> - -</head> - -<body> - - <div class="maintable"> - - <a target="_blank" href="http://ultramodernui.sourceforge.net/" title="Go to the NSIS Ultra-Modern User Interface home page"><img src="images/header.png" alt="NSIS Ultra-Modern User Interface" /></a> - - <p class="options"><a onclick="loadSlider();expandall();">[Expand all]</a> <a onclick="collapseall();">[Collapse all]</a></p> - - <div> - - <img class="smallScreen" src="images/SmallScreen.png" alt="" /> - - <h1>Introduction</h1> - - <div style="text-align: justify;"> - <p>The Ultra-Modern User Interface is a new interface with a style like the most recent installers for NSIS 3 (Nullsoft Scriptable Install System) x86 edition, the tool that allows programmers to create such installers for Windows. Ultra-Modern UI and NSIS are released under an open source license.</p> - <p>The Ultra-Modern User Interface also features new pages (Confirm, Abort, AlternativeStartMenu, AdditionalTasks, Information, Maintenance, Update, SetupType...). The interface and the graphics can be customized using the provided settings and the new skins system. </p> - <p>Ultra-Modern UI include also another User Interface named Modern UIEx. Modern UIEx is the same User Interface as the original Modern UI style but with the support of the new ultra-modern pages and with a little more options.</p> - <p>Using the Ultra-Modern UI macros and language files, writing scripts with an ultra-modern interface is easy. A lot of examples are available to show the different features and this document contains all information about writing Ultra-Modern UI scripts and a reference of all settings.</p> - <p>The issue of Ultra-Modern UI is to be the most compatible with the existing Modern UI scripts. Because of it is based on the Modern UI of Joost Verburg, it uses the same macro and define and provide new one. The new macro and define use the prefix UMUI_ instead of MUI_.</p> - <p>Please be aware that the Ultra-Modern UI and the Modern UI interfaces settings are different compared to the classic interface. This means that you should not use settings like LicenseText, Icon, CheckBitmap, InstallColors etc. but the ones that are documented here.</p> - <p>Ultra-Modern UI include three NSIS plug-ins:</p> - <ul> - <li><a target="_blank" href="../SkinnedControls/Readme.html">SkinnedControls</a>: a plug-in, natively integrated to Ultra-Modern UI, to skin all buttons and scroll bars of your installer;</li> - <li><a target="_blank" href="../InstallOptionsEx/Readme.html">InstallOptionsEx</a>: an extension, natively integrated to Ultra-Modern UI, of the original <a target="_blank" href="../InstallOptions/Readme.html">InstallOptions</a> plug-in with more feature to create custom pages;</li> - <li><a target="_blank" href="../nsArray/Readme.txt">nsArray</a>: needed by some Ultra-Modern UI features, provide less out-of-the-box arrays and map features.</li> - </ul> - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_screenshots" src="images/closed.gif" onclick="loadSlider();toggle('trigger_screenshots', 'toggle_screenshots');" /> Screenshots</h3> - <div class="toggle" id="toggle_screenshots"> - - <div id="sliderFrame"> - <div id="slider"> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI01.png" alt="Multi language page with default skin" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI02.png" alt="Welcome page with blue skin with alternative text and alternative style options" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI03.png" alt="Maintenance page with blue2 skin with page background image option" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI04.png" alt="Update page with SoftBlue skin with page background image option" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI05.png" alt="License page with SoftRed skin" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI06.png" alt="Information page in RTF file with SoftBrown skin" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI07.png" alt="Setup type page" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI08.png" alt="Directory page with unique background image option" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI09.png" alt="Alternative start menu page with TreeView" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI10.png" alt="Additional tasks page with green skin" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI11b.png" alt="Installer confirm page with red skin" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI12.png" alt="Abort page" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUINoLeftImage01.png" alt="License page with the no left image option" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUINoLeftImage02.png" alt="Directory page with the no left image option with SoftBule skin" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUISmall01.png" alt="Welcome page with the small page option" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUISmall02.png" alt="Directory page with the small page option" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/MUIEx01.png" alt="Multi language page with the Modern UIEx interface" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/MUIEx02.png" alt="Setup type page with the Modern UIEx interface" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/MUIEx03.png" alt="Additional tasks page with the Modern UIEx interface" /> - <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/MUIEx04.png" alt="Serial number page with the Modern UIEx interface" /> - </div> - </div> - - </div> - - <p>The colors, that are used in this document, correspond to the differences between Ultra-Modern UI / Modern UIEx and the original Modern UI:</p> - <ul> - <li><strong>BLACK:</strong> macro and define that were the same;</li> - <li><span class="red"><strong>RED:</strong></span> macro and define that were removed;</li> - <li><span class="blue"><strong>BLUE:</strong></span> macro and define that were added;</li> - <li><span class="purple"><strong>PURPLE:</strong></span> macro and define that were modified.</li> - </ul> - - </div> - - <h1>Writing Ultra-Modern UI Scripts</h1> - - <div style="text-align: justify;"> - <p>The Ultra-Modern UI has a macro system, so all the code to control the interface has already been written for you.</p> - <p>If you want to start a new Ultra-Modern UI script or upgrade an older script with the Modern UI or Classic UI, follow the steps below.</p> - <p>Taking a look at the <a href="#examples">example scripts</a> will also help you to learn more about the Ultra-Modern UI.</p> - - <h2>Syntax</h2> - <div> - <p>Some defines (e.g. MUI_COMPONENTSPAGE_SMALLDESC) don't need a value, they are true/false settings. Others (e.g. MUI_UI) can be used to define a specific value.</p> - <p>Parameters are specified in this format: <span class="parameter">required (option1 | option2) [optional]</span></p> - <p>Parameters for defined settings should be in one string:</p> - <pre>!define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br />!define MUI_UI "myUI.exe" ;Value<br />!define MUI_INSTFILESPAGE_COLORS "FFFFFF 000000" ;Multiple settings<br /></pre> - <p>If you want a certain value (e.g. a text) to be language-specific, set a language string (using LangString) and define $(STRINGNAME) as value. Use a license language string (LicenseLangString) for the license text.</p> - <p>If you want to add " to a Modern UI string, you should always escape it using $\" because the Modern UI macros use " to separate parameters.</p> - </div> - - - <h2>1. Header file</h2> - <div> - - <p>If you want to upgrade your Modern UI script to the Ultra-Modern style, simply replace the line:</p> - <pre>!include "MUI.nsh"</pre> - <p>in your script by this one:</p> - <pre><span class="purple">!include "UMUI.nsh"</span></pre> - <p>Or this one if you want to use the Modern UIEx style (The extended version of Modern UI but with the support of the new Ultra-Modern pages):</p> - <pre><span class="purple">!include "MUIEx.nsh"</span></pre> - - <p>UMUI.nsh and MUIEx.nsh are in the Include directory, so you don't have to specify a path.</p> - - Warning, if you use the .onGuiEnd or un.onGuiEnd functions in your script, <a href="#customFunctions">see this link</a> - </div> - - - <h2><a id="interfaceConf">2. Interface Configuration</a></h2> - <div> - - <p>Interface settings should be set before inserting page macros. Page interface settings apply to all pages of a certain type.</p> - <p>There are some difference between UMUI and MUIEx defined in particular on the default values:</p> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_in" src="images/closed.gif" onclick="toggle('trigger_umui_in', 'toggle_umui_in');" /> Interface Settings for Ultra-Modern UI</h3> - <div class="toggle" id="toggle_umui_in"> - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_ac" src="images/closed.gif" onclick="toggle('trigger_umui_ac', 'toggle_umui_ac');" /> Skin Setting</h3> - <div class="toggle" id="toggle_umui_ac"> - - <p><span class="blue"><strong>UMUI_SKIN</strong></span> <span class="parameter">skin_name</span><br /> - Use a skin. It contain a lot of interface settings defines. You can change a setting to redefining it.<br /> - You can also use a custom skin not included in the default skin folders. It can contain all the Interface Setting defines you need.<br /> - <span class="blue"><em>Default: none</em></span></p> - - <p><em style="font-style: normal;">Example of the "blue" skin:</em></p> -<pre>!define /IfNDef MUI_TEXTCOLOR FFFFFF -!define /IfNDef MUI_BGCOLOR 4C72B2 -!define /IfNDef UMUI_TEXT_LIGHTCOLOR FFFF00 -!define /IfNDef UMUI_HEADERTEXT_COLOR FFFFFF -!define /IfNDef UMUI_BRANDINGTEXTFRONTCOLOR 8b8ca4 -!define /IfNDef UMUI_BRANDINGTEXTBACKCOLOR eeeef3 -!define /IfNDef UMUI_DISABLED_BUTTON_TEXT_COLOR 808080 -!define /IfNDef UMUI_SELECTED_BUTTON_TEXT_COLOR 000080 -!define /IfNDef UMUI_BUTTON_TEXT_COLOR 000000 -!define /IfNDef UMUI_LEFTIMAGE_BMP \ - "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Left.bmp" -!define /IfNDef UMUI_HEADERBGIMAGE_BMP \ - "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Header.bmp" -!define /IfNDef UMUI_BOTTOMIMAGE_BMP \ - "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Bottom.bmp" -!define /IfNDef UMUI_BUTTONIMAGE_BMP \ - "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp" -!define /IfNDef UMUI_SCROLLBARIMAGE_BMP \ - "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\ScrollBar.bmp" -!define /IfNDef UMUI_PAGEBGIMAGE_BMP \ - "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\PageBG.bmp" -!define /IfNDef MUI_WELCOMEFINISHPAGE_BITMAP \ - "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Wizard.bmp" -!define /IfNDef MUI_ICON \ - "${NSISDIR}\Contrib\Graphics\UltraModernUI\Icon.ico" -!define /IfNDef MUI_UNICON \ - "${NSISDIR}\Contrib\Graphics\UltraModernUI\UnIcon.ico"</pre> - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_ad" src="images/closed.gif" onclick="toggle('trigger_umui_ad', 'toggle_umui_ad');" /> BackGround Skin Setting</h3> - <div class="toggle" id="toggle_umui_ad"> - - <p><span class="blue"><strong>UMUI_USE_BG</strong></span> <span class="parameter">background_skin_name</span><br /> - Use a background skin. It contain two macro named "UMUI_BG" and "UMUI_BG_Destroy".<br /> - <span class="blue"><em>Default: none</em></span></p> - - <p><span class="blue"><strong>UMUI_USE_CUSTOMBG</strong></span><br /> - Use a custom background skin. don't forget to create two macro named "UMUI_BG" and "UMUI_BG_Destroy".</p> - - <p><em style="font-style: normal;">Example of a custom background skin:</em></p> - -<pre>!define UMUI_USE_CUSTOMBG - -!macro UMUI_BG - SetOutPath "$PLUGINSDIR" - File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\SpotlightBG.bmp" - File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\KeyBG.bmp" - File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\HeaderBG.bmp" - File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\BtmImgBG.bmp" - BgImage::SetBg /GRADIENT 78 111 214 78 111 214 - BgImage::AddImage "$PLUGINSDIR\HeaderBG.bmp" 0 0 - BgImage::AddImage "$PLUGINSDIR\SpotlightBG.bmp" 0 57 - BgImage::AddImage "$PLUGINSDIR\BtmImgBG.bmp" 0 -70 - BgImage::AddImage "$PLUGINSDIR\KeyBG.bmp" -248 -351 - CreateFont $1 "Verdana" 30 700 - BgImage::AddText "$(^Name)" $1 8 51 155 15 70 -1 -1 - BgImage::AddText "$(^Name)" $1 255 255 255 10 65 -1 -1 - BgImage::Redraw -!macroend - -!macro UMUI_BG_Destroy - BgImage::Destroy -!macroend</pre> - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_ingen" src="images/closed.gif" onclick="toggle('trigger_umui_ingen', 'toggle_umui_ingen');" /> General Interface Settings</h3> - <div class="toggle" id="toggle_umui_ingen"> - - <p><strong>MUI_ICON</strong> <span class="parameter">icon_file</span><br /> - The icon for the installer.<br /> - <span class="purple"><em>Default: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Icon.ico</em></span></p> - - <p><strong>MUI_UNICON</strong> <span class="parameter">icon_file</span><br /> - The icon for the uninstaller.<br /> - <span class="purple"><em>Default: ${NSISDIR}\Contrib\Graphics\UltraModernUI\UnIcon.ico</em></span></p> - - <p><span class="red"><strong>MUI_HEADERIMAGE</strong></span><br /> - Display an image on the header of the page.</p> - - <div> - - <p><span class="red"><strong>MUI_HEADERIMAGE_BITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of installers pages (recommended size: 150x57 pixels).<br /> - <em>Default: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp</em></p> - - <div> - <p><span class="red"><strong>MUI_HEADERIMAGE_BITMAP_NOSTRETCH</strong></span><br /> - Do not stretch the installer header bitmap to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - - <p><span class="red"><strong>MUI_HEADERIMAGE_BITMAP_RTL</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of installers pages when using a RTL language (recommended size: 150x57 pixels).<br /> - <em>Default: Non-RTL bitmap</em></p> - - <div> - <p><span class="red"><strong>MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH</strong></span><br /> - Do not stretch the installer header bitmap when using a RTL language to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - </div> - </div> - - <p><span class="red"><strong>MUI_HEADERIMAGE_UNBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of uninstaller pages (recommended size: 150x57 pixels).<br /> - <em>Default: Installer header bitmap</em></p> - - <div> - <p><span class="red"><strong>MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH</strong></span><br /> - Do not stretch the uninstaller header bitmap to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - - <p><span class="red"><strong>MUI_HEADERIMAGE_UNBITMAP_RTL</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of uninstallers pages when using a RTL language (recommended size: 150x57 pixels).<br /> - <em>Default: Installer RTL header bitmap</em></p> - - <div> - <p><span class="red"><strong>MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH</strong></span><br /> - Do not stretch the uninstaller header bitmap when using a RTL language to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - </div> - </div> - - <p><span class="red"><strong>MUI_HEADERIMAGE_RIGHT</strong></span><br /> - Display the header image on the right side instead of the left side (when using a RTL language it will be displayed on the left side instead of the right side).</p> - - </div> - - <p><strong>MUI_TEXTCOLOR</strong> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for all the pages. - <span class="purple"><em>Default: FFFFFF</em></span></p> - - <p><span class="blue"><strong>UMUI_TEXT_LIGHTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for GroupBox and Link of all the pages.<br /> - <span class="blue"><em>Default: FFFF00</em></span></p> - - <p><span class="blue"><strong>UMUI_TEXT_INPUTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for input controls (except checkboxes and radio buttons) of all the pages.<br /> - <span class="blue"><em>Default: 000000</em></span></p> - - <p><span class="blue"><strong>UMUI_BGINPUTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Background color for input controls (except checkboxes and radio buttons) of all the pages.<br /> - <span class="blue"><em>Default: FFFFFF</em></span></p> - - <p><strong>MUI_BGCOLOR</strong> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Background color for all the pages.<br /> - <span class="purple"><em>Default: 4C72B2</em></span></p> - - <p><span class="blue"><strong>UMUI_BRANDINGTEXTFRONTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Branding text front color for all the pages.<br /> - <span class="blue"><em>Default: 8b8ca4</em></span></p> - - <p><span class="blue"><strong>UMUI_BRANDINGTEXTBACKCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Branding text back color for all the pages.<br /> - <span class="blue"><em>Default: eeeef3</em></span></p> - - <p><span class="blue"><strong>UMUI_HEADERTEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Header text color for all the pages.<br /> - <span class="blue"><em>Default: ${MUI_TEXTCOLOR}</em></span></p> - - <p><span class="red"><strong>MUI_HEADER_TRANSPARENT_TEXT</strong></span><br /> - Set a transparent background for the header's label controls. Useful for custom user interfaces that set a bigger header image.</p> - - <p><span class="blue"><strong>UMUI_HEADERBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of installers pages.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Header.bmp</em></span></p> - - <p><span class="blue"><strong>UMUI_LEFTIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the left of installers pages.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Left.bmp</em></span></p> - - <p><span class="blue"><strong>UMUI_BOTTOMIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the bottom of installers pages.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\BtmImg.bmp</em></span></p> - - <div> - <span class="blue"><strong>UMUI_NOBOTTOMIMAGE</strong></span><br /> - Don't draw the bottom Image of installers and uninstallers pages. - </div> - - <p><span class="blue"><strong>UMUI_UNIQUEBGIMAGE</strong></span><br /> - Show a single full background image of installer.</p> - - <p><span class="blue"><strong>UMUI_PAGEBGIMAGE</strong></span><br /> - Show a background image on installers page.</p> - - <div> - <p><span class="blue"><strong>UMUI_PAGEBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image for background of installers pages or single full bitmap image of installer.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\PageBG.bmp</em></span></p> - </div> - - - <p><span class="blue"><strong>UMUI_BUTTONIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to skin all buttons of installer.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp</em></span></p> - - <div> - <span class="blue"><strong>UMUI_NO_BUTTONIMAGE</strong></span><br /> - Don't skin buttons of installers and uninstaller. - - <p><span class="blue"><strong>UMUI_DISABLED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for disabled buttons of all the pages.<br /> - <span class="blue"><em>Default: 808080</em></span></p> - - <p><span class="blue"><strong>UMUI_SELECTED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for selected buttons of all the pages.<br /> - <span class="blue"><em>Default: 000080</em></span></p> - - <p><span class="blue"><strong>UMUI_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for normal buttons of all the pages.<br /> - <span class="blue"><em>Default: 000000</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_SCROLLBARIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to skin all scroll bars of installer.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\ScrollBar.bmp</em></span></p> - - <div> - <span class="blue"><strong>UMUI_NO_SCROLLBARIMAGE</strong></span><br /> - Don't skin scroll bars of installer and uninstaller. - </div> - - <p><span class="blue"><strong>UMUI_UNHEADERBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of uninstallers pages.<br /> - <span class="blue"><em>Default: ${UMUI_HEADERBGIMAGE_BMP}</em></span></p> - - <p><span class="blue"><strong>UMUI_UNLEFTIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the left of uninstallers pages.<br /> - <span class="blue"><em>Default: ${UMUI_LEFTIMAGE_BMP}</em></span></p> - - <p><span class="blue"><strong>UMUI_UNBOTTOMIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the bottom of uninstallers pages.<br /> - <span class="blue"><em>Default: ${UMUI_BOTTOMIMAGE_BMP}</em></span></p> - - <p><span class="blue"><strong>UMUI_UNUNIQUEBGIMAGE</strong></span><br /> - Show a single full background image of uninstaller.</p> - - <p><span class="blue"><strong>UMUI_UNPAGEBGIMAGE</strong></span><br /> - Show a background image on uninstallers page.</p> - - <div> - <p><span class="blue"><strong>UMUI_UNPAGEBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image for background of uninstallers pages or single full bitmap image of uninstaller.<br /> - <span class="blue"><em>Default: ${UMUI_PAGEBGIMAGE_BMP}</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_UNBUTTONIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to skin all buttons of uninstaller.<br /> - <span class="blue"><em>Default: ${UMUI_BUTTONIMAGE_BMP}</em></span></p> - - <div> - <p><span class="blue"><strong>UMUI_UNDISABLED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for disabled buttons of all the pages.<br /> - <span class="blue"><em>Default: ${UMUI_DISABLED_BUTTON_TEXT_COLOR}</em></span></p> - - <p><span class="blue"><strong>UMUI_UNSELECTED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for selected buttons of all the pages.<br /> - <span class="blue"><em>Default: ${UMUI_SELECTED_BUTTON_TEXT_COLOR}</em></span></p> - - <p><span class="blue"><strong>UMUI_UNBUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for normal buttons of all the pages.<br /> - <span class="blue"><em>Default: ${UMUI_BUTTON_TEXT_COLOR}</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_UNSCROLLBARIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to skin all scroll bars of uninstaller.<br /> - <span class="blue"><em>Default: ${UMUI_SCROLLBARIMAGE_BMP}</em></span></p> - - <p><span class="blue"><strong>UMUI_BRANDINGTEXTFRONTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - The front color of the bottom text. Use the BrandingText instruction to replace the default text.<br /> - <span class="blue"><em>Default: 8B8CA4</em></span></p> - - <p><span class="blue"><strong>UMUI_BRANDINGTEXTBACKCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - The back color of the bottom text. It is shifted in comparison with the front text of one pixel to right and down below in order to give relief.<br /> - <span class="blue"><em>Default: EEEEF3</em></span></p> - - <p><span class="blue"><strong>UMUI_XPSTYLE</strong></span> <span class="parameter">(On/Off)</span><br /> - Sets whether or not a XP visual style manifest will be added to the installer. This manifest makes the installers controls use the new visual styles when running on Windows XP and later. This affects the uninstaller too.<br /> - <span class="blue"><em>Default: Off</em></span></p> - - <p><span class="blue"><strong>UMUI_ULTRAMODERN_SMALL</strong></span><br /> - Use a small interface having the same size as Modern UI but with ultra-modern graphics.</p> - - <p><span class="blue"><strong>UMUI_NOLEFTIMAGE</strong></span><br /> - User an interface without the left image.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inres" src="images/closed.gif" onclick="toggle('trigger_umui_inres', 'toggle_umui_inres');" /> Interface Resource Settings</h3> - <div class="toggle" id="toggle_umui_inres"> - - <p><span class="purple"><strong>UMUI_UI</strong></span> <span class="parameter">ui_file</span><br /> - The interface file with the dialog resources when the <strong>UMUI_ULTRAMODERN_SMALL</strong> option not defined. Change this if you have made your own customized UI.<br /> - The MUI_UI define has been renamed in Ultra-Modern UI in order to assure the compatibility with the former Modern UI scripts.<br /> - <span class="purple"><em>Default: ${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern.exe</em></span></p> - - <p><span class="blue"><strong>UMUI_UI_SMALL</strong></span> <span class="parameter">ui_file</span><br /> - The interface file with the dialog resources when the <strong>UMUI_ULTRAMODERN_SMALL</strong> option defined. Change this if you have made your own customized UI.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_small.exe</em></span></p> - - <p><span class="blue"><strong>UMUI_UI_NOLEFTIMAGE</strong></span> <span class="parameter">ui_file</span><br /> - The interface file with the dialog resources IDD_INST when the <strong>UMUI_NOLEFTIMAGE</strong> option defined and the <strong>UMUI_ULTRAMODERN_SMALL</strong> option not defined. Change this if you have made your own customized UI.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_noleftimage.exe</em></span></p> - - <p><span class="red"><strong>MUI_UI_HEADERIMAGE</strong></span> <span class="parameter">ui_file</span><br /> - The interface files with the dialog resource IDD_INST that contains a bitmap control and space for the header bitmap.<br /> - <em>Default: ${NSISDIR}\Contrib\UIs\modern_headerbmp.exe</em></p> - - <p><span class="red"><strong>MUI_UI_HEADERIMAGE_RIGHT</strong></span> <span class="parameter">ui_file</span><br /> - The interface files with the dialog resource IDD_INST that contains a bitmap control and space for the header bitmap on the right side.<br /> - <em>Default: ${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe</em></p> - - <p><strong>MUI_UI_COMPONENTSPAGE_SMALLDESC</strong> <span class="parameter">ui_file</span><br /> - The interface files with a customized dialog resource IDD_SELCOM with a small description area.<br /> - <em><span class="purple">Default without UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_smalldesc.exe</span><br /> - Default with UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\modern_smalldesc.exe</em></p> - - <p><strong>MUI_UI_COMPONENTSPAGE_NODESC</strong> <span class="parameter">ui_file</span><br /> - The interface files with a customized dialog resource IDD_SELCOM without a description area.<br /> - <em><span class="purple">Default without UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_nodesc.exe</span><br /> - Default with UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\modern_nodesc.exe</em></p> - - <p><span class="blue"><strong>UMUI_UI_COMPONENTSPAGE_BIGDESC</strong></span> <span class="parameter">ui_file</span><br /> - The interface files with a customized dialog resource IDD_SELCOM with a big description area.<br /> - <span class="blue"><em>Default without UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_bigdesc.exe<br /> - Default with UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\modern_bigdesc.exe</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inwf" src="images/closed.gif" onclick="toggle('trigger_umui_inwf', 'toggle_umui_inwf');" /> Welcome/Finish/Abort Pages Interface Settings</h3> - <div class="toggle" id="toggle_umui_inwf"> - - <p><span class="blue"><strong>UMUI_USE_ALTERNATE_PAGE</strong></span><br /> - Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers</p> - - <p><span class="blue"><strong>UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE</strong></span> <span class="parameter">size</span><br /> - Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers<br /> - <em><span class="blue">Default with UMUI_USE_ALTERNATE_PAGE option defined: 8</span><br /> - Default without UMUI_USE_ALTERNATE_PAGE option defined: 12</em></p> - - <p><span class="purple"><strong>MUI_WELCOMEFINISHPAGE_BITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap for the Welcome, the Finish and the Abort pages (recommended size: 164x314 pixels).<br /> - <em><span class="purple">Default with UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option defined:<br />${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Wizard.bmp<br /> - Default without UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option defined: none</span></em></p> - - <div> - <p><strong>MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH</strong><br /> - Do not stretch the bitmap for the Welcome, the Finish and the Abort pagesto fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - </div> - - <p><span class="blue"><strong>UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE</strong></span><br /> - Enable Bitmap for the Welcome, the Finish and the Abort pages.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inwfi" src="images/closed.gif" onclick="toggle('trigger_umui_inwfi', 'toggle_umui_inwfi');" /> Welcome/Finish/Abort Pages InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_umui_inwfi"> - - <p><span class="purple"><strong>UMUI_WELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the Welcome, the Finish and the Abort pages.<br /> - The MUI_WELCOMEFINISHPAGE_INI define has been renamed in Ultra-Modern UI in order to assure the compatibility with the former Modern UI scripts.<br /> - <span class="purple"><em>Default with UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini<br /> - Default without UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini</em></span></p> - - <p><span class="blue"><strong>UMUI_ALTERNATEWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the Alternate Welcome page, the Alternate Finish page and the Alternate Abort page.<br /> - <span class="blue"><em>Default with UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini<br /> - Default without UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inuwf" src="images/closed.gif" onclick="toggle('trigger_umui_inuwf', 'toggle_umui_inuwf');" /> Uninstaller Welcome/Finish/Abort Pages Settings</h3> - <div class="toggle" id="toggle_umui_inuwf"> - - <p><span class="blue"><strong>UMUI_USE_UNALTERNATE_PAGE</strong></span><br /> - Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers</p> - - <p><span class="purple"><strong>MUI_UNWELCOMEFINISHPAGE_BITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap for the Welcome, the Finish and the Abort pages (recommended size: 164x314 pixels).<br /> - <span class="purple"><em>Default : ${MUI_WELCOMEFINISHPAGE_BITMAP}</em></span></p> - - <div> - <p><strong>MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH</strong><br /> - Do not stretch the bitmap for the Welcome, the Finish and the Abort pagesto fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - </div> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inuwfi" src="images/closed.gif" onclick="toggle('trigger_umui_inuwfi', 'toggle_umui_inuwfi');" /> Uninstaller Welcome/Finish/Abort Pages Interface INI Settings</h3> - <div class="toggle" id="toggle_umui_inuwfi"> - - <p><span class="purple"><strong>UMUI_UNWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the uninstaller Welcome page, the Finish page and the Abort page.<br /> - The MUI_UNWELCOMEFINISHPAGE_INI define has been renamed in Ultra-Modern UI in order to assure the compatibility with the former Modern UI scripts.<br /> - <span class="purple"><em>Default with UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini<br /> - Default without UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini</em></span></p> - - <p><span class="blue"><strong>UMUI_ALTERNATEUNWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the uninstaller Alternate Welcome page, the Alternate Finish page and the Alternate Abort page.<br /> - <span class="blue"><em>Default with UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini<br /> - Default without UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inmus" src="images/closed.gif" onclick="toggle('trigger_umui_inmus', 'toggle_umui_inmus');" /> Maintenance/Update/SetupType Pages InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_umui_inmus"> - - <p><span class="blue"><strong>UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the Maintenance, the Update and the SetupType pages.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\MaintenanceUpdateSetupType.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_incnf" src="images/closed.gif" onclick="toggle('trigger_umui_incnf', 'toggle_umui_incnf');" /> Confirm Page InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_umui_incnf"> - - <p><span class="blue"><strong>UMUI_CONFIRMPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the Confirm page.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\Confirm.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_ininf" src="images/closed.gif" onclick="toggle('trigger_umui_ininf', 'toggle_umui_ininf');" /> Information Page InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_umui_ininf"> - - <p><span class="blue"><strong>UMUI_INFORMATIONPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the Information page.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\Information.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inadt" src="images/closed.gif" onclick="toggle('trigger_umui_inadt', 'toggle_umui_inadt');" /> AdditionalTasks Page InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_umui_inadt"> - - <p><span class="blue"><strong>UMUI_ADDITIONALTASKSPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the AdditionalTasks page.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\AdditionalTasks.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_insn" src="images/closed.gif" onclick="toggle('trigger_umui_insn', 'toggle_umui_insn');" /> SerialNumber Page InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_umui_insn"> - - <p><span class="blue"><strong>UMUI_SERIALNUMBERPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the SerialNumber page.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\SerialNumber.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inasm" src="images/closed.gif" onclick="toggle('trigger_umui_inasm', 'toggle_umui_inasm');" /> AlternativeStartMenu Page InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_umui_inasm"> - - <p><span class="blue"><strong>UMUI_ALTERNATIVESTARTMENUPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the AlternativeStartMenu page.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\AlternativeStartMenu.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inl" src="images/closed.gif" onclick="toggle('trigger_umui_inl', 'toggle_umui_inl');" /> License Page Interface Settings</h3> - <div class="toggle" id="toggle_umui_inl"> - - <p><strong>MUI_LICENSEPAGE_BGCOLOR</strong> <span class="parameter">(/windows | /grey | (color: RRGGBB hexadecimal))</span><br /> - The background color for the license textbox. Use /windows for the Windows text background color (usually white). Use the /grey for the window background color (usually grey).<br /> - <em>Default: /windows</em></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inc" src="images/closed.gif" onclick="toggle('trigger_umui_inc', 'toggle_umui_inc');" /> Components Page Interface Settings</h3> - <div class="toggle" id="toggle_umui_inc"> - - <p><strong>MUI_COMPONENTSPAGE_CHECKBITMAP</strong> <span class="parameter">bitmap_file</span><br /> - The bitmap with images for the checks of the component select treeview.<br /> - <em>Default: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp</em></p> - - <p><strong>MUI_COMPONENTSPAGE_SMALLDESC</strong><br /> - 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.</p> - - <p><strong>MUI_COMPONENTSPAGE_NODESC</strong><br /> - No description area.</p> - - <p><span class="blue"><strong>UMUI_COMPONENTSPAGE_BIGDESC</strong></span><br /> - A big description area on the bottom of the page. Use this layout if you have a lot of sections and need large descriptions.</p> - - <p><span class="blue"><strong>UMUI_ENABLE_DESCRIPTION_TEXT</strong></span> <span class="parameter">ini_file</span><br /> - Enable the description text when the mouse is not positionned over a component.<br /> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_ini" src="images/closed.gif" onclick="toggle('trigger_umui_ini', 'toggle_umui_ini');" /> Installation Page Interface Settings</h3> - <div class="toggle" id="toggle_umui_ini"> - - <p><strong>MUI_INSTFILESPAGE_COLORS</strong> <span class="parameter">(/windows | (foreground color: RRGGBB hexadecimal) (background color: RRGGBB hexadecimal))</span><br /> - The colors of the details screen. Use /windows for the default Windows colors.<br /> - <span class="purple"><em>Default: ${MUI_TEXTCOLOR} ${MUI_BGCOLOR}</em></span></p> - - <p><strong>MUI_INSTFILESPAGE_PROGRESSBAR</strong> <span class="parameter">("" | colored | smooth)</span><br /> - The style of the progress bar. Colored makes it use the MUI_INSTALLCOLORS.<br /> - <em>Default: smooth</em></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inf" src="images/closed.gif" onclick="toggle('trigger_umui_inf', 'toggle_umui_inf');" /> Installer Finish Page Interface Settings</h3> - <div class="toggle" id="toggle_umui_inf"> - - <p><strong>MUI_FINISHPAGE_NOAUTOCLOSE</strong><br /> - Do not automatically jump to the finish page, to allow the user to check the install log.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_uinf" src="images/closed.gif" onclick="toggle('trigger_umui_uinf', 'toggle_umui_uinf');" /> Uninstaller Finish Page Interface Settings</h3> - <div class="toggle" id="toggle_umui_uinf"> - - <p><strong>MUI_UNFINISHPAGE_NOAUTOCLOSE</strong><br /> - Do not automatically jump to the finish page, to allow the user to check the uninstall log.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inaw" src="images/closed.gif" onclick="toggle('trigger_umui_inaw', 'toggle_umui_inaw');" /> Abort Warning Settings</h3> - <div class="toggle" id="toggle_umui_inaw"> - - <p><strong>MUI_ABORTWARNING</strong><br /> - Show a message box with a warning when the user wants to close the installer.</p> - - <div> - <p><strong>MUI_ABORTWARNING_TEXT</strong> <span class="parameter">text</span><br /> - Text to display on the abort warning messagebox.</p> - <p><strong>MUI_ABORTWARNING_CANCEL_DEFAULT</strong><br /> - Set the Cancel button as the default button on the message box.</p> - </div> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inuaw" src="images/closed.gif" onclick="toggle('trigger_umui_inuaw', 'toggle_umui_inuaw');" /> Uninstaller Abort Warning Settings</h3> - <div class="toggle" id="toggle_umui_inuaw"> - - <p><strong>MUI_UNABORTWARNING</strong><br /> - Show a message box with a warning when the user wants to close the uninstaller.</p> - - <div> - <p><strong>MUI_UNABORTWARNING_TEXT</strong> <span class="parameter">text</span><br /> - Text to display on the abort warning messagebox.</p> - - <p><strong>MUI_UNABORTWARNING_CANCEL_DEFAULT</strong><br /> - Set the Cancel button as the default button on the message box.</p> - </div> - - </div> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_in" src="images/closed.gif" onclick="toggle('trigger_muiex_in', 'toggle_muiex_in');" /> Interface Settings for Modern UIEx</h3> - <div class="toggle" id="toggle_muiex_in"> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_ad" src="images/closed.gif" onclick="toggle('trigger_muiex_ad', 'toggle_muiex_ad');" /> BackGround Skin Setting</h3> - <div class="toggle" id="toggle_muiex_ad"> - - <p><span class="blue"><strong>UMUI_USE_BG</strong></span> <span class="parameter">bgskin_name</span><br /> - Use a background skin. It contain two macro named "UMUI_BG" and "UMUI_BG_Destroy".<br /> - <span class="blue"><em>Default: none</em></span></p> - - <p><span class="blue"><strong>UMUI_USE_CUSTOMBG</strong></span><br /> - Use a custom background skin. don't forget to create two macro named "UMUI_BG" and "UMUI_BG_Destroy".</p> - - <p>Example of a custom background skin:</p> -<pre>!define UMUI_USE_CUSTOMBG - -!macro UMUI_BG - SetOutPath "$PLUGINSDIR" - File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\SpotlightBG.bmp" - File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\KeyBG.bmp" - File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\HeaderBG.bmp" - File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\BtmImgBG.bmp" - BgImage::SetBg /GRADIENT 78 111 214 78 111 214 - BgImage::AddImage "$PLUGINSDIR\HeaderBG.bmp" 0 0 - BgImage::AddImage "$PLUGINSDIR\SpotlightBG.bmp" 0 57 - BgImage::AddImage "$PLUGINSDIR\BtmImgBG.bmp" 0 -70 - BgImage::AddImage "$PLUGINSDIR\KeyBG.bmp" -248 -351 - CreateFont $1 "Verdana" 30 700 - BgImage::AddText "$(^Name)" $1 8 51 155 15 70 -1 -1 - BgImage::AddText "$(^Name)" $1 255 255 255 10 65 -1 -1 - BgImage::Redraw -!macroend - -!macro UMUI_BG_Destroy - BgImage::Destroy -!macroend</pre> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_ingen" src="images/closed.gif" onclick="toggle('trigger_muiex_ingen', 'toggle_muiex_ingen');" /> General Interface Settings</h3> - <div class="toggle" id="toggle_muiex_ingen"> - - <p><strong>MUI_ICON</strong> <span class="parameter">icon_file</span><br /> - The icon for the installer.<br /> - <em>Default: ${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico</em></p> - - <p><strong>MUI_UNICON</strong> <span class="parameter">icon_file</span><br /> - The icon for the uninstaller.<br /> - <em>Default: ${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico</em></p> - - <p><strong>MUI_HEADERIMAGE</strong><br /> - Display an image on the header of the page.</p> - - <div> - - <p><strong>MUI_HEADERIMAGE_BITMAP</strong> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of installers pages (recommended size: 150x57 pixels).<br /> - <em>Default: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp</em></p> - - <div> - <p><strong>MUI_HEADERIMAGE_BITMAP_NOSTRETCH</strong><br /> - Do not stretch the installer header bitmap to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - - <p><strong>MUI_HEADERIMAGE_BITMAP_RTL</strong> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of installers pages when using a RTL language (recommended size: 150x57 pixels).<br /> - <em>Default: Non-RTL bitmap</em></p> - - <div> - <p><strong>MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH</strong><br /> - Do not stretch the installer header bitmap when using a RTL language to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - </div> - </div> - - <p><strong>MUI_HEADERIMAGE_UNBITMAP</strong> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of uninstaller pages (recommended size: 150x57 pixels).<br /> - <em>Default: Installer header bitmap</em></p> - - <div> - <p><strong>MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH</strong><br /> - Do not stretch the uninstaller header bitmap to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - - <p><strong>MUI_HEADERIMAGE_UNBITMAP_RTL</strong> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of uninstallers pages when using a RTL language (recommended size: 150x57 pixels).<br /> - <em>Default: Installer RTL header bitmap</em></p> - - <div> - <p><strong>MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH</strong><br /> - Do not stretch the uninstaller header bitmap when using a RTL language to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - </div> - </div> - - <p><strong>MUI_HEADERIMAGE_RIGHT</strong><br /> - Display the header image on the right side instead of the left side (when using a RTL language it will be displayed on the left side instead of the right side).</p> - - </div> - - - <p><span class="blue"><strong>UMUI_HEADERBGIMAGE</strong></span><br /> - Display a background image on the header of the page.</p> - - <div> - <p><span class="blue"><strong>UMUI_NOHEADERBGIMAGE</strong></span><br /> - Hide the background image on the header of the page.</p> - - <p><span class="blue"><strong>UMUI_HEADERBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of installers pages (recommended size: 497*59 pixels).<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\Graphics\Header\UltraModernUI\HeaderBG.bmp"</em></span></p> - - <p><span class="blue"><strong>UMUI_UNHEADERBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display on the header of installers pages (recommended size: 497*59 pixels).<br /> - <span class="blue"><em>Default: ${UMUI_HEADERBGIMAGE_BMP}"</em></span></p> - - </div> - - <p><strong>MUI_TEXTCOLOR</strong> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for all the pages. - <em>Default: 000000</em></p> - - <p><span class="blue"><strong>UMUI_TEXT_LIGHTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Default link color for finish and abort pages.<br /> - <span class="blue"><em>Default: 000000</em></span></p> - - <p><span class="blue"><strong>UMUI_TEXT_INPUTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for input controls (except checkboxes and radio buttons) of all the pages.<br /> - <span class="blue"><em>Default: 000000</em></span></p> - - <p><span class="blue"><strong>UMUI_BGINPUTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Background color for input controls (except checkboxes and radio buttons) of all the pages.<br /> - <span class="blue"><em>Default: FFFFFF</em></span></p> - - <p><strong>MUI_BGCOLOR</strong> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Background color for the header, the Welcome, the Finish and the Abort pages.<br /> - <em>Default: FFFFFF</em></p> - - <p><span class="blue"><strong>UMUI_HEADERTEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Header text color for all the pages.<br /> - <span class="blue"><em>Default: ${MUI_TEXTCOLOR}</em></span></p> - - <p><span class="blue"><strong>UMUI_BUTTONIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to skin all buttons of installer.<br /> - <span class="blue"><em>Default: none</em></span></p> - - <div> - <p><span class="blue"><strong>UMUI_DISABLED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for disabled buttons of all the pages.<br /> - <span class="blue"><em>Default: 808080</em></span></p> - - <p><span class="blue"><strong>UMUI_SELECTED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for selected buttons of all the pages.<br /> - <span class="blue"><em>Default: 000080</em></span></p> - - <p><span class="blue"><strong>UMUI_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for normal buttons of all the pages.<br /> - <span class="blue"><em>Default: 000000</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_SCROLLBARIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to skin all scroll bars of installer.<br /> - <span class="blue"><em>Default: none</em></span></p> - - <p><span class="blue"><strong>UMUI_UNBUTTONIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to skin all buttons of uninstaller.<br /> - <span class="blue"><em>Default: none</em></span></p> - - <div> - <p><span class="blue"><strong>UMUI_UNDISABLED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for disabled buttons of all the pages.<br /> - <span class="blue"><em>Default: ${UMUI_DISABLED_BUTTON_TEXT_COLOR}</em></span></p> - - <p><span class="blue"><strong>UMUI_UNSELECTED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for selected buttons of all the pages.<br /> - <span class="blue"><em>Default: ${UMUI_SELECTED_BUTTON_TEXT_COLOR}</em></span></p> - - <p><span class="blue"><strong>UMUI_UNBUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> - Text color for normal buttons of all the pages.<br /> - <span class="blue"><em>Default: ${UMUI_BUTTON_TEXT_COLOR}</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_UNSCROLLBARIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to skin all scroll bars of uninstaller.<br /> - <span class="blue"><em>Default: none</em></span></p> - - <p><strong>MUI_HEADER_TRANSPARENT_TEXT</strong><br /> - Set a transparent background for the header's label controls. Useful for custom user interfaces that set a bigger header image.</p> - - <p><span class="blue"><strong>UMUI_XPSTYLE</strong></span> <span class="parameter">(On/Off)</span><br /> - Sets whether or not a XP visual style manifest will be added to the installer. This manifest makes the installers controls use the new visual styles when running on Windows XP and later. This affects the uninstaller too.<br /> - <span class="blue"><em>Default with UMUI_BUTTONIMAGE_BMP|UMUI_UNBUTTONIMAGE_BMP option defined: Off<br /> - Default without UMUI_BUTTONIMAGE_BMP&UMUI_UNBUTTONIMAGE_BMP option defined: On</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inres" src="images/closed.gif" onclick="toggle('trigger_muiex_inres', 'toggle_muiex_inres');" /> Interface Resource Settings</h3> - <div class="toggle" id="toggle_muiex_inres"> - - <p><strong>MUI_UI</strong> <span class="parameter">ui_file</span><br /> - The interface file with the dialog resources. Change this if you have made your own customized UI.<br /> - <em>Default: ${NSISDIR}\Contrib\UIs\modern.exe</em></p> - - <p><strong>MUI_UI_HEADERIMAGE</strong> <span class="parameter">ui_file</span><br /> - The interface files with the dialog resource IDD_INST that contains a bitmap control and space for the header bitmap.<br /> - <em>Default: ${NSISDIR}\Contrib\UIs\modern_headerbmp.exe</em></p> - - <p><strong>MUI_UI_HEADERIMAGE_RIGHT</strong> <span class="parameter">ui_file</span><br /> - The interface files with the dialog resource IDD_INST that contains a bitmap control and space for the header bitmap on the right side.<br /> - <em>Default: ${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe</em></p> - - <p><span class="blue"><strong>UMUI_UI_HEADERBGIMAGE</strong></span> <span class="parameter">ui_file</span><br /> - The interface files with the dialog resource IDD_INST that contains a bitmap control for the header background bitmap.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UIs\UltraModernUI\modern_headerbgimage.exe</em></span></p> - - <p><strong>MUI_UI_COMPONENTSPAGE_SMALLDESC</strong> <span class="parameter">ui_file</span><br /> - The interface files with a customized dialog resource IDD_SELCOM with a small description area.<br /> - <em>Default: ${NSISDIR}\Contrib\UIs\modern_smalldesc.exe</em></p> - - <p><strong>MUI_UI_COMPONENTSPAGE_NODESC</strong> <span class="parameter">ui_file</span><br /> - The interface files with a customized dialog resource IDD_SELCOM without a description area.<br /> - <em>Default: ${NSISDIR}\Contrib\UIs\modern_nodesc.exe</em></p> - - <p><span class="blue"><strong>UMUI_UI_COMPONENTSPAGE_BIGDESC</strong></span> <span class="parameter">ui_file</span><br /> - The interface files with a customized dialog resource IDD_SELCOM with a big description area.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UIs\UltraModernUI\modern_bigdesc.exe</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inwf" src="images/closed.gif" onclick="toggle('trigger_muiex_inwf', 'toggle_muiex_inwf');" /> Welcome/Finish/Abort Pages Interface Settings</h3> - <div class="toggle" id="toggle_muiex_inwf"> - - <p><span class="blue"><strong>UMUI_USE_ALTERNATE_PAGE</strong></span><br /> - Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers</p> - - <p><span class="blue"><strong>UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE</strong></span> <span class="parameter">size</span><br /> - Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers<br /> - <em><span class="blue">Default with UMUI_USE_ALTERNATE_PAGE option defined: 8</span><br /> - Default without UMUI_USE_ALTERNATE_PAGE option defined: 12</em></p> - - <p><strong>MUI_WELCOMEFINISHPAGE_BITMAP</strong> <span class="parameter">bmp_file</span><br /> - Bitmap for the Welcome, the Finish and the Abort pages (recommended size: 164x314 pixels).<br /> - <em>Default: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp</em></p> - - <div> - <p><strong>MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH</strong><br /> - Do not stretch the bitmap for the Welcome, the Finish and the Abort pagesto fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - </div> - - <p><span class="blue"><strong>UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE</strong></span><br /> - Disable Bitmap for the Welcome, the Finish and the Abort pages.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inwfi" src="images/closed.gif" onclick="toggle('trigger_muiex_inwfi', 'toggle_muiex_inwfi');" /> Welcome/Finish/Abort Pages InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_muiex_inwfi"> - - <p><span class="purple"><strong>UMUI_WELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the Welcome, the Finish and the Abort pages.<br /> - The MUI_WELCOMEFINISHPAGE_INI define has been renamed in Ultra-Modern UI in order to assure the compatibility with the former Modern UI scripts.<br /> - <span class="purple"><em>Default without UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini<br /> - Default with UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini</em></span></p> - - <p><span class="blue"><strong>UMUI_ALTERNATEWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the Alternate Welcome page, the Alternate Finish page and the Alternate Abort page.<br /> - <span class="blue"><em>Default without UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini<br /> - Default with UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inuwf" src="images/closed.gif" onclick="toggle('trigger_muiex_inuwf', 'toggle_muiex_inuwf');" /> Uninstaller Welcome/Finish/Abort Pages Settings</h3> - <div class="toggle" id="toggle_muiex_inuwf"> - - <p><span class="blue"><strong>UMUI_USE_UNALTERNATE_PAGE</strong></span><br /> - Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers</p> - - <p><strong>MUI_UNWELCOMEFINISHPAGE_BITMAP</strong> <span class="parameter">bmp_file</span><br /> - Bitmap for the Welcome, the Finish and the Abort pages (recommended size: 164x314 pixels).<br /> - <em>Default: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp</em></p> - - <div> - <p><strong>MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH</strong><br /> - Do not stretch the bitmap for the Welcome, the Finish and the Abort pagesto fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> - </div> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inuwfi" src="images/closed.gif" onclick="toggle('trigger_muiex_inuwfi', 'toggle_muiex_inuwfi');" /> Uninstaller Welcome/Finish/Abort Pages Interface INI Settings</h3> - <div class="toggle" id="toggle_muiex_inuwfi"> - - <p><span class="purple"><strong>UMUI_UNWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the uninstaller Welcome page, the Finish page and the Abort page.<br /> - The MUI_UNWELCOMEFINISHPAGE_INI define has been renamed in Ultra-Modern UI in order to assure the compatibility with the former Modern UI scripts.<br /> - <span class="purple"><em>Default without UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini<br /> - Default with UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini</em></span></p> - - <p><span class="blue"><strong>UMUI_ALTERNATEUNWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the uninstaller Alternate Welcome page, the Alternate Finish page and the Alternate Abort page.<br /> - <span class="blue"><em>Defaultout with UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini<br /> - Default with UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inmus" src="images/closed.gif" onclick="toggle('trigger_muiex_inmus', 'toggle_muiex_inmus');" /> Maintenance/Update/SetupType Pages InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_muiex_inmus"> - - <p><span class="blue"><strong>UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the Maintenance, the Update and the SetupType pages.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\MaintenanceUpdateSetupType.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_incnf" src="images/closed.gif" onclick="toggle('trigger_muiex_incnf', 'toggle_muiex_incnf');" /> Confirm Page InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_muiex_incnf"> - - <p><span class="blue"><strong>UMUI_CONFIRMPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the Confirm page.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\Confirm.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_ininf" src="images/closed.gif" onclick="toggle('trigger_muiex_ininf', 'toggle_muiex_ininf');" /> Information Page InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_muiex_ininf"> - - <p><span class="blue"><strong>UMUI_INFORMATIONPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the Information page.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\Information.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inadt" src="images/closed.gif" onclick="toggle('trigger_muiex_inadt', 'toggle_muiex_inadt');" /> AdditionalTasks Page InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_muiex_inadt"> - - <p><span class="blue"><strong>UMUI_ADDITIONALTASKSPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the AdditionalTasks page.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\AdditionalTasks.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_insn" src="images/closed.gif" onclick="toggle('trigger_muiex_insn', 'toggle_muiex_insn');" /> SerialNumber Page InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_muiex_insn"> - - <p><span class="blue"><strong>UMUI_SERIALNUMBERPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the SerialNumber page.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\SerialNumber.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inasm" src="images/closed.gif" onclick="toggle('trigger_muiex_inasm', 'toggle_muiex_inasm');" /> AlternativeStartMenu Page InstallOptions INI Settings</h3> - <div class="toggle" id="toggle_muiex_inasm"> - - <p><span class="blue"><strong>UMUI_ALTERNATIVESTARTMENUPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> - InstallOptions INI file for the AlternativeStartMenu page.<br /> - <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\AlternativeStartMenu.ini</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inl" src="images/closed.gif" onclick="toggle('trigger_muiex_inl', 'toggle_muiex_inl');" /> License Page Interface Settings</h3> - <div class="toggle" id="toggle_muiex_inl"> - - <p><strong>MUI_LICENSEPAGE_BGCOLOR</strong> <span class="parameter">(/windows | /grey | (color: RRGGBB hexadecimal))</span><br /> - The background color for the license textbox. Use /windows for the Windows text background color (usually white). Use the /grey for the window background color (usually grey).<br /> - <em>Default: /windows</em></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inc" src="images/closed.gif" onclick="toggle('trigger_muiex_inc', 'toggle_muiex_inc');" /> Components Page Interface Settings</h3> - <div class="toggle" id="toggle_muiex_inc"> - - <p><strong>MUI_COMPONENTSPAGE_CHECKBITMAP</strong> <span class="parameter">bitmap_file</span><br /> - The bitmap with images for the checks of the component select treeview.<br /> - <em>Default: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp</em></p> - - <p><strong>MUI_COMPONENTSPAGE_SMALLDESC</strong><br /> - 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.</p> - - <p><strong>MUI_COMPONENTSPAGE_NODESC</strong><br /> - No description area.</p> - - <p><span class="blue"><strong>UMUI_COMPONENTSPAGE_BIGDESC</strong></span><br /> - A big description area on the bottom of the page. Use this layout if you have a lot of sections and need large descriptions.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_ini" src="images/closed.gif" onclick="toggle('trigger_muiex_ini', 'toggle_muiex_ini');" /> Installation Page Interface Settings</h3> - <div class="toggle" id="toggle_muiex_ini"> - - <p><strong>MUI_INSTFILESPAGE_COLORS</strong> <span class="parameter">(/windows | (foreground color: RRGGBB hexadecimal) (background color: RRGGBB hexadecimal))</span><br /> - The colors of the details screen. Use /windows for the default Windows colors.<br /> - <em>Default: /windows</em></p> - - <p><strong>MUI_INSTFILESPAGE_PROGRESSBAR</strong> <span class="parameter">("" | colored | smooth)</span><br /> - The style of the progress bar. Colored makes it use the MUI_INSTALLCOLORS.<br /> - <em>Default: smooth</em></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inf" src="images/closed.gif" onclick="toggle('trigger_muiex_inf', 'toggle_muiex_inf');" /> Installer Finish Page Interface Settings</h3> - <div class="toggle" id="toggle_muiex_inf"> - - <p><strong>MUI_FINISHPAGE_NOAUTOCLOSE</strong><br /> - Do not automatically jump to the finish page, to allow the user to check the install log.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_uinf" src="images/closed.gif" onclick="toggle('trigger_muiex_uinf', 'toggle_muiex_uinf');" /> Uninstaller Finish Page Interface Settings</h3> - <div class="toggle" id="toggle_muiex_uinf"> - - <p><strong>MUI_UNFINISHPAGE_NOAUTOCLOSE</strong><br /> - Do not automatically jump to the finish page, to allow the user to check the uninstall log.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inaw" src="images/closed.gif" onclick="toggle('trigger_muiex_inaw', 'toggle_muiex_inaw');" /> Abort Warning Settings</h3> - <div class="toggle" id="toggle_muiex_inaw"> - - <p><strong>MUI_ABORTWARNING</strong><br /> - Show a message box with a warning when the user wants to close the installer.</p> - - <div> - <p><strong>MUI_ABORTWARNING_TEXT</strong> <span class="parameter">text</span><br /> - Text to display on the abort warning messagebox.</p> - <p><strong>MUI_ABORTWARNING_CANCEL_DEFAULT</strong><br /> - Set the Cancel button as the default button on the message box.</p> - </div> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inuaw" src="images/closed.gif" onclick="toggle('trigger_muiex_inuaw', 'toggle_muiex_inuaw');" /> Uninstaller Abort Warning Settings</h3> - <div class="toggle" id="toggle_muiex_inuaw"> - - <p><strong>MUI_UNABORTWARNING</strong><br /> - Show a message box with a warning when the user wants to close the uninstaller.</p> - - <div> - <p><strong>MUI_UNABORTWARNING_TEXT</strong> <span class="parameter">text</span><br /> - Text to display on the abort warning messagebox.</p> - - <p><strong>MUI_UNABORTWARNING_CANCEL_DEFAULT</strong><br /> - Set the Cancel button as the default button on the message box.</p> - </div> - - </div> - - </div> - - </div> - - - <h2>3. Pages</h2> - <div> - - <p>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. <a href="#customPages">More info about custom pages...</a></p> - <p>You can add multiple pages of certain types (for example, if you want the user to specify multiple folders).</p> - - <p>Examples:</p> -<pre>!insertmacro MUI_PAGE_LICENSE "License.rtf" -!insertmacro MUI_PAGE_COMPONENTS -Var STARTMENU_FOLDER -!insertmacro MUI_PAGE_STARTMENU "Application" $STARTMENU_FOLDER</pre> - - <p>You will need the page ID for the Start Menu Folder page when using the Start Menu Folder macros. The Start Menu Folder will be stored in the specified variable.</p> - - <strong>Installer Pages:</strong> - <ul> - <li><span class="blue">UMUI_PAGE_MULTILANGUAGE</span></li> - <li><span class="blue">UMUI_PAGE_MAINTENANCE</span></li> - <li><span class="blue">UMUI_PAGE_UPDATE</span></li> - <li>MUI_PAGE_WELCOME</li> - <li>MUI_PAGE_LICENSE <span class="parameter">text/rtf_file</span></li> - <li><span class="blue">UMUI_PAGE_INFORMATION</span> <span class="parameter">text/rtf_files</span></li> - <li><span class="blue">UMUI_PAGE_SERIALNUMBER</span> <span class="parameter">function</span></li> - <li><span class="blue">UMUI_PAGE_SETUPTYPE</span></li> - <li>MUI_PAGE_COMPONENTS</li> - <li>MUI_PAGE_DIRECTORY</li> - <li>MUI_PAGE_STARTMENU <span class="parameter">page_id variable</span></li> - <li><span class="blue">UMUI_PAGE_ALTERNATIVESTARTMENU</span> <span class="parameter">page_id variable</span></li> - <li><span class="blue">UMUI_PAGE_ADDITIONALTASKS</span> <span class="parameter">function</span></li> - <li><span class="blue">UMUI_PAGE_CONFIRM</span></li> - <li><span class="blue">UMUI_PAGE_FILEDISKREQUEST</span></li> - <li>MUI_PAGE_INSTFILES</li> - <li>MUI_PAGE_FINISH</li> - <li><span class="blue">UMUI_PAGE_ABORT</span></li> - </ul> - - <strong>Uninstaller Pages:</strong> - <ul> - <li><span class="blue">UMUI_UNPAGE_MULTILANGUAGE</span></li> - <li><span class="blue">UMUI_UNPAGE_MAINTENANCE</span></li> - <li>MUI_UNPAGE_WELCOME</li> - <li>MUI_UNPAGE_CONFIRM</li> - <li>MUI_UNPAGE_LICENSE <span class="parameter">text/rtf_file</span></li> - <li><span class="blue">UMUI_UNPAGE_INFORMATION</span> <span class="parameter">text/rtf_files</span></li> - <li><span class="blue">UMUI_UNPAGE_SERIALNUMBER</span> <span class="parameter">un.function</span></li> - <li><span class="blue">UMUI_UNPAGE_SETUPTYPE</span></li> - <li>MUI_UNPAGE_COMPONENTS</li> - <li>MUI_UNPAGE_DIRECTORY</li> - <li><span class="blue">UMUI_UNPAGE_ADDITIONALTASKS</span> <span class="parameter">page_id un.function</span></li> - <li><span class="blue">UMUI_UNPAGE_CONFIRM</span></li> - <li><span class="blue">UMUI_UNPAGE_FILEDISKREQUEST</span></li> - <li>MUI_UNPAGE_INSTFILES</li> - <li>MUI_UNPAGE_FINISH</li> - <li><span class="blue">UMUI_UNPAGE_ABORT</span></li> - </ul> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pg" src="images/closed.gif" onclick="toggle('trigger_pg', 'toggle_pg');" /> Page Settings</h3> - <div class="toggle" id="toggle_pg"> - - <p>Page settings apply to a single page and should be set before inserting a page macro. You have to repeat the setting if you want it to apply to multiple pages. Example:</p> - -<pre>;Add a directory page to let the user specify a plug-ins folder -;Store the folder in $PLUGINS_FOLDER -Var PLUGINS_FOLDER -!define MUI_DIRECTORYPAGE_VARIABLE $PLUGINS_FOLDER -!insertmacro MUI_PAGE_DIRECTORY</pre> - - <p><strong>Note:</strong> There is no difference between installer and uninstaller page settings.</p> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgg" src="images/closed.gif" onclick="toggle('trigger_pgg', 'toggle_pgg');" /> General Page Settings</h3> - <div class="toggle" id="toggle_pgg"> - - <p><strong>MUI_PAGE_HEADER_TEXT</strong> <span class="parameter">text</span><br /> - Text to display on the header of the page.</p> - - <p><strong>MUI_PAGE_HEADER_SUBTEXT</strong> <span class="parameter">text</span><br /> - Subtext to display on the header of the page.</p> - - <p><span class="blue"><strong>UMUI_PREUNINSTALL_FUNCTION</strong></span> <span class="parameter">function</span><br /> - A function to remove already installed files, but keeping configuration files and registery keys, executed before the installation itself. Useful in repair, modify and update mode or when user uncheck already installed components.</p> - - <p><span class="blue"><strong>UMUI_PARAMS_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> - <span class="blue"><strong>UMUI_PARAMS_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> - The default registry key to store diverse values. Some pages will use it to remember the selected values. Don't forget to remove this key during uninstallation.</p> - - <p><span class="blue"><strong>UMUI_INSTALLDIR_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> - <span class="blue"><strong>UMUI_INSTALLDIR_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> - <span class="blue"><strong>UMUI_INSTALLDIR_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> - The registry key to store the $INSTDIR variable. This replace the InstallDirRegKey instruction. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> - UMUI_INSTALLDIR_REGISTRY_ROOT and UMUI_INSTALLDIR_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> - - <p><span class="blue"><strong>UMUI_DEFAULT_SHELLVARCONTEXT</strong></span> <span class="parameter">(all/current)</span><br /> - Set the default context of $SMPROGRAMS and other shell folders. If set to 'current' (the default), the current user's shell folders are used. If set to 'all', the 'all users' shell folder is used. The all users folder may not be supported on all OSes. If the all users folder is not found, the current user folder will be used. Please take into consideration that a "normal user" has no rights to write in the all users area. Only admins have full access rights to the all users area. You can check this by using the UserInfo plug-in. See Contrib\UserInfo\UserInfo.nsi for an example.</p> - - <p><span class="blue"><strong>UMUI_SHELLVARCONTEXT_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> - <span class="blue"><strong>UMUI_SHELLVARCONTEXT_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> - <span class="blue"><strong>UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> - The registry key to store the ShellVarContext (current|all). Useful if the user has the option to choose through the AlternativeStartMenu page or the AddistionalTasks page. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> - UMUI_SHELLVARCONTEXT_REGISTRY_ROOT and UMUI_SHELLVARCONTEXT_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> - - <p>You can use these macros to add value to save automatically to the registry on install success. Don't forget to remove this key during uninstallation.<br /> - <strong>UMUI_ADDPARAMTOSAVETOREGISTRY</strong> <span class="parameter">registry_root registry_key value_name data</span><br /> - <strong>UMUI_ADDPARAMTOSAVETOREGISTRY</strong> <span class="parameter">value_name data</span><br /> - The last one required the <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> parameters to be defined.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgw" src="images/closed.gif" onclick="toggle('trigger_pgw', 'toggle_pgw');" /> MultiLanguage Page Settings</h3> - <div class="toggle" id="toggle_pgw"> - - <p><span class="blue"><strong>UMUI_MULTILANGUAGEPAGE_TITLE</strong></span> <span class="parameter">title</span><br /> - Title to display on the top of the page.</p> - - <p><span class="blue"><strong>UMUI_MULTILANGUAGEPAGE_TITLE_3LINES</strong></span><br /> - Extra space for the title area.<br /> - It is not used in the alternate welcome page.</p> - - <p><span class="blue"><strong>UMUI_MULTILANGUAGEPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display on the page. Use \r\n for a newline.</p> - - <p><span class="blue"><strong>UMUI_MULTILANGUAGEPAGE_LANGUAGE</strong></span> <span class="parameter">text</span><br /> - Text to display on the language frame.</p> - - <p><span class="purple"><strong>UMUI_LANGUAGE_ALWAYSSHOW</strong></span><br /> - Always show the language selection dialog, even if a language has been stored in the registry. The language stored in the registry will be selected by default.</p> - - <p><span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> - <span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> - <span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> - The registry key to store the language. The users preference will be remembered. You can also use it for the uninstaller to display the right language. This value will be automatically saved to the registry on install success. Don't forget to remove this key in the uninstaller.<br /> - UMUI_LANGUAGE_REGISTRY_ROOT and UMUI_LANGUAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> - - <p>Insert the Modern UI language files for the languages to want to include:</p> - <pre>!insertmacro MUI_LANGUAGE "English"<br /></pre> - - <p>For the installer and the uninstaller, insert the <strong>UMUI_MULTILANG_GET</strong> macro in .onInit and un.onInit fuctions to get the stored language list:</p> -<pre>Function .onInit -!insertmacro UMUI_MULTILANG_GET -FunctionEnd -Function un.onInit -!insertmacro UMUI_MULTILANG_GET -FunctionEnd</pre> - <p>If you need to use the instruction "SetRegView 64", it must be inserted in the (un).onInit functions and before the UMUI_MULTILANG_GET macro insertions.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_mn" src="images/closed.gif" onclick="toggle('trigger_mn', 'toggle_mn');" /> Maintenance Page Settings</h3> - <div class="toggle" id="toggle_mn"> - - <p>This page is shown only when the product is already installed in the same version. It draw radio buttons usualy named Modify, Repair, Remove and Continue setup. If Repair is selected, the Components, Directory and StartMenu pages are skipped.<br /> - To work, the <strong>UMUI_VERBUILD_REGISTRY_VALUENAME</strong> and the <strong>UMUI_VERBUILD</strong> parameters are required but also, the <strong>UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME</strong>, the <strong>UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME</strong> and optionally the <strong>UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME</strong> parameter of the Component Page.</p> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_MODIFY</strong></span><br /> - Enable the modify option.</p> - <div> - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_MODIFY_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the modify radiobutton.</p> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_MODIFY_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the modify radiobutton.</p> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_MODIFYBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the modify radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Modify.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\ModifyEx.bmp</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REPAIR</strong></span><br /> - Enable the repair option.</p> - <div> - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REPAIR_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the repair radiobutton.</p> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REPAIR_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the repair radiobutton.</p> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REPAIRBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the repair radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Repair.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\RepairEx.bmp</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REMOVE</strong></span><br /> - Enable the remove option.</p> - <div> - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REMOVE_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the remove radiobutton.</p> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REMOVE_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the remove radiobutton.</p> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REMOVEBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the remove radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Remove.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\RemoveEx.bmp</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_CONTINUE_SETUP</strong></span><br /> - Enable the continue setup option.</p> - <div> - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the continue setup radiobutton.</p> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the continue setup radiobutton.</p> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_CONTINUE_SETUPBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the continue setup radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Continue.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\ContinueEx.bmp</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_DEFAULTCHOICE</strong></span> <span class="parameter">flag</span><br /> - The default selected flag: must be one of ${UMUI_MODIFY}, ${UMUI_REPAIR}, ${UMUI_REMOVE} or ${UMUI_CONTINUE_SETUP}<br /> - <span class="blue"><em>Default: ${UMUI_MODIFY}</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_upd" src="images/closed.gif" onclick="toggle('trigger_upd', 'toggle_upd');" /> Update Page Settings</h3> - <div class="toggle" id="toggle_upd"> - - <p>This page is shown only when the product is already installed in a different version. It draw radio buttons usualy named Update, Remove and Continue setup. If Update is selected, the Components, Directory and StartMenu pages are skipped.<br /> - To work, the <strong>UMUI_VERBUILD_REGISTRY_VALUENAME</strong> and the <strong>UMUI_VERBUILD</strong> parameters are required but also, the <strong>UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME</strong> and optionally the <strong>UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME</strong> parameter of the Component Page.</p> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_UPDATE_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the update radiobutton.</p> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_UPDATE_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the update radiobutton.</p> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_UPDATEBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the update radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Update.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\UpdateEx.bmp</em></span></p> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_REMOVE</strong></span><br /> - Enable the remove option.</p> - <div> - <p><span class="blue"><strong>UMUI_UPDATEPAGE_REMOVE_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the remove radiobutton.</p> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_REMOVE_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the remove radiobutton.</p> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_REMOVEBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the remove radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Remove.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\RemoveEx.bmp</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_CONTINUE_SETUP</strong></span><br /> - Enable the continue setup option.</p> - <div> - <p><span class="blue"><strong>UMUI_UPDATEPAGE_CONTINUE_SETUP_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the continue setup radiobutton.</p> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_CONTINUE_SETUP_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the continue setup radiobutton.</p> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_CONTINUE_SETUPBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the continue setup radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Continue.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\ContinueEx.bmp</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_UPDATEPAGE_DEFAULTCHOICE</strong></span> <span class="parameter">flag</span><br /> - The default selected flag: must be one of ${UMUI_UPDATE}, ${UMUI_REPAIR}, ${UMUI_REMOVE} or ${UMUI_CONTINUE_SETUP}<br /> - <span class="blue"><em>Default: ${UMUI_CONTINUE_SETUP}</em></span></p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgl" src="images/closed.gif" onclick="toggle('trigger_pgl', 'toggle_pgl');" /> License Page Settings</h3> - <div class="toggle" id="toggle_pgl"> - - <p><strong>MUI_LICENSEPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><strong>MUI_LICENSEPAGE_TEXT_BOTTOM</strong> <span class="parameter">text</span><br /> - Text to display on the bottom of the page.</p> - - <p><strong>MUI_LICENSEPAGE_BUTTON</strong> <span class="parameter">button_text</span><br /> - Text to display on the 'I Agree' button.</p> - - <p><strong>MUI_LICENSEPAGE_CHECKBOX</strong><br /> - Display a checkbox the user has to check to agree with the license terms.</p> - - <div> - <p><strong>MUI_LICENSEPAGE_CHECKBOX_TEXT</strong> <span class="parameter">text</span><br /> - Text to display next to the checkbox to agree with the license terms.</p> - </div> - - <p><strong>MUI_LICENSEPAGE_RADIOBUTTONS</strong><br /> - Display two radio buttons to allow the user to choose between accepting the license terms or not.</p> - - <div> - <p><strong>MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT</strong> <span class="parameter">text</span><br /> - Text to display next to the checkbox to accept the license terms.</p> - - <p><strong>MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE</strong> <span class="parameter">text</span><br /> - Text to display next to the checkbox to decline the license terms.</p> - </div> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_aj" src="images/closed.gif" onclick="toggle('trigger_aj', 'toggle_aj');" /> Information Page Settings</h3> - <div class="toggle" id="toggle_aj"> - - <p>The pages display a single or multiple textes files or Richtext RTF files.<br /> - File name may contains a * which will be replaced by the language code. For example:<br /> - "information1033.txt" will be displayed for english and "information1036.txt" for french.<br /> - Optional "information.txt" for untranslated language files (if "informationXXXX.txt" not found).<br /> - Text files support the UTF16LE charset only if the Unicode True instruction set or an ANSI charset.</p> - - <p><span class="blue"><strong>UMUI_INFORMATIONPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><span class="blue"><strong>UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT</strong></span><br /> - Information file(s) is/are in RichText RTF format.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_sn" src="images/closed.gif" onclick="toggle('trigger_sn', 'toggle_sn');" /> SerialNumber Page Settings</h3> - <div class="toggle" id="toggle_sn"> - - <p><span class="blue"><strong>UMUI_SERIALNUMBERPAGE_TEXT_TOP</strong></span> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p>The page take a function in parameter containing some macro to add elements on the page. Example:</p> -<pre>Function serial_function - -;Get the windows name and organisation -!insertmacro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_OWNER R0 -!insertmacro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_ORGANIZATION R1 - -StrCpy $R2 "11111-22222-33333-44444-55555" - - !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "RegName" -!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL \ - REGNAME 0 "TOUPPER" $R0 "$(UMUI_TEXT_SERIALNUMBER_NAME)" - - !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "Organisation" -!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL \ - ORGANISATION 0 "CANBEEMPTY|TOLOWER" $R1 "$(UMUI_TEXT_SERIALNUMBER_ORGANIZATION)" - -!insertmacro UMUI_SERIALNUMBERPAGE_ADD_HLINE - - !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "SerialNumber" -!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL \ - SERIAL 55555 "NUMBERS|NODASHS" $R2 "$(UMUI_TEXT_SERIALNUMBER_SERIALNUMBER)" - -FunctionEnd</pre> - <p><strong>UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_OWNER</strong> <span class="parameter">default</span><br /> - Macro to get the windows registered user;<br /> - <strong>UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_ORGANIZATION</strong> <span class="parameter">default</span><br /> - Macro to get the windows registered organization;<br /> - <strong>UMUI_SERIALNUMBERPAGE_ADD_LABEL</strong> <span class="parameter">text</span><br /> - Macro to add a text;<br /> - <strong>UMUI_SERIALNUMBERPAGE_ADD_SERIAL</strong> <span class="parameter">serialID type flags default</span><br /> - <strong>UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL</strong> <span class="parameter">serialID type flags default text</span><br /> - Two macros to add an input with label. Parameters are:<br /> - serialID: A unique identifiant for this serial number<br /> - type: How many chars and how many inputs to show on the line. Example: 555 for 3 inputs of 5 characters each, 0 for unlimited chars<br /> - flags: Can be one or many (separated by |) of "", NODASHS, TOUPPER, TOLOWER, NUMBERS, CANBEEMPTY<br /> - default: The default value if not already saved in the registry.<br /> - Example XXXXX-XXXXX-XXXXX or XXXXXXXXXXXXXXX<br /> - A define are available on these macro :<br /> - <span class="blue"><strong>UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> - <span class="blue"><strong>UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> - <span class="blue"><strong>UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> - The registry key to store the value. This value will be automatically saved to the registry on install success. Don't forget to remove this key in the uninstaller.<br /> - UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT and UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> - - <p>Use the <strong>UMUI_SERIALNUMBER_GET</strong> <span class="parameter">serialID variable</span> macro to get the value.</p> - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_ak" src="images/closed.gif" onclick="toggle('trigger_ak', 'toggle_ak');" /> SetupType Page Settings</h3> - <div class="toggle" id="toggle_ak"> - - <p>This page draw radio buttons usualy named Minimal, Standard, Complete and Custom. If Custom is not selected, the Components, Directory and StartMenu pages are skipped.</p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_MINIMAL</strong></span> <span class="parameter">InstTypeName</span><br /> - Enable the minimal option. The InstTypeName must correspond to an existing InstType declaration. Typically:</p> -<pre>!define UMUI_SETUPTYPEPAGE_MINIMAL "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" -InstType "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)"</pre> - <div> - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_MINIMAL_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the minimal radiobutton.</p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_MINIMAL_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the minimal radiobutton.</p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_MINIMALBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the minimal radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Minimal.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\MinimalEx.bmp</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_STANDARD</strong></span> <span class="parameter">InstTypeName</span><br /> - Enable the standard option. The InstTypeName must correspond to an existing InstType declaration. Typically:</p> -<pre>!define UMUI_SETUPTYPEPAGE_STANDARD "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" -InstType "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)"</pre> - <div> - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_STANDARD_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the standard radiobutton.</p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_STANDARD_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the standard radiobutton.</p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_STANDARDBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the standard radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Standard.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\StandardEx.bmp</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_COMPLETE</strong></span> <span class="parameter">InstTypeName</span><br /> - Enable the complete option. The InstTypeName must correspond to an existing InstType declaration. Typically:</p> -<pre>!define UMUI_SETUPTYPEPAGE_COMPLETE "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" -InstType "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)"</pre> - <div> - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_COMPLETE_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the complete radiobutton.</p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_COMPLETE_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the complete radiobutton.</p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_COMPLETEBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the complete radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Complete.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\CompleteEx.bmp</em></span></p> - </div> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_CUSTOM_TITLE</strong></span> <span class="parameter">text</span><br /> - Title of the custom radiobutton.</p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_CUSTOM_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display under the custom radiobutton.</p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_CUSTOMBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> - Bitmap image to display under the custom radiobutton.<br /> - <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Custom.bmp<br /> - Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\CustomEx.bmp</em></span></p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_DEFAULTCHOICE</strong></span> <span class="parameter">flag</span><br /> - The default selected flag: must be one of ${UMUI_MINIMAL}, ${UMUI_STANDARD}, ${UMUI_COMPLETE} or ${UMUI_CUSTOM}<br /> - <span class="blue"><em>Default: ${UMUI_CUSTOM}</em></span></p> - - <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> - <span class="blue"><strong>UMUI_SETUPTYPEPAGE_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> - <span class="blue"><strong>UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> - The registry key to store selected setup type. The page will use it to remember the selected setup type. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> - UMUI_SETUPTYPEPAGE_REGISTRY_ROOT and UMUI_SETUPTYPEPAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> - - <p>You can use the macro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT to get the selected setup type text for, by example, the Confirm page function:</p> -<pre>Function confirm_function -; ... - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SETUPTYPE_TITLE):" - !insertmacro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT - Pop $R0 - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $R0" -; ... -FunctionEnd</pre> - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgc" src="images/closed.gif" onclick="toggle('trigger_pgc', 'toggle_pgc');" /> Components Page Settings</h3> - <div class="toggle" id="toggle_pgc"> - - <p><strong>MUI_COMPONENTSPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><strong>MUI_COMPONENTSPAGE_TEXT_COMPLIST</strong> <span class="parameter">text</span><br /> - Text to display on next to the components list.</p> - - <p><strong>MUI_COMPONENTSPAGE_TEXT_INSTTYPE</strong> <span class="parameter">text</span><br /> - Text to display on next to the installation type combo box.</p> - - <p><strong>MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE</strong> <span class="parameter">text</span><br /> - Text to display on the of the top of the description box.</p> - - <p><strong>MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO</strong> <span class="parameter">text</span><br /> - Text to display inside the description box when no section is selected.</p> - - <p><span class="blue"><strong>UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> - <span class="blue"><strong>UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> - <span class="blue"><strong>UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> - The registry key to store selected setup type. The page will use it to remember the selected setup type. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> - UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT and UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> - - <p><span class="blue"><strong>UMUI_COMPONENTSPAGE_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> - <span class="blue"><strong>UMUI_COMPONENTSPAGE_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> - <span class="blue"><strong>UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> - The registry key to store selected components. The page will use it to remember the selected components. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> - UMUI_COMPONENTSPAGE_REGISTRY_ROOT and UMUI_COMPONENTSPAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.<br /> - Components must be declared using UMUI_COMPONENT macro surrounded by UMUI_DECLARECOMPONENTS_BEGIN and UMUI_DECLARECOMPONENTS_END macros:</p> -<pre>Section "Section 1" SecID1 -SectionEnd -Section "Section 2" SecID2 -SectionEnd - -!insertmacro UMUI_DECLARECOMPONENTS_BEGIN - !insertmacro UMUI_COMPONENT SecID1 - !insertmacro UMUI_COMPONENT SecID2 -!insertmacro UMUI_DECLARECOMPONENTS_END</pre> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgd" src="images/closed.gif" onclick="toggle('trigger_pgd', 'toggle_pgd');" /> Directory Page Settings</h3> - <div class="toggle" id="toggle_pgd"> - - <p><strong>MUI_DIRECTORYPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> - Text to display on top of the page.</p> - - <p><strong>MUI_DIRECTORYPAGE_TEXT_DESTINATION</strong> <span class="parameter">text</span><br /> - Text to display on the destination folder frame.</p> - - <p><strong>MUI_DIRECTORYPAGE_VARIABLE</strong> <span class="parameter">variable</span><br /> - Variable in which to store the selected folder.<br /> - <em>Default: $INSTDIR</em></p> - - <p><strong>MUI_DIRECTORYPAGE_VERIFYONLEAVE</strong><br /> - Does not disable the Next button when a folder is invalid but allows you to use GetInstDirError in the leave function to handle an invalid folder.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgs" src="images/closed.gif" onclick="toggle('trigger_pgs', 'toggle_pgs');" /> Start Menu Folder Page Settings</h3> - <div class="toggle" id="toggle_pgs"> - - <p>For that the START_MENU page uses the colors of background and of text, you must use at least the version 2.06 of NSIS</p> - - <p>Put the code to write the shortcuts (using CreateShortcut) between the MUI_STARTMENU_WRITE_BEGIN and MUI_STARTMENU_WRITE_END macros:</p> -<pre>!insertmacro MUI_STARTMENU_WRITE_BEGIN page_id -...create shortcuts... -!insertmacro MUI_STARTMENU_WRITE_END</pre> - - <p>The page ID should be the ID of the page on which the user has selected the folder for the shortcuts you want to write.</p> - - <p><strong>MUI_STARTMENUPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><strong>MUI_STARTMENUPAGE_TEXT_CHECKBOX</strong> <span class="parameter">text</span><br /> - Text to display next to the checkbox to disable the Start Menu folder creation.</p> - - <p><strong>MUI_STARTMENUPAGE_DEFAULTFOLDER</strong> <span class="parameter">folder</span><br /> - The default Start Menu Folder.</p> - - <p><strong>MUI_STARTMENUPAGE_NODISABLE</strong><br /> - Do not display the checkbox to disable the creation of Start Menu shortcuts.</p> - - <p><strong>MUI_STARTMENUPAGE_REGISTRY_ROOT</strong> <span class="parameter">root</span><br /> - <strong>MUI_STARTMENUPAGE_REGISTRY_KEY</strong> <span class="parameter">key</span><br /> - <strong>MUI_STARTMENUPAGE_REGISTRY_VALUENAME</strong> <span class="parameter">value_name</span><br /> - The registry key to store the Start Menu folder. The page will use it to remember the users preference. This value will be automatically saved to the registry on install success. You should also use for the uninstaller to remove the Start Menu folders. Don't forget to remove this key during uninstallation.<br /> - MUI_STARTMENUPAGE_REGISTRY_ROOT and MUI_STARTMENUPAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> - - <p>For the uninstaller, use the <strong>MUI_STARTMENU_GETFOLDER</strong> macro to get the Start Menu folder:</p> -<pre>!insertmacro MUI_STARTMENU_GETFOLDER page_id $R0 -Delete "$SMPROGRAMS\$R0\Your Shortcut.lnk"</pre> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgasm" src="images/closed.gif" onclick="toggle('trigger_pgasm', 'toggle_pgasm');" /> Alternative Start Menu Folder Page Settings</h3> - <div class="toggle" id="toggle_pgasm"> - - <p>For that the START_MENU page uses the colors of background and of text, you must use at least the version 2.06 of NSIS</p> - - <p>Put the code to write the shortcuts (using CreateShortcut) between the MUI_STARTMENU_WRITE_BEGIN and MUI_STARTMENU_WRITE_END macros:</p> - -<pre>!insertmacro MUI_STARTMENU_WRITE_BEGIN page_id -...create shortcuts... -!insertmacro MUI_STARTMENU_WRITE_END</pre> - - <p>The page ID should be the ID of the page on which the user has selected the folder for the shortcuts you want to write.</p> - - <p><strong>MUI_STARTMENUPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><strong>MUI_STARTMENUPAGE_TEXT_CHECKBOX</strong> <span class="parameter">text</span><br /> - Text to display next to the checkbox to disable the Start Menu folder creation.</p> - - <p><strong>MUI_STARTMENUPAGE_DEFAULTFOLDER</strong> <span class="parameter">folder</span><br /> - The default Start Menu Folder.</p> - - <p><strong>MUI_STARTMENUPAGE_NODISABLE</strong><br /> - Do not display the checkbox to disable the creation of Start Menu shortcuts.</p> - - <p><span class="blue"><strong>UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW</strong></span><br /> - Replace the default ListVIew by a TreeView.</p> - - <p><span class="blue"><strong>UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT</strong></span><br /> - Show radio buttons to select ShellVarContext.</p> - - <div> - <p><span class="blue"><strong>UMUI_STARTMENUPAGE_SHELL_VAR_CONTEXT_TITLE</strong></span> <span class="parameter">text</span><br /> - Text to display on the top of the ShellVarContext GroupBox.</p> - - <p><span class="blue"><strong>UMUI_STARTMENUPAGE_TEXT_FOR_ALL_USERS</strong></span> <span class="parameter">text</span><br /> - Text to display next to the radio button to select for all users ShellVarContext.</p> - - <p><span class="blue"><strong>UMUI_STARTMENUPAGE_TEXT_FOR_THE_CURRENT_USER</strong></span> <span class="parameter">text</span><br /> - Text to display next to the radio button to select the current user ShellVarContext.</p> - </div> - - <p><strong>MUI_STARTMENUPAGE_REGISTRY_ROOT</strong> <span class="parameter">root</span><br /> - <strong>MUI_STARTMENUPAGE_REGISTRY_KEY</strong> <span class="parameter">key</span><br /> - <strong>MUI_STARTMENUPAGE_REGISTRY_VALUENAME</strong> <span class="parameter">value_name</span><br /> - The registry key to store the Start Menu folder. The page will use it to remember the users preference. This value will be automatically saved to the registry on install success. You should also use for the uninstaller to remove the Start Menu folders. Don't forget to remove this key during uninstallation.<br /> - MUI_STARTMENUPAGE_REGISTRY_ROOT and MUI_STARTMENUPAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> - - <p>For the uninstaller, use the <strong>MUI_STARTMENU_GETFOLDER</strong> macro to get the Start Menu folder:</p> -<pre>!insertmacro MUI_STARTMENU_GETFOLDER page_id $R0 -Delete "$SMPROGRAMS\$R0\Your Shortcut.lnk"</pre> - - <p>You can use the <strong>UMUI_GETSHELLVARCONTEXT</strong> macro to get the selected selected shell var context for, by example, the Confirm page function:</p> -<pre>Function confirm_function -; ... - ;Only if StartMenu Folder is selected - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_START_MENU_FOLDER)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $STARTMENU_FOLDER" - - ;ShellVarContext - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" - !insertmacro UMUI_GETSHELLVARCONTEXT - Pop $1 - StrCmp $1 "all" 0 current - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - Goto endsvc - current: - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - endsvc: - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - !insertmacro MUI_STARTMENU_WRITE_END -; ... -FunctionEnd</pre> - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_adt" src="images/closed.gif" onclick="toggle('trigger_adt', 'toggle_adt');" /> AdditionalTasks Page Settings</h3> - <div class="toggle" id="toggle_adt"> - - <p><span class="blue"><strong>UMUI_ADDITIONALTASKSPAGE_TEXT_TOP</strong></span> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><span class="blue"><strong>UMUI_ADDITIONALTASKS_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> - <span class="blue"><strong>UMUI_ADDITIONALTASKS_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> - <span class="blue"><strong>UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> - The registry key to store the AddistionalTasks value. The page will use it to remember the all selected all value selected on all the AddistionalTasks pages. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> - UMUI_ADDITIONALTASKS_REGISTRY_ROOT and UMUI_ADDITIONALTASKS_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> - - <p>The page take a function in parameter containing some macro to add elements on the page.<br /> - <strong>UMUI_ADDITIONALTASKSPAGE_ADD_LABEL</strong> <span class="parameter">text</span><br /> - Macro to add a text;<br /> - <strong>UMUI_ADDITIONALTASKSPAGE_ADD_TASK</strong> <span class="parameter">taskID isChecked text</span><br /> - Macro to add a checkbox task;<br /> - <strong>UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO</strong> <span class="parameter">taskID isSelected text</span><br /> - Macro to add a radio task;<br /> - <strong>UMUI_ADDITIONALTASKSPAGE_ADD_EMPTYLINE</strong><br /> - Macro to add an empty line;<br /> - <strong>UMUI_ADDITIONALTASKSPAGE_ADD_LINE</strong><br /> - Macro to add an horizontal line;<br /> - for example:</p> -<pre>Function addtasks_function - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL \ - "$(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK DESKTOP 1 \ - "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK QUICK_LAUNCH 1 \ - "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_QUICK_LAUNCH_ICON)" - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_EMPTYLINE - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL \ - "$(UMUI_TEXT_ADDITIONALTASKS_ADVANCED_PARAMETERS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK STARTUP 1 \ - "$(UMUI_TEXT_ADDITIONALTASKS_LAUNCH_PROGRAM_AT_WINDOWS_STARTUP)" - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL \ - "$(UMUI_TEXT_ADDITIONALTASKS_FILE_ASSOCIATION)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK ASSOCIATE 0 \ - "$(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH) .UMUI $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH_END)" - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LINE - - ; only if a directory has been selected in the STARTMENU page - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 1 \ - "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 0 \ - "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - !insertmacro MUI_STARTMENU_WRITE_END - -FunctionEnd</pre> - - <p>You can use the <strong>UMUI_ADDITIONALTASKS_IF_CKECKED, UMUI_ADDITIONALTASKS_IF_NOT_CKECKED</strong> and <strong>UMUI_ADDITIONALTASKS_ENDIF</strong> macros to check if element is selected.<br /> - By example, the Confirm page function:</p> -<pre>Function confirm_function -; ... - ;Only if one at least of the six checks is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP|QUICK_LAUNCH|STARTUP|ASSOCIATE|ALL|CURRENT - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - "$(UMUI_TEXT_ADDITIONALTASKS_TITLE):" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;Only if one at least of additional icon check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP|QUICK_LAUNCH - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;Only if the first check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;Only if the second check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED QUICK_LAUNCH - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_QUICK_LAUNCH_ICON)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;Only if start programm at windows startup check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED STARTUP - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_ADDITIONALTASKS_ADVANCED_PARAMETERS)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_ADDITIONALTASKS_LAUNCH_PROGRAM_AT_WINDOWS_STARTUP)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;Only if file association check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ASSOCIATE - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_ADDITIONALTASKS_FILE_ASSOCIATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH) .UMUI $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH_END)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if a directory has been selected in the STARTMENU page - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL|CURRENT - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_SHELL_VAR_CONTEXT)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if for all user radio is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if for current user is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF -; ... -FunctionEnd</pre> - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgab" src="images/closed.gif" onclick="toggle('trigger_pgab', 'toggle_pgab');" /> Install Confirm Page Settings</h3> - <div class="toggle" id="toggle_pgab"> - - <p><span class="blue"><strong>UMUI_CONFIRMPAGE_TEXT_TOP</strong></span> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><span class="blue"><strong>UMUI_CONFIRMPAGE_TEXT_BOTTOM</strong></span> <span class="parameter">text</span><br /> - Text to display on the bottom of the page.</p> - - <p><span class="blue"><strong>UMUI_CONFIRMPAGE_TEXTBOX</strong></span> <span class="parameter">function_name</span><br /> - Draw a TextBox in which will be post the current configuration. The function will be use to add lines (using the UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE macro).</p> - - <p>For example to add the Destination Location and the Start Menu Floder :</p> -<pre>Function function_name - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - "$(UMUI_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - ;Only if StartMenu Floder is selected - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ - "$(UMUI_INSTCONFIRM_TEXTBOX_START_MENU_FLODER)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $STARTMENU_FOLDER" - !insertmacro MUI_STARTMENU_WRITE_END -FunctionEnd</pre> - - <p>Use the <strong>UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE</strong> macro to add lines with a empty string to jump a line.<br /> - The $(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION) and <br /> - $(UMUI_TEXT_INSTCONFIRM_TEXTBOX_START_MENU_FLODER) variables are defined in the langage files. </p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_fdr" src="images/closed.gif" onclick="toggle('trigger_fdr', 'toggle_fdr');" /> FileDiskRequest Page Settings</h3> - <div class="toggle" id="toggle_fdr"> - - <p>This page is shown only when the file to search is not on the folder stored on the specified variable.</p> - - <p><span class="blue"><strong>UMUI_FILEDISKREQUESTPAGE_TEXT_TOP</strong></span> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><span class="blue"><strong>UMUI_FILEDISKREQUESTPAGE_TEXT_PATH</strong></span> <span class="parameter">text</span><br /> - Text to display on the folder frame.</p> - - <p><span class="blue"><strong>UMUI_FILEDISKREQUESTPAGE_FILE_NAME</strong></span> <span class="parameter">name</span><br /> - The name of the file to search.</p> - - <p><span class="blue"><strong>UMUI_FILEDISKREQUESTPAGE_DISK_NAME</strong></span> <span class="parameter">name</span><br /> - Optional. The name of the disk containing the file to search. This parameter change the default UMUI_FILEDISKREQUESTPAGE_TEXT_TOP.</p> - - <p><span class="blue"><strong>UMUI_FILEDISKREQUESTPAGE_VARIABLE</strong></span> <span class="parameter">variable</span><br /> - Variable in which to store the selected folder.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgi" src="images/closed.gif" onclick="toggle('trigger_pgi', 'toggle_pgi');" /> Installation Page Settings</h3> - <div class="toggle" id="toggle_pgi"> - - <p><strong>MUI_INSTFILESPAGE_FINISHHEADER_TEXT</strong> <span class="parameter">text</span><br /> - Text to display on the header of the installation page when the installation has been completed (won't be displayed when using a Finish page without MUI_(UN)FINISHPAGE_NOAUTOCLOSE).</p> - - <p><strong>MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT</strong> <span class="parameter">text</span><br /> - Subext to display on the header of the installation page when the installation has been completed (won't be displayed when using a Finish page without MUI_(UN)FINISHPAGE_NOAUTOCLOSE).</p> - - <p><strong>MUI_INSTFILESPAGE_ABORTHEADER_TEXT</strong> <span class="parameter">text</span><br /> - Text to display on the header of the installation page when the installation has been aborted.</p> - - <p><strong>MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT</strong> <span class="parameter">text</span><br /> - Subext to display on the header of the installation page when the installation has been aborted.</p> - - <p><span class="blue"><strong>UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON</strong></span> <span class="parameter">function_name</span><br /> - Enable the instfile page cancel button and call the function_name in case of cancelled. This function must cancel the modifications of the system that there could have had. For the UNPAGE_INSTFILE, this function must begin with "un." . </p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgf" src="images/closed.gif" onclick="toggle('trigger_pgf', 'toggle_pgf');" /> Finish Page Settings</h3> - <div class="toggle" id="toggle_pgf"> - - <p><strong>MUI_FINISHPAGE_TITLE</strong> <span class="parameter">title</span><br /> - Title to display on the top of the page.</p> - - <p><strong>MUI_FINISHPAGE_TITLE_3LINES</strong><br /> - Extra space for the title area.<br /> - It is not used in the alternate finish page.</p> - - <p><strong>MUI_FINISHPAGE_TEXT</strong> <span class="parameter">text</span><br /> - Text to display on the page. Use \r\n for a newline.</p> - - <p><strong>MUI_FINISHPAGE_TEXT_LARGE</strong><br /> - Extra space for the text area (if using checkboxes).</p> - - <p><strong>MUI_FINISHPAGE_BUTTON</strong> <span class="parameter">text</span><br /> - Text to display on the Finish button.</p> - - <p><strong>MUI_FINISHPAGE_TEXT_REBOOT</strong> <span class="parameter">text</span><br /> - Text to display on the finish page when asking for a system reboot. Use \r\n for a newline.</p> - - <p><strong>MUI_FINISHPAGE_TEXT_REBOOTNOW</strong> <span class="parameter">text</span><br /> - Text to display next to the 'Reboot now' option button.</p> - - <p><strong>MUI_FINISHPAGE_TEXT_REBOOTLATER</strong> <span class="parameter">text</span><br /> - Text to display next to the 'Reboot later' option button.</p> - - <p><strong>MUI_FINISHPAGE_RUN</strong> <span class="parameter">exe_file</span><br /> - Application which the user can select to run using a checkbox. You don't need to put quotes around the filename when it contains spaces.</p> - - <div> - <p><strong>MUI_FINISHPAGE_RUN_TEXT</strong> <span class="parameter">text</span><br /> - Texts to display next to the 'Run program' checkbox.</p> - - <p><strong>MUI_FINISHPAGE_RUN_PARAMETERS</strong> <span class="parameter">parameters</span><br /> - Parameters for the application to run. Don't forget to escape double quotes in the value (use $\").</p> - - <p><strong>MUI_FINISHPAGE_RUN_NOTCHECKED</strong><br /> - Do not check the 'Run program' checkbox by default</p> - - <p><strong>MUI_FINISHPAGE_RUN_FUNCTION</strong> <span class="parameter">function_name</span><br /> - Call a function instead of executing an application (define MUI_FINISHPAGE_RUN without parameters). You can use the function to exectute multiple applications or you can change the checkbox name and use it for other things.</p> - </div> - - <p><strong>MUI_FINISHPAGE_SHOWREADME</strong> <span class="parameter">file/url</span><br /> - 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.</p> - - <div> - <p><strong>MUI_FINISHPAGE_SHOWREADME_TEXT</strong> <span class="parameter">text</span><br /> - Texts to display next to the 'Show Readme' checkbox.</p> - - <p><strong>MUI_FINISHPAGE_SHOWREADME_NOTCHECKED</strong><br /> - Do not check the 'Show Readme' checkbox by default</p> - - <p><strong>MUI_FINISHPAGE_SHOWREADME_FUNCTION</strong> <span class="parameter">function_name</span><br /> - Call a function instead of showing a file (define MUI_FINISHPAGE_SHOWREADME without parameters). You can use the function to show multiple files or you can change the checkbox name and use it for other things.</p> - </div> - - <p><strong>MUI_FINISHPAGE_LINK</strong> <span class="parameter">link_text</span><br /> - Text for a link on the which the user can click to view a website or file.</p> - - <div> - <p><strong>MUI_FINISHPAGE_LINK_LOCATION</strong> <span class="parameter">file/url</span><br /> - 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.</p> - - <p><strong>MUI_FINISHPAGE_LINK_COLOR</strong> <span class="parameter">(color: RRGGBB hexadecimal)</span><br /> - Text color for the link on the Finish page.<br /> - <span class="purple"><em>Default: ${UMUI_TEXT_LIGHTCOLOR}</em></span></p> - </div> - - <p><strong>MUI_FINISHPAGE_NOREBOOTSUPPORT</strong><br /> - Disables support for the page that allows the user to reboot the system. Define this option to save some space if you are not using the /REBOOTOK flag or SetRebootFlag.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgau" src="images/closed.gif" onclick="toggle('trigger_pgau', 'toggle_pgau');" /> Abort Page Settings</h3> - <div class="toggle" id="toggle_pgau"> <strong><span class="blue">UMUI_ABORTPAGE_TITLE</span></strong> <span class="parameter">title</span><br /> - - Title to display on the top of the page. - - <p><span class="blue"><strong>UMUI_ABORTPAGE_TITLE_3LINES</strong></span><br /> - Extra space for the title area.<br /> - It is not used in the alternate abort page.</p> - - <p><span class="blue"><strong>UMUI_ABORTPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> - Text to display on the page. Use \r\n for a newline.</p> - - <p><span class="blue"><strong>UMUI_ABORTPAGE_LINK</strong></span> <span class="parameter">link_text</span><br /> - Text for a link on the which the user can click to view a website or file.</p> - - <div> - <p><span class="blue"><strong>UMUI_ABORTPAGE_LINK_LOCATION</strong></span> <span class="parameter">file/url</span><br /> - 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.</p> - - <p><span class="blue"><strong>UMUI_ABORTPAGE_LINK_COLOR</strong></span> <span class="parameter">(color: RRGGBB hexadecimal)</span><br /> - Text color for the link on the Finish page.<br /> - <span class="blue"><em>Default: ${UMUI_TEXT_LIGHTCOLOR}</em></span></p> - </div> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgu" src="images/closed.gif" onclick="toggle('trigger_pgu', 'toggle_pgu');" /> Uninstall Confirm Page Settings</h3> - <div class="toggle" id="toggle_pgu"> - - <p><strong>MUI_UNCONFIRMPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> - Text to display on the top of the page.</p> - - <p><strong>MUI_UNCONFIRMPAGE_TEXT_LOCATION</strong> <span class="parameter">text</span><br /> - Text to display next to the uninstall location text box.</p> - - <strong>MUI_UNCONFIRMPAGE_VARIABLE</strong> <span class="parameter">variable</span><br /> - Variable in which to store the uninstall source folder.<br /> - <em>Default: $INSTDIR</em></p> - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pga" src="images/closed.gif" onclick="toggle('trigger_pga', 'toggle_pga');" /> Advanced Page Settings</h3> - <div class="toggle" id="toggle_pga"> - - <p>You can add custom code to the page functions of your Modern UI pages. <a href="#customFunctions">More info...</a></p> - - </div> - - </div> - -</div> - - - -<h2>4. Custom functions</h2> -<div> - - <p>If you want add your own code to functions inserted by the Modern UI (e.g. the .onGUIInit function and the page functions), create your own function and let the Modern UI functions call them.</p> - - <p><a href="#customFunctions">More info...</a></p> - -</div> - - -<h2>5. Language files</h2> -<div> - - <p>Insert the Modern UI language files for the languages to want to include.</p> - - <pre>!insertmacro MUI_LANGUAGE "English"<br /></pre> - - <p>The Modern UI language files load the NLF language files, so you should not use LoadLanguageFile.</p> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_lp" src="images/closed.gif" onclick="toggle('trigger_lp', 'toggle_lp');" /> Language Selection Page</h3> - <div class="toggle" id="toggle_lp"> - - <p>See the MultiLanguage Page Settings above.</p> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_ls" src="images/closed.gif" onclick="toggle('trigger_ls', 'toggle_ls');" /> Language Selection Dialog</h3> - <div class="toggle" id="toggle_ls"> - - <p>If you want the installer to display a language selection dialog (have a look at the <a href="../../Examples/Modern%20UI/MultiLanguage.nsi">MultiLanguage.nsi</a> example), insert the MUI_LANGDLL_DISPLAY macro in the .onInit function:</p> - -<pre>Function .onInit -!insertmacro MUI_LANGDLL_DISPLAY -FunctionEnd</pre> - - <p>You can also use this macro for the uninstaller, in the un.onInit function.</p> - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_lss" src="images/closed.gif" onclick="toggle('trigger_lss', 'toggle_lss');" /> Language Selection Dialog Settings</h3> - <div class="toggle" id="toggle_lss"> - - <p>To remember to users preference, you ca define a registry key.<br /> - - <strong>Note:</strong> These defines should be set before inserting the installation page macro.</p> - - <p><span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> - <span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> - <span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> - The registry key to store the language. The users preference will be remembered. You can also use it for the uninstaller to display the right language. This value will be automatically saved to the registry on install success. Don't forget to remove this key in the uninstaller.<br /> - UMUI_LANGUAGE_REGISTRY_ROOT and UMUI_LANGUAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.<br /> - The MUI_LANGDLL_REGISTRY_ROOT, MUI_LANGDLL_REGISTRY_KEY and MUI_LANGDLL_REGISTRY_VALUENAME defines has been renamed in Ultra-Modern UI.</p> - - <p>For the uninstaller, insert the <strong>MUI_UNGETLANGUAGE</strong> macro in un.onInit to get the stored language preference:</p> - -<pre>Function un.onInit -!insertmacro MUI_UNGETLANGUAGE -FunctionEnd</pre> - - </div> - - - <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_lsin" src="images/closed.gif" onclick="toggle('trigger_lsin', 'toggle_lsin');" /> Language Selection Dialog Interface Settings</h3> - <div class="toggle" id="toggle_lsin"> - - <p>To customize the language selection dialog interface, use these defines before inserting the MUI_LANGDLL_DISPLAY macro.</p> - - <p><strong>MUI_LANGDLL_WINDOWTITLE</strong> <span class="parameter">text</span><br /> - The window title of the language selection dialog.</p> - - <p><strong>MUI_LANGDLL_INFO</strong> <span class="parameter">text</span><br /> - The text to display on the language selection dialog.</p> - - <p><span class="purple"><strong>UMUI_LANGUAGE_ALWAYSSHOW</strong></span><br /> - Always show the language selection dialog, even if a language has been stored in the registry. The language stored in the registry will be selected by default.<br /> - The MUI_LANGDLL_ALWAYSSHOW define has been renamed in UltraModernUI.</p> - - </div> - - </div> - -</div> - - - -<h2>6. Reserve files</h2> -<div> - - <p>If you are using solid compression (by default, solid compression is enabled for BZIP2 and LZMA), it's important that files which are being extracted in init- or page functions function are located before other files in the data block, because this will make your installer faster.</p> - - <p>If there are File commands in your sections or functions above the init- or page functions, add the reserve file macros above your sections and functions.</p> - - <pre>ReserveFile "ioFile.ini" ;Your own InstallOptions INI files<br />!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ;InstallOptions plug-in<br />!insertmacro MUI_RESERVEFILE_LANGDLL ;Language selection dialog<br /></pre> - -</div> - - - -<h2>7. Your own sections and functions</h2> -<div> - - <p>Add your installer sections and functions. See the NSIS Users Manual for details.</p> - - <p>Information about section code and function code for Start Menu shortcut creation and language selection can be found above.</p> - -</div> - - - -<h2>8. Section descriptions</h2> -<div> - - <p>The descriptions of sections will be displayed on the components page, when the user hovers the mouse over a section. If you don't want to use descriptions, use the MUI_COMPONENTSPAGE_NODESC interface setting.</p> - - <p>To set a description for a section, you have to add an additional parameter to the Section commmand with a name for the define that should contain the section number.</p> - -<pre>Section "Section Name 1" Section1 - ... -SectionEnd</pre> - - <p>Use these macros to set the descriptions:</p> - <pre>LangString DESC_Section1 ${LANG_ENGLISH} "Description of section 1."<br />LangString DESC_Section2 ${LANG_ENGLISH} "Description of section 2."<br /><br />!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN<br /> !insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)<br /> !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)<br />!insertmacro MUI_FUNCTION_DESCRIPTION_END<br /></pre> - - <p>For the uninstaller, use the MUI_UNFUNCTION_DESCRIPTION_BEGIN and MUI_UNFUNCTIONS_DESCRIPTION_END macros.</p> - -</div> - -</div> - - -<h1><a id="customPages"></a>Custom pages</h1> -<div> - - <p>If you want add your custom pages to your installer, you should insert your own page commands between the page macros.</p> - -<pre>!insertmacro MUI_PAGE_WELCOME -Page custom FunctionName ;Custom page -!insertmacro MUI_PAGE_COMPONENTS - -;Uninstaller -!insertmacro MUI_UNPAGE_CONFIRM -UninstPage custom un.FunctionName ;Custom page -!insertmacro MUI_UNPAGE_INSTFILES</pre> - - - <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_io" src="images/closed.gif" onclick="toggle('trigger_io', 'toggle_io');" /> Using InstallOptions or InstallOptionsEx for custom pages</h2> - <div class="toggle" id="toggle_io"> - - <p>Ultra-Modern UI support natively two plug-ins to displays custom pages which you can create using INI files. InstallOptions and InstallOptionsEx:</p> - - <p>InstallOptions is the original plug-in used by Modern UI.</p> - - <p>InstallOptionsEx, writing by deguix and by SuperPat since version 2.4.5, is an expanded version of InstallOptions containing many new features, with size drawback.</p> - - <p>Have a look at the <a target="_blank" href="../InstallOptions/Readme.html">InstallOptions documentation</a> or the <a target="_blank" href="../InstallOptionsEx/Readme.html">InstallOptionsEx documentation</a> for info about creating InstallOptions(Ex) INI files.</p> - - <p>If you wan't to use InstallOptionEx Instead of the original IntallOption pluyg-in, you have to use the <strong>UMUI_USE_INSTALLOPTIONSEX</strong> define.</p> - - <p>InstallOptionEx is used in the Alternative Start Menu page to show Start Menu directories in a TreeView and in the Information pages to show RichText files. You can't use these features if InstallOptionEx is not activated.</p> - - - <p>Next, you have to extract your InstallOptions INI File in the .onInit function (un.onInit for the uninstaller) using the <strong>MUI_INSTALLOPTIONS_EXTRACT</strong> macro:</p> - -<pre>Function .onInit -!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioFile.ini" -FunctionEnd</pre> - - <p>If your INI File is located in another directory, use MUI_INSTALLOPTIONS_EXTRACT_AS. The second parameter is the filename for the temporary plug-ins directory, use this filename as parameter for the other InstallOptions macros.</p> - -<pre>Function .onInit -!insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "..\ioFile.ini" "ioFile.ini" -FunctionEnd</pre> - - <p>You can call InstallOptions in the function defined with the Page or UninstPage command using the MUI_INSTALLOPTIONS_DISPLAY macro. - This macro skin automatically your custom pages. It can also automatically convert, on the fly, your custom InstallOptions INI into an InstallOptionsEx INI.</p> - - <p>If the UMUI_(UN)PAGE_ABORT page is inserted, you need to use the <strong>UMUI_ABORT_IF_INSTALLFLAG_IS</strong> macro with the ${UMUI_CANCELLED} flag to hide your custom pages when user cancel the installation:</p> - <p>Use the <strong>MUI_HEADER_TEXT</strong> macro to set the text on the page header:</p> - -<pre>LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page Title" -LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "A subtitle" -Function FunctionName ;FunctionName defined with Page command - <span class="blue"> - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - </span> - !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" - !insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioFile.ini" -FunctionEnd</pre> - - <p>For custom fonts and colors, macros for the initDialog and show functions of InstallOptions are also available. It can automatically convert, on the fly, your custom InstallOptions INI into an InstallOptionsEx INI. - Contrary to the MUI_INSTALLOPTIONS_DISPLAY macro, These one can't skin automatically your pages and you need to apply manually the text color and background color to all fields:</p> - -<pre>Var HWND -Var DLGITEM -Var FONT -LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page Title" -LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "A subtitle" -Function FunctionName ;FunctionName defined with Page command - <span class="blue"> - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - </span> - !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" - !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioFile.ini" - Pop $HWND ;HWND of dialog - <span class="blue"> - ;If you do not use MUIEx, apply the background color to the page: - ; Manually: - SetCtlColors $HWND "" "${MUI_BGCOLOR}" - ; or if you use a background image: - SetCtlColors $HWND "" "transparent" - ; Or using this macro: - !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $HWND - - ;You can apply the right text color and background color to all the Text, Password, - ; DateTime, IPAddress, ListBox, ComboBox, DropList, FileRequest and DirRequest fields - ; Manually: - GetDlgItem $0 $HWND 1200 - SetCtlColors $0 ${UMUI_TEXT_INPUTCOLOR} ${UMUI_BGINPUTCOLOR} - ; Or using this macro: - GetDlgItem $0 $HWND 1201 - !insertmacro UMUI_IOPAGEINPUTCTL_INIT $0 - - ;You need to apply the right text color and background color to all the Link fields - ; Manually: - GetDlgItem $0 $HWND 1202 - SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} ${MUI_BGCOLOR} - ; or if you use a background image: - SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} "transparent" - ; Or using this macro: - GetDlgItem $0 $HWND 1203 - !insertmacro UMUI_IOPAGECTLLIGHTTRANSPARENT_INIT $0 - - ;You need to apply the right text color and background color to all the - ; GroupBox fields - ; Manually: - GetDlgItem $0 $HWND 1202 - SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} ${MUI_BGCOLOR} - ; Or using this macro: - GetDlgItem $0 $HWND 1203 - !insertmacro UMUI_IOPAGECTLLIGHT_INIT $0 - - ;If you do not use MUIEx, you need to apply the right text color and background color - ; to all the label, checkbox, radiobutton fields - ; Manually: - GetDlgItem $0 $HWND 1204 - SetCtlColors $0 ${MUI_TEXTCOLOR} ${MUI_BGCOLOR} - ; or if you use a background image: - SetCtlColors $0 ${MUI_TEXTCOLOR} "transparent" - ; Or using this macro: - GetDlgItem $0 $HWND 1205 - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $0 - </span> - GetDlgItem $DLGITEM $HWND 1200 ;1200 + Field number - 1 - ;$DLGITEM contains the HWND of the first field - CreateFont $FONT "Tahoma" 10 700 SendMessage $DLGITEM ${WM_SETFONT} $FONT 0 - !insertmacro MUI_INSTALLOPTIONS_SHOW -FunctionEnd</pre> - - <p>If you need the InstallOptions return value (success, back, cancel, error), use the <strong>MUI_INSTALLOPTIONS_DISPLAY_RETURN</strong> or <strong>MUI_INSTALLOPTIONS_SHOW_RETURN</strong> macros. The return value will be added to the stack, so you can use the Pop command to get it.</p> - - <p>Use these macros to read or write INI file values:</p> - -<pre>!insertmacro MUI_INSTALLOPTIONS_READ $VAR "ioFile.ini" "Field #" "Name" -!insertmacro MUI_INSTALLOPTIONS_WRITE "ioFile.ini" "Field #" "Name" "Value"</pre> - - <p>For example, you can use the <strong>MUI_INSTALLOPTIONS_READ</strong> macro in a section to get the user input:</p> - - <pre>!insertmacro MUI_INSTALLOPTIONS_READ $R0 "ioFile.ini" "Field 1" "State"</pre> - - <p>For more details about InstallOptions, validation of user input etc., check the <a target="_blank" href="../InstallOptions/Readme.html">InstallOptions documentation</a> or the <a href="../InstallOptionsEx/Readme.html">InstallOptionsEx documentation</a>.</p> - - </div> - - - <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_nsDialogs" src="images/closed.gif" onclick="toggle('trigger_nsDialogs', 'toggle_nsDialogs');" /> Using nsDialogs for custom pages</h2> - <div class="toggle" id="toggle_nsDialogs"> - - <p>nsDialogs is the official plug-in used by Modern UI 2.</p> - - <p>Ultra-Modern UI version 2 still not use the nsDialogs plug-in to displays custom pages but InstallOptions(Ex), so usage of nsDialogs is not recommended because two concurrent plug-ins will be used in parallel due to custom UMUI pages.</p> - - <p>Have a look at the <a target="_blank" href="../nsDialogs/Readme.html">nsDialogs documentation</a> for info about creating nsDialogs custom pages.</p> - - <p>Contrary to InstallOptions(Ex), Ultra-Modern UI does not have macro to skin automatically your custom pages.</p> - - <p>If the UMUI_(UN)PAGE_ABORT page is inserted, you need to use the <strong>UMUI_ABORT_IF_INSTALLFLAG_IS</strong> macro with the ${UMUI_CANCELLED} flag to hide your custom pages when user cancel the installation:</p> - <p>Use the <strong>MUI_HEADER_TEXT</strong> macro to set the text on the page header:</p> - -<pre>!include nsDialogs.nsh -LangString TEXT_NSD_TITLE ${LANG_ENGLISH} "nsDialogs Page Title" -LangString TEXT_NSD_SUBTITLE ${LANG_ENGLISH} "A subtitle" -Function FunctionName ;FunctionName defined with Page command - <span class="blue"> - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - </span> - !insertmacro MUI_HEADER_TEXT "$(TEXT_NSD_TITLE)" "$(TEXT_NSD_SUBTITLE)" - nsDialogs::Create 1018 - Pop $HWND ;HWND of dialog - <span class="blue"> - ;If you do not use MUIEx, apply the background color to the page: - ; Manually: - SetCtlColors $HWND "" "${MUI_BGCOLOR}" - ; or if you use a background image: - SetCtlColors $HWND "" "transparent" - ; Or using this macro: - !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $HWND - </span> - ${NSD_CreateText} 0 35 100% 12u hello - Pop $0 - <span class="blue"> - ;You can apply the right text color and background color to all the Text, Password, - ; Number, ListBox, ComboBox, DropList, FileRequest and DirRequest input fields - ; Manually: - SetCtlColors $0 ${UMUI_TEXT_INPUTCOLOR} ${UMUI_BGINPUTCOLOR} - ; Or using this macro: - !insertmacro UMUI_IOPAGEINPUTCTL_INIT $0 - </span> - ${NSD_CreateLink} 10 120 100% 12 "http://ultramodernui.sourceforge.net/" - Pop $0 - ${NSD_OnClick} $0 onClickMyLink - <span class="blue"> - ;You need to apply the right text color and background color to all the Link fields - ; Manually: - SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} ${MUI_BGCOLOR} - ; or if you use a background image: - SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} "transparent" - ; Or using this macro: - !insertmacro UMUI_IOPAGECTLLIGHTTRANSPARENT_INIT $0 - </span> - ${NSD_CreateGroupBox} 0 40u 100% 40u "Group" - Pop $0 - <span class="blue"> - ;You need to apply the right text color and background color to all the - ; GroupBox fields - ; Manually: - SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} ${MUI_BGCOLOR} - ; Or using this macro: - !insertmacro UMUI_IOPAGECTLLIGHT_INIT $0 - </span> - ${NSD_CreateCheckbox} 0 -50 100% 8u Test - Pop $0 - GetFunctionAddress $HWND OnCheckbox - nsDialogs::OnClick $0 $HWND - <span class="blue"> - ;If you do not use MUIEx, you need to apply the right text color and background color - ; to all the label, checkbox, radiobutton fields - ; Manually: - SetCtlColors $0 ${MUI_TEXTCOLOR} ${MUI_BGCOLOR} - ; or if you use a background image: - SetCtlColors $0 ${MUI_TEXTCOLOR} "transparent" - ; Or using this macro: - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $0 - </span> - nsDialogs::Show -FunctionEnd</pre> - - <p>For more details about nsDialogs, validation of user input etc., check the <a target="_blank" href="../nsDialogs/Readme.html">nsDialogs documentation</a>.</p> - - </div> - - - <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_dlg" src="images/closed.gif" onclick="toggle('trigger_dlg', 'toggle_dlg');" /> Customize standard dialogs</h2> - <div class="toggle" id="toggle_dlg"> - - <p>To change elements on the dialogs, use customized UI resource files (see <a href="#interfaceConf">Interface Configuration</a>). - You can change your copies of the original files (in the Contrib\UIs folder) by using an application such as <a target="_blank" href="http://www.users.on.net/johnson/resourcehacker/">Resource Hacker</a>.</p> - - <p>The 'Please wait while Setup is loading...' text on the splash screen that is being displayed while the installer is starting (Verifying installer, Unpacking data) can be changed by using a customized UI resource file (MUI_UI setting) with a modified dialog 111.<br /> - The 'Verifying installer' and 'Unpacking data' texts are defined in the language header file of the NSIS exehead (Source\exehead\lang.h). To change them, you have to edit this file and recompile NSIS.</p> - - <p>To modify the Welcome dialog and Finish dialog, use a custom INI file (MUI_SPECIALINI setting) or write to the INI file in the custom page functions.</p> - - </div> - -</div> - - - -<h1><a id="customFunctions"></a>Customize Ultra-Modern UI Functions</h1> -<div> - - <p>If you want add your own code to functions inserted by the Ultra-Modern UI, such as the .onGUIInit function and the Page functions, create your own function and let the Ultra-Modern UI functions call them. Use the defines to define the name of your functions.</p> - <p>Contrary to Modern UI, Ultra-Modern UI may also define itself, if background skin is used, the .onGUIEnd and the un.onGUIEnd functions. Consequently, you may not be able to declare them in your script, and, in this case, you must used this customization.</p> - - <p>Example:</p> - -<pre>!define MUI_CUSTOMFUNCTION_GUIINIT myGUIInit -Function myGUIInit - ...your own code... -FunctionEnd - -<span class="blue">!define UMUI_CUSTOMFUNCTION_GUIEND myGUIEnd -Function myGUIEnd - ...your own code... -FunctionEnd</span> - -!define MUI_CUSTOMFUNCTION_UNGUIINIT myunGUIInit -Function myunGUIInit - ...your own code... -FunctionEnd - -<span class="blue">!define UMUI_CUSTOMFUNCTION_UNGUIEND myunGUIEnd -Function myunGUIEnd - ...your own code... -FunctionEnd</span></pre> - - - <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_cfg" src="images/closed.gif" onclick="toggle('trigger_cfg', 'toggle_cfg');" /> General Custom Functions</h2> - <div class="toggle" id="toggle_cfg"> - - <p>These defines should be set before inserting the language macros.</p> - - <p><strong>MUI_CUSTOMFUNCTION_GUIINIT</strong> <span class="parameter">function</span><br /> - <strong>MUI_CUSTOMFUNCTION_UNGUIINIT</strong> <span class="parameter">function</span><br /> - <span class="blue"><strong>UMUI_CUSTOMFUNCTION_GUIEND</strong></span> <span class="parameter">function</span><br /> - <span class="blue"><strong>UMUI_CUSTOMFUNCTION_UNGUIEND</strong></span> <span class="parameter">function</span><br /> - <strong>MUI_CUSTOMFUNCTION_ABORT</strong> <span class="parameter">function</span><br /> - <strong>MUI_CUSTOMFUNCTION_UNABORT</strong> <span class="parameter">function</span><br /> - <strong>MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION</strong> <span class="parameter">function</span><br /> - <strong>MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION</strong> <span class="parameter">function</span></p> - <p>Mouse over functions are only available when the description macros (MUI_FUNCTION_DESCRIPTION_BEGIN) are used. - When component page descriptions are not used, regular .onMouseOverSection and un.onMouseOverSection must be used.</p> - </div> - - - <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_cfpg" src="images/closed.gif" onclick="toggle('trigger_cfpg', 'toggle_cfpg');" /> Page Custom Functions</h2> - <div class="toggle" id="toggle_cfpg"> - - <p>These defines should be set before inserting a page macro.</p> - - <p><strong>MUI_PAGE_CUSTOMFUNCTION_PRE</strong> <span class="parameter">function</span><br /> - <strong>MUI_PAGE_CUSTOMFUNCTION_SHOW</strong> <span class="parameter">function</span><br /> - <strong>MUI_PAGE_CUSTOMFUNCTION_LEAVE</strong> <span class="parameter">function</span><br /> - <strong>MUI_PAGE_CUSTOMFUNCTION_DESTROYED</strong> <span class="parameter">function</span></p> - - <p><strong>Notes:</strong></p> - <ul> - <li>In the Pre function of the Welcome, the Finish and the Abort pages, you can write to the InstallOptions INI file of the page (ioSpecial.ini)</li> - <li>In the Show function of Welcome, Finish and StartMenu pages, $MUI_HWND contains the HWND of the inner dialog</li> - <li>The destroyed function is called after a external/plug-in page has been destroyed. (Currently only for the original StartMenu Page)</li> - </ul> - - </div> - - - <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_cfwf" src="images/closed.gif" onclick="toggle('trigger_cfwf', 'toggle_cfwf');" /> Welcome/Finish/Abort Pages Custom Functions</h2> - <div class="toggle" id="toggle_cfwf"> - - <p>This define should be inserted before a single Welcome, Finish or Abort page.</p> - - <p><strong>MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT</strong> <span class="parameter">function</span></p> - <p>This Init function is called before the InstallOptions INI file for the page is written, so you can use it to initialize any variables used in the page settings.</p> - - </div> - -</div> - - - -<h1><a id="examples"></a>Example Scripts</h1> -<div> - <p>These examples are in the NSISDir\Examples\UltraModernUI folder :</p> - <ul> - <li>Basic: <a target="_blank" href="../../Examples/UltraModernUI/Basic.nsi">Basic.nsi</a></li> - <li>BigTest: <a target="_blank" href="../../Examples/UltraModernUI/bigtest.nsi">bigtest.nsi</a></li> - <li>Header with Bitmap (MUIEx only): <a target="_blank" href="../../Examples/UltraModernUI/HeaderBitmapEx.nsi">HeaderBitmapEx.nsi</a></li> - <li>Header with Background image (MUIEx only): <a target="_blank" href="../../Examples/UltraModernUI/HeaderBGImageEx.nsi">HeaderBGImageEx.nsi</a></li> - <li>Background Skin: <a target="_blank" href="../../Examples/UltraModernUI/PageBG.nsi">PageBG.nsi</a></li> - <li>No left Image UI (UMUI only): <a target="_blank" href="../../Examples/UltraModernUI/NoLeftImage.nsi">NoLeftImage.nsi</a></li> - <li>Ultra-Modern Small UI (UMUI only): <a target="_blank" href="../../Examples/UltraModernUI/UltraModernSmall.nsi">UltraModernSmall.nsi</a></li> - <li>Multiple languages page: <a target="_blank" href="../../Examples/UltraModernUI/MultiLanguage.nsi">MultiLanguage.nsi</a></li> - <li>Maintenance page: <a target="_blank" href="../../Examples/UltraModernUI/Maintenance.nsi">Maintenance.nsi</a></li> - <li>Update page: <a target="_blank" href="../../Examples/UltraModernUI/Update.nsi">Update.nsi</a></li> - <li>Welcome/Finish/Abort page: <a target="_blank" href="../../Examples/UltraModernUI/WelcomeFinishAbort.nsi">WelcomeFinishAbort.nsi</a></li> - <li>Information page: <a target="_blank" href="../../Examples/UltraModernUI/Information.nsi">Information.nsi</a></li> - <li>Serial Number page: <a target="_blank" href="../../Examples/UltraModernUI/SerialNumber.nsi">SerialNumber.nsi</a></li> - <li>Setup Type page: <a target="_blank" href="../../Examples/UltraModernUI/SetupType.nsi">SetupType.nsi</a></li> - <li>Alternative Start Menu Folder page: <a target="_blank" href="../../Examples/UltraModernUI/StartMenu.nsi">StartMenu.nsi</a></li> - <li>Additional Tasks page: <a target="_blank" href="../../Examples/UltraModernUI/AdditionalTasks.nsi">AdditionalTasks.nsi</a></li> - <li>Confirm page: <a target="_blank" href="../../Examples/UltraModernUI/Confirm.nsi">Confirm.nsi</a></li> - <li>File&disk request page: <a target="_blank" href="../../Examples/UltraModernUI/FileDiskRequest.nsi">FileDiskRequest.nsi</a></li> - <li>Custom pages: <a target="_blank" href="../../Examples/UltraModernUI/InstallOptions.nsi">InstallOptions.nsi</a></li> - <li>Custom pages: <a target="_blank" href="../../Examples/UltraModernUI/nsDialogs.nsi">nsDialogs.nsi</a></li> - <li>NSIS menu with Ultra-Modern UI: <a target="_blank" href="../../Examples/UltraModernUI/NSISUMUIMenu.nsi">NSISUMUIMenu.nsi</a></li> - <li>Ultra-Modern UI installer: <a target="_blank" href="../../Examples/UltraModernUI/UltraModernUI.nsi">UltraModernUI.nsi</a></li> - <li>NSIS+Ultra-Modern UI installer: <a target="_blank" href="../../Examples/UltraModernUI/NSISUltraModernUI.nsi">NSISUltraModernUI.nsi</a></li> - </ul> -</div> - - - -<h1>Version History</h1> -<ul> - - <li><strong>Version 2.0 beta 6</strong> - ??? ??, 2019 - <ul> - <li>Support multi-word section define (By Tobias B. Besemer).</li> - <li>Minor Fixes.</li> - </ul> - </li> - - <li><strong>Version 2.0 beta 5</strong> - January 01, 2019 - <ul> - <li>Ultra-Modern UI is resynchronized under Modern UI version 1.81.</li> - <li>Consequently, The UMUI_TEXT_COLOR define was renamed in MUI_TEXTCOLOR.</li> - <li>UMUI now provide an extended NSIS Menu with links for UMUI and extra plugins documentations.</li> - <li>Consequently, UMUI installers no more create extra shortcuts on the start menu, but replace the original NSIS menu shortcuts.</li> - <li>Fixed bug when the Additional Tasks page is skipped, options were not affected...</li> - <li>Fixed bug when the License page text is unreadable with the Windows high contrast mode.</li> - <li>Minor Fixes.</li> - </ul> - </li> - - <li><strong>Version 2.0 beta 4</strong> - February 04, 2018 - <ul> - <li>Fixed UMUI_PAGE_SERIALNUMBER and UMUI_UNPAGE_SERIALNUMBER pages failed to compile.</li> - </ul> - </li> - - <li><strong>Version 2.0 beta 3</strong> - August 06, 2017 - <ul> - <li>New Bulgarian language files by Angel.</li> - <li>Added support HKCR32, HKCR64, HKCU32, HKCU64, HKLM32 and HKLM64 root keys for all the UMUI_*_REGISTRY_ROOT defines and for the UMUI_ADDPARAMTOSAVETOREGISTRYKEY macro with NSIS versions >= 3.02.</li> - <li>Added support for MUI_UNCONFIRMPAGE_VARIABLE from Modern UI 1.8.</li> - <li>Added support for MUI_PAGE_CUSTOMFUNCTION_DESTROYED for original StartMenu page from Modern UI 1.8.</li> - <li>Minor Fixes.</li> - </ul> - </li> - - <li><strong>Version 2.0 beta 2</strong> - December 25, 2016 - <ul> - <li>Updated the SkinnedControls plug-in to version 1.4 with support of the new NSIS plug-in API, optional unskinit method calls and ignore case parameters name support.</li> - <li>Fixed: Links on RichText information pages are now clickable;</li> - <li>Fixed: Missing MUI_PAGE_CUSTOMFUNCTION_PRE support missing for some Ultra-Modern pages (by Bodenseematze);</li> - <li>Fixed: Most of the time, command line parameters were not transferred to Exec calls (thanks Bodenseematze);</li> - <li>Several new and completed language files and other minor fixes by Bodenseematze:</li> - <ul> - <li>Completed: German language file;</li> - <li>New: Greek language file;</li> - <li>New: Italian language file;</li> - <li>New: Lithuanian language file;</li> - <li>New: Russian language file;</li> - <li>New: Slovenian language file;</li> - <li>New: Spanish language file;</li> - <li>New: Turkish language file;</li> - </ul> - <li>Minor optimizations.</li> - </ul> - </li> - - <li><strong>Version 2.0 beta 1</strong> - August 27, 2016 - <ul> - <li>Ultra-Modern UI is now fully compatible with NSIS version 3 x86 edition and now with the large string special build; - <li>The NSISArray plug-in was replaced by the new nsArray plug-in in version 1.1.1.7 who is faster and uses less memory;</li> - <li>Updated the InstallOptionsEx plug-in to version 2.4.5 beta 3 with full unicode support;</li> - <li>Updated the SkinnedControls plug-in to version 1.3 with unicode support, bug fixed, rewritten documentation, button image size no more limited to allow smoother gradients...;</li> - <li>The information page is now compatible with UTF16LE text files if compiled in Unicode;</li> - <li>The information page is now compatible with Unix style (LF only) line return text files;</li> - <li>The UMUI_CUSTOM_SKIN define is now deprecated, it is no more necessary and you can simply use the UMUI_SKIN define with your custom skin;</li> - <li>All button image was recreated with smoother gradient;</li> - <li>Reduced weight of skin images;</li> - <li>Updated and almost completed documentation;</li> - <li>Added an example for nsDialogs based custom page and documentation;</li> - <li>The default install directory for the NSIS + Ultra-Modern UI package is now C:\ProgramData on Windows Vista and upper to allow examples to be compiled without access rights errors;</li> - <li>A lot of bug fixes and optimizations;</li> - <li>Source code now on GitHub: <a target="_blank" href="https://github.com/SuperPat45/UltraModernUI">https://github.com/SuperPat45/UltraModernUI</a>.</li> - </ul> - </li> - - <li><strong>Version 1.00 beta 2</strong> - November 11, 2010 - <ul> - <li>Second public beta release after more than three development years.</li> - <li>Ultra-Modern UI use the new NSIS Doc directory used since the version 2.07 and UMUI.nsh is resynchronised under Modern UI version 1.8.</li> - <li>Ultra-Modern UI include also a second Unser Interface named Modern UIEx. Modern UIEx is an extended version of Modern UI but with the new UltraModern pages support.</li> - - <li>Ultra-Modern UI included henceforth three plug-ins that are supported natively : - <ul> - <li>The SkinnedControls plug-in. SkinnedScrollControls is based on the wansis plug-in of Saivert and can skin all buttons and scroll bars of your NSIS installer like the most recent installers as well as the scrollbars (only for Windows 2000/XP/2003/Vista/2008).</li> - <li>The fixed version of the InstallOptionEx plug-in. InstallOptionEx is writen by Diego Pedroso (deguix) and is an expanded version of InstallOptions containing many new features, with size drawback. This version, debugged by SuperPat, contain a lot of bug fixes necessary to the correct operation of some Ultra-Modern UI pages.</li> - <li>The NSISArray plug-in. This plug-in written by Afrow UK, allows the support of the array in NSIS. It comes with plenty of functions for managing your arrays. This plug-in is used with the AlternativeStartMenu and MultiLanguages Pages of Ultra-Modern UI.</li> - </ul> - </li> - - <li>All skins were remakes and twenty skins are now available. blue, blue2, SoftBlue, red, red2, SoftRed....</li> - - <li>New pages are available: - <ul> - <li>MultiLanguage Page that can be replace the MultiLanguage Plug-in.</li> - <li>Maintenance Page with Repair, Modify, Uninstall and Continue Setup options.</li> - <li>Update Page with Update, Uninstall and Continue Setup options.</li> - <li>Information Page for viewing text and RichText files.</li> - <li>SerialNumber Page.</li> - <li>Setup Type Page with Minimal, Standard, Complete and Custom options.</li> - <li>AlternativeStartMenu Page to replace the StartMenu Plug-in. It allow to use a TreeWiew instead of the ListView and can set the ShellVarContext</li> - <li>Additional Tasks page.</li> - <li>File and Disk Request Page.</li> - </ul> - </li> - - <li>Left Text, Left Time and LeftMessageBox functions are removed.</li> - <li>And a huge number of fixes and improvements.</li> - </ul> - </li> - - <li><strong>Version 1.00 beta 1</strong> - March 20, 2005 - <ul> - <li>First public beta release.</li> - <li>Several skins are available in several color (blue , green, red, purple, brown, gray, cleargreen) and a background skin named wxp. You can obviously create your own skins.</li> - <li>The Header Image defines are disables momentarily.</li> - <li>New pages are available: Abrot Page and Confim page with recapitulation of your setting , LeftMessageBox.</li> - <li>Draw Left Text and Left Time.</li> - </ul> - </li> - - -</ul> - - -<h1>Credits</h1> -<div> - - <p>Made by SuperPat<br /> - - Based on Modern UI 1.81 Copyright 2002-2019 Joost Verburg.<br /> - - And inspired of the ExperienceUI of dandaman32.</p> - - <p>Skins by SuperPat<br /> - Ultra-Modern Icons and WXP BackGround skin is taken again on ExperineceUI of dandaman32.</p> - -</div> - - - -<h1>Help</h1> -<div> - - <p>Please post questions at the <a target="_blank" href="http://forums.winamp.com/forumdisplay.php?forumid=65">Official NSIS Forum</a>.</p> - -</div> - - - -<h1>License</h1> -<div> - - <p>The zlib/libpng license applies to Ultra-Modern UI.</p> - - - <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_lic" src="images/closed.gif" onclick="toggle('trigger_lic', 'toggle_lic');" /> License Terms</h2> - <div class="toggle" id="toggle_lic"> - - <pre>Copyright © 2005-2019 SuperPat</pre> - - <pre>This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software.</pre> - - <pre>Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute -it freely, subject to the following restrictions:</pre> - - <pre>1. The origin of this software must not be misrepresented; - you must not claim that you wrote the original software. - If you use this software in a product, an acknowledgment in the - product documentation would be appreciated but is not required. -2. Altered versions must be plainly marked as such, - and must not be misrepresented as being the original software. -3. This notice may not be removed or altered from any distribution.</pre> - - </div> - -</div> - -</div> - - <div class="footer">© 2005-2019 SuperPat</div> - - </div> - -</body> +<!DOCTYPE html> +<html lang="en"> + +<head> + + <meta content="SuperPat" name="author" /> + <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> + + <link rel="stylesheet" href="style.css" type="text/css" /> + + <script type="text/javascript" src="script.js"></script> + + <title>NSIS Ultra-Modern User Interface</title> + +</head> + +<body> + + <div class="maintable"> + + <a target="_blank" href="http://ultramodernui.sourceforge.net/" title="Go to the NSIS Ultra-Modern User Interface home page"><img src="images/header.png" alt="NSIS Ultra-Modern User Interface" /></a> + + <p class="options"><a onclick="loadSlider();expandall();">[Expand all]</a> <a onclick="collapseall();">[Collapse all]</a></p> + + <div> + + <img class="smallScreen" src="images/SmallScreen.png" alt="" /> + + <h1>Introduction</h1> + + <div style="text-align: justify;"> + <p>The Ultra-Modern User Interface is a new interface with a style like the most recent installers for NSIS 3 (Nullsoft Scriptable Install System) x86 edition, the tool that allows programmers to create such installers for Windows. Ultra-Modern UI and NSIS are released under an open source license.</p> + <p>The Ultra-Modern User Interface also features new pages (Confirm, Abort, AlternativeStartMenu, AdditionalTasks, Information, Maintenance, Update, SetupType...). The interface and the graphics can be customized using the provided settings and the new skins system. </p> + <p>Ultra-Modern UI include also another User Interface named Modern UIEx. Modern UIEx is the same User Interface as the original Modern UI style but with the support of the new ultra-modern pages and with a little more options.</p> + <p>Using the Ultra-Modern UI macros and language files, writing scripts with an ultra-modern interface is easy. A lot of examples are available to show the different features and this document contains all information about writing Ultra-Modern UI scripts and a reference of all settings.</p> + <p>The issue of Ultra-Modern UI is to be the most compatible with the existing Modern UI scripts. Because of it is based on the Modern UI of Joost Verburg, it uses the same macro and define and provide new one. The new macro and define use the prefix UMUI_ instead of MUI_.</p> + <p>Please be aware that the Ultra-Modern UI and the Modern UI interfaces settings are different compared to the classic interface. This means that you should not use settings like LicenseText, Icon, CheckBitmap, InstallColors etc. but the ones that are documented here.</p> + <p>Ultra-Modern UI include three NSIS plug-ins:</p> + <ul> + <li><a target="_blank" href="../SkinnedControls/Readme.html">SkinnedControls</a>: a plug-in, natively integrated to Ultra-Modern UI, to skin all buttons and scroll bars of your installer;</li> + <li><a target="_blank" href="../InstallOptionsEx/Readme.html">InstallOptionsEx</a>: an extension, natively integrated to Ultra-Modern UI, of the original <a target="_blank" href="../InstallOptions/Readme.html">InstallOptions</a> plug-in with more feature to create custom pages;</li> + <li><a target="_blank" href="../nsArray/Readme.txt">nsArray</a>: needed by some Ultra-Modern UI features, provide less out-of-the-box arrays and map features.</li> + </ul> + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_screenshots" src="images/closed.gif" onclick="loadSlider();toggle('trigger_screenshots', 'toggle_screenshots');" /> Screenshots</h3> + <div class="toggle" id="toggle_screenshots"> + + <div id="sliderFrame"> + <div id="slider"> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI01.png" alt="Multi language page with default skin" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI02.png" alt="Welcome page with blue skin with alternative text and alternative style options" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI03.png" alt="Maintenance page with blue2 skin with page background image option" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI04.png" alt="Update page with SoftBlue skin with page background image option" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI05.png" alt="License page with SoftRed skin" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI06.png" alt="Information page in RTF file with SoftBrown skin" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI07.png" alt="Setup type page" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI08.png" alt="Directory page with unique background image option" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI09.png" alt="Alternative start menu page with TreeView" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI10.png" alt="Additional tasks page with green skin" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI11b.png" alt="Installer confirm page with red skin" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUI12.png" alt="Abort page" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUINoLeftImage01.png" alt="License page with the no left image option" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUINoLeftImage02.png" alt="Directory page with the no left image option with SoftBule skin" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUISmall01.png" alt="Welcome page with the small page option" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/UMUISmall02.png" alt="Directory page with the small page option" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/MUIEx01.png" alt="Multi language page with the Modern UIEx interface" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/MUIEx02.png" alt="Setup type page with the Modern UIEx interface" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/MUIEx03.png" alt="Additional tasks page with the Modern UIEx interface" /> + <img data-src="http://ultramodernui.sourceforge.net/images/screenshots/MUIEx04.png" alt="Serial number page with the Modern UIEx interface" /> + </div> + </div> + + </div> + + <p>The colors, that are used in this document, correspond to the differences between Ultra-Modern UI / Modern UIEx and the original Modern UI:</p> + <ul> + <li><strong>BLACK:</strong> macro and define that were the same;</li> + <li><span class="red"><strong>RED:</strong></span> macro and define that were removed;</li> + <li><span class="blue"><strong>BLUE:</strong></span> macro and define that were added;</li> + <li><span class="purple"><strong>PURPLE:</strong></span> macro and define that were modified.</li> + </ul> + + </div> + + <h1>Writing Ultra-Modern UI Scripts</h1> + + <div style="text-align: justify;"> + <p>The Ultra-Modern UI has a macro system, so all the code to control the interface has already been written for you.</p> + <p>If you want to start a new Ultra-Modern UI script or upgrade an older script with the Modern UI or Classic UI, follow the steps below.</p> + <p>Taking a look at the <a href="#examples">example scripts</a> will also help you to learn more about the Ultra-Modern UI.</p> + + <h2>Syntax</h2> + <div> + <p>Some defines (e.g. MUI_COMPONENTSPAGE_SMALLDESC) don't need a value, they are true/false settings. Others (e.g. MUI_UI) can be used to define a specific value.</p> + <p>Parameters are specified in this format: <span class="parameter">required (option1 | option2) [optional]</span></p> + <p>Parameters for defined settings should be in one string:</p> + <pre>!define MUI_COMPONENTSPAGE_SMALLDESC ;No value<br />!define MUI_UI "myUI.exe" ;Value<br />!define MUI_INSTFILESPAGE_COLORS "FFFFFF 000000" ;Multiple settings<br /></pre> + <p>If you want a certain value (e.g. a text) to be language-specific, set a language string (using LangString) and define $(STRINGNAME) as value. Use a license language string (LicenseLangString) for the license text.</p> + <p>If you want to add " to a Modern UI string, you should always escape it using $\" because the Modern UI macros use " to separate parameters.</p> + </div> + + + <h2>1. Header file</h2> + <div> + + <p>If you want to upgrade your Modern UI script to the Ultra-Modern style, simply replace the line:</p> + <pre>!include "MUI.nsh"</pre> + <p>in your script by this one:</p> + <pre><span class="purple">!include "UMUI.nsh"</span></pre> + <p>Or this one if you want to use the Modern UIEx style (The extended version of Modern UI but with the support of the new Ultra-Modern pages):</p> + <pre><span class="purple">!include "MUIEx.nsh"</span></pre> + + <p>UMUI.nsh and MUIEx.nsh are in the Include directory, so you don't have to specify a path.</p> + + Warning, if you use the .onGuiEnd or un.onGuiEnd functions in your script, <a href="#customFunctions">see this link</a> + </div> + + + <h2><a id="interfaceConf">2. Interface Configuration</a></h2> + <div> + + <p>Interface settings should be set before inserting page macros. Page interface settings apply to all pages of a certain type.</p> + <p>There are some difference between UMUI and MUIEx defined in particular on the default values:</p> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_in" src="images/closed.gif" onclick="toggle('trigger_umui_in', 'toggle_umui_in');" /> Interface Settings for Ultra-Modern UI</h3> + <div class="toggle" id="toggle_umui_in"> + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_ac" src="images/closed.gif" onclick="toggle('trigger_umui_ac', 'toggle_umui_ac');" /> Skin Setting</h3> + <div class="toggle" id="toggle_umui_ac"> + + <p><span class="blue"><strong>UMUI_SKIN</strong></span> <span class="parameter">skin_name</span><br /> + Use a skin. It contain a lot of interface settings defines. You can change a setting to redefining it.<br /> + You can also use a custom skin not included in the default skin folders. It can contain all the Interface Setting defines you need.<br /> + <span class="blue"><em>Default: none</em></span></p> + + <p><em style="font-style: normal;">Example of the "blue" skin:</em></p> +<pre>!define /IfNDef MUI_TEXTCOLOR FFFFFF +!define /IfNDef MUI_BGCOLOR 4C72B2 +!define /IfNDef UMUI_TEXT_LIGHTCOLOR FFFF00 +!define /IfNDef UMUI_HEADERTEXT_COLOR FFFFFF +!define /IfNDef UMUI_BRANDINGTEXTFRONTCOLOR 8b8ca4 +!define /IfNDef UMUI_BRANDINGTEXTBACKCOLOR eeeef3 +!define /IfNDef UMUI_DISABLED_BUTTON_TEXT_COLOR 808080 +!define /IfNDef UMUI_SELECTED_BUTTON_TEXT_COLOR 000080 +!define /IfNDef UMUI_BUTTON_TEXT_COLOR 000000 +!define /IfNDef UMUI_LEFTIMAGE_BMP \ + "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Left.bmp" +!define /IfNDef UMUI_HEADERBGIMAGE_BMP \ + "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Header.bmp" +!define /IfNDef UMUI_BOTTOMIMAGE_BMP \ + "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Bottom.bmp" +!define /IfNDef UMUI_BUTTONIMAGE_BMP \ + "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp" +!define /IfNDef UMUI_SCROLLBARIMAGE_BMP \ + "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\ScrollBar.bmp" +!define /IfNDef UMUI_PAGEBGIMAGE_BMP \ + "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\PageBG.bmp" +!define /IfNDef MUI_WELCOMEFINISHPAGE_BITMAP \ + "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Wizard.bmp" +!define /IfNDef MUI_ICON \ + "${NSISDIR}\Contrib\Graphics\UltraModernUI\Icon.ico" +!define /IfNDef MUI_UNICON \ + "${NSISDIR}\Contrib\Graphics\UltraModernUI\UnIcon.ico"</pre> + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_ad" src="images/closed.gif" onclick="toggle('trigger_umui_ad', 'toggle_umui_ad');" /> BackGround Skin Setting</h3> + <div class="toggle" id="toggle_umui_ad"> + + <p><span class="blue"><strong>UMUI_USE_BG</strong></span> <span class="parameter">background_skin_name</span><br /> + Use a background skin. It contain two macro named "UMUI_BG" and "UMUI_BG_Destroy".<br /> + <span class="blue"><em>Default: none</em></span></p> + + <p><span class="blue"><strong>UMUI_USE_CUSTOMBG</strong></span><br /> + Use a custom background skin. don't forget to create two macro named "UMUI_BG" and "UMUI_BG_Destroy".</p> + + <p><em style="font-style: normal;">Example of a custom background skin:</em></p> + +<pre>!define UMUI_USE_CUSTOMBG + +!macro UMUI_BG + SetOutPath "$PLUGINSDIR" + File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\SpotlightBG.bmp" + File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\KeyBG.bmp" + File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\HeaderBG.bmp" + File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\BtmImgBG.bmp" + BgImage::SetBg /GRADIENT 78 111 214 78 111 214 + BgImage::AddImage "$PLUGINSDIR\HeaderBG.bmp" 0 0 + BgImage::AddImage "$PLUGINSDIR\SpotlightBG.bmp" 0 57 + BgImage::AddImage "$PLUGINSDIR\BtmImgBG.bmp" 0 -70 + BgImage::AddImage "$PLUGINSDIR\KeyBG.bmp" -248 -351 + CreateFont $1 "Verdana" 30 700 + BgImage::AddText "$(^Name)" $1 8 51 155 15 70 -1 -1 + BgImage::AddText "$(^Name)" $1 255 255 255 10 65 -1 -1 + BgImage::Redraw +!macroend + +!macro UMUI_BG_Destroy + BgImage::Destroy +!macroend</pre> + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_ingen" src="images/closed.gif" onclick="toggle('trigger_umui_ingen', 'toggle_umui_ingen');" /> General Interface Settings</h3> + <div class="toggle" id="toggle_umui_ingen"> + + <p><strong>MUI_ICON</strong> <span class="parameter">icon_file</span><br /> + The icon for the installer.<br /> + <span class="purple"><em>Default: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Icon.ico</em></span></p> + + <p><strong>MUI_UNICON</strong> <span class="parameter">icon_file</span><br /> + The icon for the uninstaller.<br /> + <span class="purple"><em>Default: ${NSISDIR}\Contrib\Graphics\UltraModernUI\UnIcon.ico</em></span></p> + + <p><span class="red"><strong>MUI_HEADERIMAGE</strong></span><br /> + Display an image on the header of the page.</p> + + <div> + + <p><span class="red"><strong>MUI_HEADERIMAGE_BITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of installers pages (recommended size: 150x57 pixels).<br /> + <em>Default: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp</em></p> + + <div> + <p><span class="red"><strong>MUI_HEADERIMAGE_BITMAP_NOSTRETCH</strong></span><br /> + Do not stretch the installer header bitmap to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + + <p><span class="red"><strong>MUI_HEADERIMAGE_BITMAP_RTL</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of installers pages when using a RTL language (recommended size: 150x57 pixels).<br /> + <em>Default: Non-RTL bitmap</em></p> + + <div> + <p><span class="red"><strong>MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH</strong></span><br /> + Do not stretch the installer header bitmap when using a RTL language to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + </div> + </div> + + <p><span class="red"><strong>MUI_HEADERIMAGE_UNBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of uninstaller pages (recommended size: 150x57 pixels).<br /> + <em>Default: Installer header bitmap</em></p> + + <div> + <p><span class="red"><strong>MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH</strong></span><br /> + Do not stretch the uninstaller header bitmap to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + + <p><span class="red"><strong>MUI_HEADERIMAGE_UNBITMAP_RTL</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of uninstallers pages when using a RTL language (recommended size: 150x57 pixels).<br /> + <em>Default: Installer RTL header bitmap</em></p> + + <div> + <p><span class="red"><strong>MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH</strong></span><br /> + Do not stretch the uninstaller header bitmap when using a RTL language to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + </div> + </div> + + <p><span class="red"><strong>MUI_HEADERIMAGE_RIGHT</strong></span><br /> + Display the header image on the right side instead of the left side (when using a RTL language it will be displayed on the left side instead of the right side).</p> + + </div> + + <p><strong>MUI_TEXTCOLOR</strong> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for all the pages. + <span class="purple"><em>Default: FFFFFF</em></span></p> + + <p><span class="blue"><strong>UMUI_TEXT_LIGHTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for GroupBox and Link of all the pages.<br /> + <span class="blue"><em>Default: FFFF00</em></span></p> + + <p><span class="blue"><strong>UMUI_TEXT_INPUTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for input controls (except checkboxes and radio buttons) of all the pages.<br /> + <span class="blue"><em>Default: 000000</em></span></p> + + <p><span class="blue"><strong>UMUI_BGINPUTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Background color for input controls (except checkboxes and radio buttons) of all the pages.<br /> + <span class="blue"><em>Default: FFFFFF</em></span></p> + + <p><strong>MUI_BGCOLOR</strong> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Background color for all the pages.<br /> + <span class="purple"><em>Default: 4C72B2</em></span></p> + + <p><span class="blue"><strong>UMUI_BRANDINGTEXTFRONTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Branding text front color for all the pages.<br /> + <span class="blue"><em>Default: 8b8ca4</em></span></p> + + <p><span class="blue"><strong>UMUI_BRANDINGTEXTBACKCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Branding text back color for all the pages.<br /> + <span class="blue"><em>Default: eeeef3</em></span></p> + + <p><span class="blue"><strong>UMUI_HEADERTEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Header text color for all the pages.<br /> + <span class="blue"><em>Default: ${MUI_TEXTCOLOR}</em></span></p> + + <p><span class="red"><strong>MUI_HEADER_TRANSPARENT_TEXT</strong></span><br /> + Set a transparent background for the header's label controls. Useful for custom user interfaces that set a bigger header image.</p> + + <p><span class="blue"><strong>UMUI_HEADERBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of installers pages.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Header.bmp</em></span></p> + + <p><span class="blue"><strong>UMUI_LEFTIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the left of installers pages.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Left.bmp</em></span></p> + + <p><span class="blue"><strong>UMUI_BOTTOMIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the bottom of installers pages.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\BtmImg.bmp</em></span></p> + + <div> + <span class="blue"><strong>UMUI_NOBOTTOMIMAGE</strong></span><br /> + Don't draw the bottom Image of installers and uninstallers pages. + </div> + + <p><span class="blue"><strong>UMUI_UNIQUEBGIMAGE</strong></span><br /> + Show a single full background image of installer.</p> + + <p><span class="blue"><strong>UMUI_PAGEBGIMAGE</strong></span><br /> + Show a background image on installers page.</p> + + <div> + <p><span class="blue"><strong>UMUI_PAGEBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image for background of installers pages or single full bitmap image of installer.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\PageBG.bmp</em></span></p> + </div> + + + <p><span class="blue"><strong>UMUI_BUTTONIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to skin all buttons of installer.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp</em></span></p> + + <div> + <span class="blue"><strong>UMUI_NO_BUTTONIMAGE</strong></span><br /> + Don't skin buttons of installers and uninstaller. + + <p><span class="blue"><strong>UMUI_DISABLED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for disabled buttons of all the pages.<br /> + <span class="blue"><em>Default: 808080</em></span></p> + + <p><span class="blue"><strong>UMUI_SELECTED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for selected buttons of all the pages.<br /> + <span class="blue"><em>Default: 000080</em></span></p> + + <p><span class="blue"><strong>UMUI_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for normal buttons of all the pages.<br /> + <span class="blue"><em>Default: 000000</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_SCROLLBARIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to skin all scroll bars of installer.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Skins\blue\ScrollBar.bmp</em></span></p> + + <div> + <span class="blue"><strong>UMUI_NO_SCROLLBARIMAGE</strong></span><br /> + Don't skin scroll bars of installer and uninstaller. + </div> + + <p><span class="blue"><strong>UMUI_UNHEADERBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of uninstallers pages.<br /> + <span class="blue"><em>Default: ${UMUI_HEADERBGIMAGE_BMP}</em></span></p> + + <p><span class="blue"><strong>UMUI_UNLEFTIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the left of uninstallers pages.<br /> + <span class="blue"><em>Default: ${UMUI_LEFTIMAGE_BMP}</em></span></p> + + <p><span class="blue"><strong>UMUI_UNBOTTOMIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the bottom of uninstallers pages.<br /> + <span class="blue"><em>Default: ${UMUI_BOTTOMIMAGE_BMP}</em></span></p> + + <p><span class="blue"><strong>UMUI_UNUNIQUEBGIMAGE</strong></span><br /> + Show a single full background image of uninstaller.</p> + + <p><span class="blue"><strong>UMUI_UNPAGEBGIMAGE</strong></span><br /> + Show a background image on uninstallers page.</p> + + <div> + <p><span class="blue"><strong>UMUI_UNPAGEBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image for background of uninstallers pages or single full bitmap image of uninstaller.<br /> + <span class="blue"><em>Default: ${UMUI_PAGEBGIMAGE_BMP}</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_UNBUTTONIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to skin all buttons of uninstaller.<br /> + <span class="blue"><em>Default: ${UMUI_BUTTONIMAGE_BMP}</em></span></p> + + <div> + <p><span class="blue"><strong>UMUI_UNDISABLED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for disabled buttons of all the pages.<br /> + <span class="blue"><em>Default: ${UMUI_DISABLED_BUTTON_TEXT_COLOR}</em></span></p> + + <p><span class="blue"><strong>UMUI_UNSELECTED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for selected buttons of all the pages.<br /> + <span class="blue"><em>Default: ${UMUI_SELECTED_BUTTON_TEXT_COLOR}</em></span></p> + + <p><span class="blue"><strong>UMUI_UNBUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for normal buttons of all the pages.<br /> + <span class="blue"><em>Default: ${UMUI_BUTTON_TEXT_COLOR}</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_UNSCROLLBARIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to skin all scroll bars of uninstaller.<br /> + <span class="blue"><em>Default: ${UMUI_SCROLLBARIMAGE_BMP}</em></span></p> + + <p><span class="blue"><strong>UMUI_BRANDINGTEXTFRONTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + The front color of the bottom text. Use the BrandingText instruction to replace the default text.<br /> + <span class="blue"><em>Default: 8B8CA4</em></span></p> + + <p><span class="blue"><strong>UMUI_BRANDINGTEXTBACKCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + The back color of the bottom text. It is shifted in comparison with the front text of one pixel to right and down below in order to give relief.<br /> + <span class="blue"><em>Default: EEEEF3</em></span></p> + + <p><span class="blue"><strong>UMUI_XPSTYLE</strong></span> <span class="parameter">(On/Off)</span><br /> + Sets whether or not a XP visual style manifest will be added to the installer. This manifest makes the installers controls use the new visual styles when running on Windows XP and later. This affects the uninstaller too.<br /> + <span class="blue"><em>Default: Off</em></span></p> + + <p><span class="blue"><strong>UMUI_ULTRAMODERN_SMALL</strong></span><br /> + Use a small interface having the same size as Modern UI but with ultra-modern graphics.</p> + + <p><span class="blue"><strong>UMUI_NOLEFTIMAGE</strong></span><br /> + User an interface without the left image.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inres" src="images/closed.gif" onclick="toggle('trigger_umui_inres', 'toggle_umui_inres');" /> Interface Resource Settings</h3> + <div class="toggle" id="toggle_umui_inres"> + + <p><span class="purple"><strong>UMUI_UI</strong></span> <span class="parameter">ui_file</span><br /> + The interface file with the dialog resources when the <strong>UMUI_ULTRAMODERN_SMALL</strong> option not defined. Change this if you have made your own customized UI.<br /> + The MUI_UI define has been renamed in Ultra-Modern UI in order to assure the compatibility with the former Modern UI scripts.<br /> + <span class="purple"><em>Default: ${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern.exe</em></span></p> + + <p><span class="blue"><strong>UMUI_UI_SMALL</strong></span> <span class="parameter">ui_file</span><br /> + The interface file with the dialog resources when the <strong>UMUI_ULTRAMODERN_SMALL</strong> option defined. Change this if you have made your own customized UI.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_small.exe</em></span></p> + + <p><span class="blue"><strong>UMUI_UI_NOLEFTIMAGE</strong></span> <span class="parameter">ui_file</span><br /> + The interface file with the dialog resources IDD_INST when the <strong>UMUI_NOLEFTIMAGE</strong> option defined and the <strong>UMUI_ULTRAMODERN_SMALL</strong> option not defined. Change this if you have made your own customized UI.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_noleftimage.exe</em></span></p> + + <p><span class="red"><strong>MUI_UI_HEADERIMAGE</strong></span> <span class="parameter">ui_file</span><br /> + The interface files with the dialog resource IDD_INST that contains a bitmap control and space for the header bitmap.<br /> + <em>Default: ${NSISDIR}\Contrib\UIs\modern_headerbmp.exe</em></p> + + <p><span class="red"><strong>MUI_UI_HEADERIMAGE_RIGHT</strong></span> <span class="parameter">ui_file</span><br /> + The interface files with the dialog resource IDD_INST that contains a bitmap control and space for the header bitmap on the right side.<br /> + <em>Default: ${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe</em></p> + + <p><strong>MUI_UI_COMPONENTSPAGE_SMALLDESC</strong> <span class="parameter">ui_file</span><br /> + The interface files with a customized dialog resource IDD_SELCOM with a small description area.<br /> + <em><span class="purple">Default without UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_smalldesc.exe</span><br /> + Default with UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\modern_smalldesc.exe</em></p> + + <p><strong>MUI_UI_COMPONENTSPAGE_NODESC</strong> <span class="parameter">ui_file</span><br /> + The interface files with a customized dialog resource IDD_SELCOM without a description area.<br /> + <em><span class="purple">Default without UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_nodesc.exe</span><br /> + Default with UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\modern_nodesc.exe</em></p> + + <p><span class="blue"><strong>UMUI_UI_COMPONENTSPAGE_BIGDESC</strong></span> <span class="parameter">ui_file</span><br /> + The interface files with a customized dialog resource IDD_SELCOM with a big description area.<br /> + <span class="blue"><em>Default without UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\UltraModern_bigdesc.exe<br /> + Default with UMUI_USE_SMALLPAGE option defined:<br />${NSISDIR}\Contrib\UIs\UltraModernUI\modern_bigdesc.exe</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inwf" src="images/closed.gif" onclick="toggle('trigger_umui_inwf', 'toggle_umui_inwf');" /> Welcome/Finish/Abort Pages Interface Settings</h3> + <div class="toggle" id="toggle_umui_inwf"> + + <p><span class="blue"><strong>UMUI_USE_ALTERNATE_PAGE</strong></span><br /> + Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers</p> + + <p><span class="blue"><strong>UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE</strong></span> <span class="parameter">size</span><br /> + Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers<br /> + <em><span class="blue">Default with UMUI_USE_ALTERNATE_PAGE option defined: 8</span><br /> + Default without UMUI_USE_ALTERNATE_PAGE option defined: 12</em></p> + + <p><span class="purple"><strong>MUI_WELCOMEFINISHPAGE_BITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap for the Welcome, the Finish and the Abort pages (recommended size: 164x314 pixels).<br /> + <em><span class="purple">Default with UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option defined:<br />${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Wizard.bmp<br /> + Default without UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option defined: none</span></em></p> + + <div> + <p><strong>MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH</strong><br /> + Do not stretch the bitmap for the Welcome, the Finish and the Abort pagesto fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + </div> + + <p><span class="blue"><strong>UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE</strong></span><br /> + Enable Bitmap for the Welcome, the Finish and the Abort pages.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inwfi" src="images/closed.gif" onclick="toggle('trigger_umui_inwfi', 'toggle_umui_inwfi');" /> Welcome/Finish/Abort Pages InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_umui_inwfi"> + + <p><span class="purple"><strong>UMUI_WELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the Welcome, the Finish and the Abort pages.<br /> + The MUI_WELCOMEFINISHPAGE_INI define has been renamed in Ultra-Modern UI in order to assure the compatibility with the former Modern UI scripts.<br /> + <span class="purple"><em>Default with UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini<br /> + Default without UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini</em></span></p> + + <p><span class="blue"><strong>UMUI_ALTERNATEWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the Alternate Welcome page, the Alternate Finish page and the Alternate Abort page.<br /> + <span class="blue"><em>Default with UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini<br /> + Default without UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inuwf" src="images/closed.gif" onclick="toggle('trigger_umui_inuwf', 'toggle_umui_inuwf');" /> Uninstaller Welcome/Finish/Abort Pages Settings</h3> + <div class="toggle" id="toggle_umui_inuwf"> + + <p><span class="blue"><strong>UMUI_USE_UNALTERNATE_PAGE</strong></span><br /> + Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers</p> + + <p><span class="purple"><strong>MUI_UNWELCOMEFINISHPAGE_BITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap for the Welcome, the Finish and the Abort pages (recommended size: 164x314 pixels).<br /> + <span class="purple"><em>Default : ${MUI_WELCOMEFINISHPAGE_BITMAP}</em></span></p> + + <div> + <p><strong>MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH</strong><br /> + Do not stretch the bitmap for the Welcome, the Finish and the Abort pagesto fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + </div> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inuwfi" src="images/closed.gif" onclick="toggle('trigger_umui_inuwfi', 'toggle_umui_inuwfi');" /> Uninstaller Welcome/Finish/Abort Pages Interface INI Settings</h3> + <div class="toggle" id="toggle_umui_inuwfi"> + + <p><span class="purple"><strong>UMUI_UNWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the uninstaller Welcome page, the Finish page and the Abort page.<br /> + The MUI_UNWELCOMEFINISHPAGE_INI define has been renamed in Ultra-Modern UI in order to assure the compatibility with the former Modern UI scripts.<br /> + <span class="purple"><em>Default with UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini<br /> + Default without UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini</em></span></p> + + <p><span class="blue"><strong>UMUI_ALTERNATEUNWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the uninstaller Alternate Welcome page, the Alternate Finish page and the Alternate Abort page.<br /> + <span class="blue"><em>Default with UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini<br /> + Default without UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inmus" src="images/closed.gif" onclick="toggle('trigger_umui_inmus', 'toggle_umui_inmus');" /> Maintenance/Update/SetupType Pages InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_umui_inmus"> + + <p><span class="blue"><strong>UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the Maintenance, the Update and the SetupType pages.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\MaintenanceUpdateSetupType.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_incnf" src="images/closed.gif" onclick="toggle('trigger_umui_incnf', 'toggle_umui_incnf');" /> Confirm Page InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_umui_incnf"> + + <p><span class="blue"><strong>UMUI_CONFIRMPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the Confirm page.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\Confirm.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_ininf" src="images/closed.gif" onclick="toggle('trigger_umui_ininf', 'toggle_umui_ininf');" /> Information Page InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_umui_ininf"> + + <p><span class="blue"><strong>UMUI_INFORMATIONPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the Information page.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\Information.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inadt" src="images/closed.gif" onclick="toggle('trigger_umui_inadt', 'toggle_umui_inadt');" /> AdditionalTasks Page InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_umui_inadt"> + + <p><span class="blue"><strong>UMUI_ADDITIONALTASKSPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the AdditionalTasks page.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\AdditionalTasks.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_insn" src="images/closed.gif" onclick="toggle('trigger_umui_insn', 'toggle_umui_insn');" /> SerialNumber Page InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_umui_insn"> + + <p><span class="blue"><strong>UMUI_SERIALNUMBERPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the SerialNumber page.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\SerialNumber.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inasm" src="images/closed.gif" onclick="toggle('trigger_umui_inasm', 'toggle_umui_inasm');" /> AlternativeStartMenu Page InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_umui_inasm"> + + <p><span class="blue"><strong>UMUI_ALTERNATIVESTARTMENUPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the AlternativeStartMenu page.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\AlternativeStartMenu.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inl" src="images/closed.gif" onclick="toggle('trigger_umui_inl', 'toggle_umui_inl');" /> License Page Interface Settings</h3> + <div class="toggle" id="toggle_umui_inl"> + + <p><strong>MUI_LICENSEPAGE_BGCOLOR</strong> <span class="parameter">(/windows | /grey | (color: RRGGBB hexadecimal))</span><br /> + The background color for the license textbox. Use /windows for the Windows text background color (usually white). Use the /grey for the window background color (usually grey).<br /> + <em>Default: /windows</em></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inc" src="images/closed.gif" onclick="toggle('trigger_umui_inc', 'toggle_umui_inc');" /> Components Page Interface Settings</h3> + <div class="toggle" id="toggle_umui_inc"> + + <p><strong>MUI_COMPONENTSPAGE_CHECKBITMAP</strong> <span class="parameter">bitmap_file</span><br /> + The bitmap with images for the checks of the component select treeview.<br /> + <em>Default: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp</em></p> + + <p><strong>MUI_COMPONENTSPAGE_SMALLDESC</strong><br /> + 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.</p> + + <p><strong>MUI_COMPONENTSPAGE_NODESC</strong><br /> + No description area.</p> + + <p><span class="blue"><strong>UMUI_COMPONENTSPAGE_BIGDESC</strong></span><br /> + A big description area on the bottom of the page. Use this layout if you have a lot of sections and need large descriptions.</p> + + <p><span class="blue"><strong>UMUI_ENABLE_DESCRIPTION_TEXT</strong></span> <span class="parameter">ini_file</span><br /> + Enable the description text when the mouse is not positionned over a component.<br /> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_ini" src="images/closed.gif" onclick="toggle('trigger_umui_ini', 'toggle_umui_ini');" /> Installation Page Interface Settings</h3> + <div class="toggle" id="toggle_umui_ini"> + + <p><strong>MUI_INSTFILESPAGE_COLORS</strong> <span class="parameter">(/windows | (foreground color: RRGGBB hexadecimal) (background color: RRGGBB hexadecimal))</span><br /> + The colors of the details screen. Use /windows for the default Windows colors.<br /> + <span class="purple"><em>Default: ${MUI_TEXTCOLOR} ${MUI_BGCOLOR}</em></span></p> + + <p><strong>MUI_INSTFILESPAGE_PROGRESSBAR</strong> <span class="parameter">("" | colored | smooth)</span><br /> + The style of the progress bar. Colored makes it use the MUI_INSTALLCOLORS.<br /> + <em>Default: smooth</em></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inf" src="images/closed.gif" onclick="toggle('trigger_umui_inf', 'toggle_umui_inf');" /> Installer Finish Page Interface Settings</h3> + <div class="toggle" id="toggle_umui_inf"> + + <p><strong>MUI_FINISHPAGE_NOAUTOCLOSE</strong><br /> + Do not automatically jump to the finish page, to allow the user to check the install log.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_uinf" src="images/closed.gif" onclick="toggle('trigger_umui_uinf', 'toggle_umui_uinf');" /> Uninstaller Finish Page Interface Settings</h3> + <div class="toggle" id="toggle_umui_uinf"> + + <p><strong>MUI_UNFINISHPAGE_NOAUTOCLOSE</strong><br /> + Do not automatically jump to the finish page, to allow the user to check the uninstall log.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inaw" src="images/closed.gif" onclick="toggle('trigger_umui_inaw', 'toggle_umui_inaw');" /> Abort Warning Settings</h3> + <div class="toggle" id="toggle_umui_inaw"> + + <p><strong>MUI_ABORTWARNING</strong><br /> + Show a message box with a warning when the user wants to close the installer.</p> + + <div> + <p><strong>MUI_ABORTWARNING_TEXT</strong> <span class="parameter">text</span><br /> + Text to display on the abort warning messagebox.</p> + <p><strong>MUI_ABORTWARNING_CANCEL_DEFAULT</strong><br /> + Set the Cancel button as the default button on the message box.</p> + </div> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_umui_inuaw" src="images/closed.gif" onclick="toggle('trigger_umui_inuaw', 'toggle_umui_inuaw');" /> Uninstaller Abort Warning Settings</h3> + <div class="toggle" id="toggle_umui_inuaw"> + + <p><strong>MUI_UNABORTWARNING</strong><br /> + Show a message box with a warning when the user wants to close the uninstaller.</p> + + <div> + <p><strong>MUI_UNABORTWARNING_TEXT</strong> <span class="parameter">text</span><br /> + Text to display on the abort warning messagebox.</p> + + <p><strong>MUI_UNABORTWARNING_CANCEL_DEFAULT</strong><br /> + Set the Cancel button as the default button on the message box.</p> + </div> + + </div> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_in" src="images/closed.gif" onclick="toggle('trigger_muiex_in', 'toggle_muiex_in');" /> Interface Settings for Modern UIEx</h3> + <div class="toggle" id="toggle_muiex_in"> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_ad" src="images/closed.gif" onclick="toggle('trigger_muiex_ad', 'toggle_muiex_ad');" /> BackGround Skin Setting</h3> + <div class="toggle" id="toggle_muiex_ad"> + + <p><span class="blue"><strong>UMUI_USE_BG</strong></span> <span class="parameter">bgskin_name</span><br /> + Use a background skin. It contain two macro named "UMUI_BG" and "UMUI_BG_Destroy".<br /> + <span class="blue"><em>Default: none</em></span></p> + + <p><span class="blue"><strong>UMUI_USE_CUSTOMBG</strong></span><br /> + Use a custom background skin. don't forget to create two macro named "UMUI_BG" and "UMUI_BG_Destroy".</p> + + <p>Example of a custom background skin:</p> +<pre>!define UMUI_USE_CUSTOMBG + +!macro UMUI_BG + SetOutPath "$PLUGINSDIR" + File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\SpotlightBG.bmp" + File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\KeyBG.bmp" + File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\HeaderBG.bmp" + File "${NSISDIR}\Contrib\UltraModernUI\BGSkins\wxp\BtmImgBG.bmp" + BgImage::SetBg /GRADIENT 78 111 214 78 111 214 + BgImage::AddImage "$PLUGINSDIR\HeaderBG.bmp" 0 0 + BgImage::AddImage "$PLUGINSDIR\SpotlightBG.bmp" 0 57 + BgImage::AddImage "$PLUGINSDIR\BtmImgBG.bmp" 0 -70 + BgImage::AddImage "$PLUGINSDIR\KeyBG.bmp" -248 -351 + CreateFont $1 "Verdana" 30 700 + BgImage::AddText "$(^Name)" $1 8 51 155 15 70 -1 -1 + BgImage::AddText "$(^Name)" $1 255 255 255 10 65 -1 -1 + BgImage::Redraw +!macroend + +!macro UMUI_BG_Destroy + BgImage::Destroy +!macroend</pre> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_ingen" src="images/closed.gif" onclick="toggle('trigger_muiex_ingen', 'toggle_muiex_ingen');" /> General Interface Settings</h3> + <div class="toggle" id="toggle_muiex_ingen"> + + <p><strong>MUI_ICON</strong> <span class="parameter">icon_file</span><br /> + The icon for the installer.<br /> + <em>Default: ${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico</em></p> + + <p><strong>MUI_UNICON</strong> <span class="parameter">icon_file</span><br /> + The icon for the uninstaller.<br /> + <em>Default: ${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico</em></p> + + <p><strong>MUI_HEADERIMAGE</strong><br /> + Display an image on the header of the page.</p> + + <div> + + <p><strong>MUI_HEADERIMAGE_BITMAP</strong> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of installers pages (recommended size: 150x57 pixels).<br /> + <em>Default: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp</em></p> + + <div> + <p><strong>MUI_HEADERIMAGE_BITMAP_NOSTRETCH</strong><br /> + Do not stretch the installer header bitmap to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + + <p><strong>MUI_HEADERIMAGE_BITMAP_RTL</strong> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of installers pages when using a RTL language (recommended size: 150x57 pixels).<br /> + <em>Default: Non-RTL bitmap</em></p> + + <div> + <p><strong>MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH</strong><br /> + Do not stretch the installer header bitmap when using a RTL language to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + </div> + </div> + + <p><strong>MUI_HEADERIMAGE_UNBITMAP</strong> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of uninstaller pages (recommended size: 150x57 pixels).<br /> + <em>Default: Installer header bitmap</em></p> + + <div> + <p><strong>MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH</strong><br /> + Do not stretch the uninstaller header bitmap to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + + <p><strong>MUI_HEADERIMAGE_UNBITMAP_RTL</strong> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of uninstallers pages when using a RTL language (recommended size: 150x57 pixels).<br /> + <em>Default: Installer RTL header bitmap</em></p> + + <div> + <p><strong>MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH</strong><br /> + Do not stretch the uninstaller header bitmap when using a RTL language to fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + </div> + </div> + + <p><strong>MUI_HEADERIMAGE_RIGHT</strong><br /> + Display the header image on the right side instead of the left side (when using a RTL language it will be displayed on the left side instead of the right side).</p> + + </div> + + + <p><span class="blue"><strong>UMUI_HEADERBGIMAGE</strong></span><br /> + Display a background image on the header of the page.</p> + + <div> + <p><span class="blue"><strong>UMUI_NOHEADERBGIMAGE</strong></span><br /> + Hide the background image on the header of the page.</p> + + <p><span class="blue"><strong>UMUI_HEADERBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of installers pages (recommended size: 497*59 pixels).<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\Graphics\Header\UltraModernUI\HeaderBG.bmp"</em></span></p> + + <p><span class="blue"><strong>UMUI_UNHEADERBGIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display on the header of installers pages (recommended size: 497*59 pixels).<br /> + <span class="blue"><em>Default: ${UMUI_HEADERBGIMAGE_BMP}"</em></span></p> + + </div> + + <p><strong>MUI_TEXTCOLOR</strong> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for all the pages. + <em>Default: 000000</em></p> + + <p><span class="blue"><strong>UMUI_TEXT_LIGHTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Default link color for finish and abort pages.<br /> + <span class="blue"><em>Default: 000000</em></span></p> + + <p><span class="blue"><strong>UMUI_TEXT_INPUTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for input controls (except checkboxes and radio buttons) of all the pages.<br /> + <span class="blue"><em>Default: 000000</em></span></p> + + <p><span class="blue"><strong>UMUI_BGINPUTCOLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Background color for input controls (except checkboxes and radio buttons) of all the pages.<br /> + <span class="blue"><em>Default: FFFFFF</em></span></p> + + <p><strong>MUI_BGCOLOR</strong> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Background color for the header, the Welcome, the Finish and the Abort pages.<br /> + <em>Default: FFFFFF</em></p> + + <p><span class="blue"><strong>UMUI_HEADERTEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Header text color for all the pages.<br /> + <span class="blue"><em>Default: ${MUI_TEXTCOLOR}</em></span></p> + + <p><span class="blue"><strong>UMUI_BUTTONIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to skin all buttons of installer.<br /> + <span class="blue"><em>Default: none</em></span></p> + + <div> + <p><span class="blue"><strong>UMUI_DISABLED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for disabled buttons of all the pages.<br /> + <span class="blue"><em>Default: 808080</em></span></p> + + <p><span class="blue"><strong>UMUI_SELECTED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for selected buttons of all the pages.<br /> + <span class="blue"><em>Default: 000080</em></span></p> + + <p><span class="blue"><strong>UMUI_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for normal buttons of all the pages.<br /> + <span class="blue"><em>Default: 000000</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_SCROLLBARIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to skin all scroll bars of installer.<br /> + <span class="blue"><em>Default: none</em></span></p> + + <p><span class="blue"><strong>UMUI_UNBUTTONIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to skin all buttons of uninstaller.<br /> + <span class="blue"><em>Default: none</em></span></p> + + <div> + <p><span class="blue"><strong>UMUI_UNDISABLED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for disabled buttons of all the pages.<br /> + <span class="blue"><em>Default: ${UMUI_DISABLED_BUTTON_TEXT_COLOR}</em></span></p> + + <p><span class="blue"><strong>UMUI_UNSELECTED_BUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for selected buttons of all the pages.<br /> + <span class="blue"><em>Default: ${UMUI_SELECTED_BUTTON_TEXT_COLOR}</em></span></p> + + <p><span class="blue"><strong>UMUI_UNBUTTON_TEXT_COLOR</strong></span> <span class="parameter">(color: RRGGBBR hexadecimal)</span><br /> + Text color for normal buttons of all the pages.<br /> + <span class="blue"><em>Default: ${UMUI_BUTTON_TEXT_COLOR}</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_UNSCROLLBARIMAGE_BMP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to skin all scroll bars of uninstaller.<br /> + <span class="blue"><em>Default: none</em></span></p> + + <p><strong>MUI_HEADER_TRANSPARENT_TEXT</strong><br /> + Set a transparent background for the header's label controls. Useful for custom user interfaces that set a bigger header image.</p> + + <p><span class="blue"><strong>UMUI_XPSTYLE</strong></span> <span class="parameter">(On/Off)</span><br /> + Sets whether or not a XP visual style manifest will be added to the installer. This manifest makes the installers controls use the new visual styles when running on Windows XP and later. This affects the uninstaller too.<br /> + <span class="blue"><em>Default with UMUI_BUTTONIMAGE_BMP|UMUI_UNBUTTONIMAGE_BMP option defined: Off<br /> + Default without UMUI_BUTTONIMAGE_BMP&UMUI_UNBUTTONIMAGE_BMP option defined: On</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inres" src="images/closed.gif" onclick="toggle('trigger_muiex_inres', 'toggle_muiex_inres');" /> Interface Resource Settings</h3> + <div class="toggle" id="toggle_muiex_inres"> + + <p><strong>MUI_UI</strong> <span class="parameter">ui_file</span><br /> + The interface file with the dialog resources. Change this if you have made your own customized UI.<br /> + <em>Default: ${NSISDIR}\Contrib\UIs\modern.exe</em></p> + + <p><strong>MUI_UI_HEADERIMAGE</strong> <span class="parameter">ui_file</span><br /> + The interface files with the dialog resource IDD_INST that contains a bitmap control and space for the header bitmap.<br /> + <em>Default: ${NSISDIR}\Contrib\UIs\modern_headerbmp.exe</em></p> + + <p><strong>MUI_UI_HEADERIMAGE_RIGHT</strong> <span class="parameter">ui_file</span><br /> + The interface files with the dialog resource IDD_INST that contains a bitmap control and space for the header bitmap on the right side.<br /> + <em>Default: ${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe</em></p> + + <p><span class="blue"><strong>UMUI_UI_HEADERBGIMAGE</strong></span> <span class="parameter">ui_file</span><br /> + The interface files with the dialog resource IDD_INST that contains a bitmap control for the header background bitmap.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UIs\UltraModernUI\modern_headerbgimage.exe</em></span></p> + + <p><strong>MUI_UI_COMPONENTSPAGE_SMALLDESC</strong> <span class="parameter">ui_file</span><br /> + The interface files with a customized dialog resource IDD_SELCOM with a small description area.<br /> + <em>Default: ${NSISDIR}\Contrib\UIs\modern_smalldesc.exe</em></p> + + <p><strong>MUI_UI_COMPONENTSPAGE_NODESC</strong> <span class="parameter">ui_file</span><br /> + The interface files with a customized dialog resource IDD_SELCOM without a description area.<br /> + <em>Default: ${NSISDIR}\Contrib\UIs\modern_nodesc.exe</em></p> + + <p><span class="blue"><strong>UMUI_UI_COMPONENTSPAGE_BIGDESC</strong></span> <span class="parameter">ui_file</span><br /> + The interface files with a customized dialog resource IDD_SELCOM with a big description area.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UIs\UltraModernUI\modern_bigdesc.exe</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inwf" src="images/closed.gif" onclick="toggle('trigger_muiex_inwf', 'toggle_muiex_inwf');" /> Welcome/Finish/Abort Pages Interface Settings</h3> + <div class="toggle" id="toggle_muiex_inwf"> + + <p><span class="blue"><strong>UMUI_USE_ALTERNATE_PAGE</strong></span><br /> + Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers</p> + + <p><span class="blue"><strong>UMUI_WELCOMEFINISHABORT_TITLE_FONTSIZE</strong></span> <span class="parameter">size</span><br /> + Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers<br /> + <em><span class="blue">Default with UMUI_USE_ALTERNATE_PAGE option defined: 8</span><br /> + Default without UMUI_USE_ALTERNATE_PAGE option defined: 12</em></p> + + <p><strong>MUI_WELCOMEFINISHPAGE_BITMAP</strong> <span class="parameter">bmp_file</span><br /> + Bitmap for the Welcome, the Finish and the Abort pages (recommended size: 164x314 pixels).<br /> + <em>Default: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp</em></p> + + <div> + <p><strong>MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH</strong><br /> + Do not stretch the bitmap for the Welcome, the Finish and the Abort pagesto fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + </div> + + <p><span class="blue"><strong>UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE</strong></span><br /> + Disable Bitmap for the Welcome, the Finish and the Abort pages.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inwfi" src="images/closed.gif" onclick="toggle('trigger_muiex_inwfi', 'toggle_muiex_inwfi');" /> Welcome/Finish/Abort Pages InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_muiex_inwfi"> + + <p><span class="purple"><strong>UMUI_WELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the Welcome, the Finish and the Abort pages.<br /> + The MUI_WELCOMEFINISHPAGE_INI define has been renamed in Ultra-Modern UI in order to assure the compatibility with the former Modern UI scripts.<br /> + <span class="purple"><em>Default without UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini<br /> + Default with UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini</em></span></p> + + <p><span class="blue"><strong>UMUI_ALTERNATEWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the Alternate Welcome page, the Alternate Finish page and the Alternate Abort page.<br /> + <span class="blue"><em>Default without UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini<br /> + Default with UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inuwf" src="images/closed.gif" onclick="toggle('trigger_muiex_inuwf', 'toggle_muiex_inuwf');" /> Uninstaller Welcome/Finish/Abort Pages Settings</h3> + <div class="toggle" id="toggle_muiex_inuwf"> + + <p><span class="blue"><strong>UMUI_USE_UNALTERNATE_PAGE</strong></span><br /> + Use an alternative Welcome page, Finish page and Abort page that looks like the most recent installers</p> + + <p><strong>MUI_UNWELCOMEFINISHPAGE_BITMAP</strong> <span class="parameter">bmp_file</span><br /> + Bitmap for the Welcome, the Finish and the Abort pages (recommended size: 164x314 pixels).<br /> + <em>Default: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp</em></p> + + <div> + <p><strong>MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH</strong><br /> + Do not stretch the bitmap for the Welcome, the Finish and the Abort pagesto fit the size of the field. Use this option only if you have an image that does not use the whole space. If you have a full size bitmap that fits exactly, you should not use this option because the size of the field will be different if the user has a custom DPI setting.</p> + </div> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inuwfi" src="images/closed.gif" onclick="toggle('trigger_muiex_inuwfi', 'toggle_muiex_inuwfi');" /> Uninstaller Welcome/Finish/Abort Pages Interface INI Settings</h3> + <div class="toggle" id="toggle_muiex_inuwfi"> + + <p><span class="purple"><strong>UMUI_UNWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the uninstaller Welcome page, the Finish page and the Abort page.<br /> + The MUI_UNWELCOMEFINISHPAGE_INI define has been renamed in Ultra-Modern UI in order to assure the compatibility with the former Modern UI scripts.<br /> + <span class="purple"><em>Default without UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini<br /> + Default with UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini</em></span></p> + + <p><span class="blue"><strong>UMUI_ALTERNATEUNWELCOMEFINISHABORTPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the uninstaller Alternate Welcome page, the Alternate Finish page and the Alternate Abort page.<br /> + <span class="blue"><em>Defaultout with UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini<br /> + Default with UMUI_WELCOMEFINISHABORTPAGE_NOTUSE_IMAGE option enabled:<br />${NSISDIR}\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inmus" src="images/closed.gif" onclick="toggle('trigger_muiex_inmus', 'toggle_muiex_inmus');" /> Maintenance/Update/SetupType Pages InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_muiex_inmus"> + + <p><span class="blue"><strong>UMUI_MAINTENANCEUPDATESETUPTYPEPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the Maintenance, the Update and the SetupType pages.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\MaintenanceUpdateSetupType.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_incnf" src="images/closed.gif" onclick="toggle('trigger_muiex_incnf', 'toggle_muiex_incnf');" /> Confirm Page InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_muiex_incnf"> + + <p><span class="blue"><strong>UMUI_CONFIRMPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the Confirm page.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\Confirm.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_ininf" src="images/closed.gif" onclick="toggle('trigger_muiex_ininf', 'toggle_muiex_ininf');" /> Information Page InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_muiex_ininf"> + + <p><span class="blue"><strong>UMUI_INFORMATIONPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the Information page.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\Information.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inadt" src="images/closed.gif" onclick="toggle('trigger_muiex_inadt', 'toggle_muiex_inadt');" /> AdditionalTasks Page InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_muiex_inadt"> + + <p><span class="blue"><strong>UMUI_ADDITIONALTASKSPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the AdditionalTasks page.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\AdditionalTasks.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_insn" src="images/closed.gif" onclick="toggle('trigger_muiex_insn', 'toggle_muiex_insn');" /> SerialNumber Page InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_muiex_insn"> + + <p><span class="blue"><strong>UMUI_SERIALNUMBERPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the SerialNumber page.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\SerialNumber.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inasm" src="images/closed.gif" onclick="toggle('trigger_muiex_inasm', 'toggle_muiex_inasm');" /> AlternativeStartMenu Page InstallOptions INI Settings</h3> + <div class="toggle" id="toggle_muiex_inasm"> + + <p><span class="blue"><strong>UMUI_ALTERNATIVESTARTMENUPAGE_INI</strong></span> <span class="parameter">ini_file</span><br /> + InstallOptions INI file for the AlternativeStartMenu page.<br /> + <span class="blue"><em>Default: ${NSISDIR}\Contrib\UltraModernUI\Ini\AlternativeStartMenu.ini</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inl" src="images/closed.gif" onclick="toggle('trigger_muiex_inl', 'toggle_muiex_inl');" /> License Page Interface Settings</h3> + <div class="toggle" id="toggle_muiex_inl"> + + <p><strong>MUI_LICENSEPAGE_BGCOLOR</strong> <span class="parameter">(/windows | /grey | (color: RRGGBB hexadecimal))</span><br /> + The background color for the license textbox. Use /windows for the Windows text background color (usually white). Use the /grey for the window background color (usually grey).<br /> + <em>Default: /windows</em></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inc" src="images/closed.gif" onclick="toggle('trigger_muiex_inc', 'toggle_muiex_inc');" /> Components Page Interface Settings</h3> + <div class="toggle" id="toggle_muiex_inc"> + + <p><strong>MUI_COMPONENTSPAGE_CHECKBITMAP</strong> <span class="parameter">bitmap_file</span><br /> + The bitmap with images for the checks of the component select treeview.<br /> + <em>Default: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp</em></p> + + <p><strong>MUI_COMPONENTSPAGE_SMALLDESC</strong><br /> + 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.</p> + + <p><strong>MUI_COMPONENTSPAGE_NODESC</strong><br /> + No description area.</p> + + <p><span class="blue"><strong>UMUI_COMPONENTSPAGE_BIGDESC</strong></span><br /> + A big description area on the bottom of the page. Use this layout if you have a lot of sections and need large descriptions.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_ini" src="images/closed.gif" onclick="toggle('trigger_muiex_ini', 'toggle_muiex_ini');" /> Installation Page Interface Settings</h3> + <div class="toggle" id="toggle_muiex_ini"> + + <p><strong>MUI_INSTFILESPAGE_COLORS</strong> <span class="parameter">(/windows | (foreground color: RRGGBB hexadecimal) (background color: RRGGBB hexadecimal))</span><br /> + The colors of the details screen. Use /windows for the default Windows colors.<br /> + <em>Default: /windows</em></p> + + <p><strong>MUI_INSTFILESPAGE_PROGRESSBAR</strong> <span class="parameter">("" | colored | smooth)</span><br /> + The style of the progress bar. Colored makes it use the MUI_INSTALLCOLORS.<br /> + <em>Default: smooth</em></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inf" src="images/closed.gif" onclick="toggle('trigger_muiex_inf', 'toggle_muiex_inf');" /> Installer Finish Page Interface Settings</h3> + <div class="toggle" id="toggle_muiex_inf"> + + <p><strong>MUI_FINISHPAGE_NOAUTOCLOSE</strong><br /> + Do not automatically jump to the finish page, to allow the user to check the install log.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_uinf" src="images/closed.gif" onclick="toggle('trigger_muiex_uinf', 'toggle_muiex_uinf');" /> Uninstaller Finish Page Interface Settings</h3> + <div class="toggle" id="toggle_muiex_uinf"> + + <p><strong>MUI_UNFINISHPAGE_NOAUTOCLOSE</strong><br /> + Do not automatically jump to the finish page, to allow the user to check the uninstall log.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inaw" src="images/closed.gif" onclick="toggle('trigger_muiex_inaw', 'toggle_muiex_inaw');" /> Abort Warning Settings</h3> + <div class="toggle" id="toggle_muiex_inaw"> + + <p><strong>MUI_ABORTWARNING</strong><br /> + Show a message box with a warning when the user wants to close the installer.</p> + + <div> + <p><strong>MUI_ABORTWARNING_TEXT</strong> <span class="parameter">text</span><br /> + Text to display on the abort warning messagebox.</p> + <p><strong>MUI_ABORTWARNING_CANCEL_DEFAULT</strong><br /> + Set the Cancel button as the default button on the message box.</p> + </div> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_muiex_inuaw" src="images/closed.gif" onclick="toggle('trigger_muiex_inuaw', 'toggle_muiex_inuaw');" /> Uninstaller Abort Warning Settings</h3> + <div class="toggle" id="toggle_muiex_inuaw"> + + <p><strong>MUI_UNABORTWARNING</strong><br /> + Show a message box with a warning when the user wants to close the uninstaller.</p> + + <div> + <p><strong>MUI_UNABORTWARNING_TEXT</strong> <span class="parameter">text</span><br /> + Text to display on the abort warning messagebox.</p> + + <p><strong>MUI_UNABORTWARNING_CANCEL_DEFAULT</strong><br /> + Set the Cancel button as the default button on the message box.</p> + </div> + + </div> + + </div> + + </div> + + + <h2>3. Pages</h2> + <div> + + <p>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. <a href="#customPages">More info about custom pages...</a></p> + <p>You can add multiple pages of certain types (for example, if you want the user to specify multiple folders).</p> + + <p>Examples:</p> +<pre>!insertmacro MUI_PAGE_LICENSE "License.rtf" +!insertmacro MUI_PAGE_COMPONENTS +Var STARTMENU_FOLDER +!insertmacro MUI_PAGE_STARTMENU "Application" $STARTMENU_FOLDER</pre> + + <p>You will need the page ID for the Start Menu Folder page when using the Start Menu Folder macros. The Start Menu Folder will be stored in the specified variable.</p> + + <strong>Installer Pages:</strong> + <ul> + <li><span class="blue">UMUI_PAGE_MULTILANGUAGE</span></li> + <li><span class="blue">UMUI_PAGE_MAINTENANCE</span></li> + <li><span class="blue">UMUI_PAGE_UPDATE</span></li> + <li>MUI_PAGE_WELCOME</li> + <li>MUI_PAGE_LICENSE <span class="parameter">text/rtf_file</span></li> + <li><span class="blue">UMUI_PAGE_INFORMATION</span> <span class="parameter">text/rtf_files</span></li> + <li><span class="blue">UMUI_PAGE_SERIALNUMBER</span> <span class="parameter">function</span></li> + <li><span class="blue">UMUI_PAGE_SETUPTYPE</span></li> + <li>MUI_PAGE_COMPONENTS</li> + <li>MUI_PAGE_DIRECTORY</li> + <li>MUI_PAGE_STARTMENU <span class="parameter">page_id variable</span></li> + <li><span class="blue">UMUI_PAGE_ALTERNATIVESTARTMENU</span> <span class="parameter">page_id variable</span></li> + <li><span class="blue">UMUI_PAGE_ADDITIONALTASKS</span> <span class="parameter">function</span></li> + <li><span class="blue">UMUI_PAGE_CONFIRM</span></li> + <li><span class="blue">UMUI_PAGE_FILEDISKREQUEST</span></li> + <li>MUI_PAGE_INSTFILES</li> + <li>MUI_PAGE_FINISH</li> + <li><span class="blue">UMUI_PAGE_ABORT</span></li> + </ul> + + <strong>Uninstaller Pages:</strong> + <ul> + <li><span class="blue">UMUI_UNPAGE_MULTILANGUAGE</span></li> + <li><span class="blue">UMUI_UNPAGE_MAINTENANCE</span></li> + <li>MUI_UNPAGE_WELCOME</li> + <li>MUI_UNPAGE_CONFIRM</li> + <li>MUI_UNPAGE_LICENSE <span class="parameter">text/rtf_file</span></li> + <li><span class="blue">UMUI_UNPAGE_INFORMATION</span> <span class="parameter">text/rtf_files</span></li> + <li><span class="blue">UMUI_UNPAGE_SERIALNUMBER</span> <span class="parameter">un.function</span></li> + <li><span class="blue">UMUI_UNPAGE_SETUPTYPE</span></li> + <li>MUI_UNPAGE_COMPONENTS</li> + <li>MUI_UNPAGE_DIRECTORY</li> + <li><span class="blue">UMUI_UNPAGE_ADDITIONALTASKS</span> <span class="parameter">page_id un.function</span></li> + <li><span class="blue">UMUI_UNPAGE_CONFIRM</span></li> + <li><span class="blue">UMUI_UNPAGE_FILEDISKREQUEST</span></li> + <li>MUI_UNPAGE_INSTFILES</li> + <li>MUI_UNPAGE_FINISH</li> + <li><span class="blue">UMUI_UNPAGE_ABORT</span></li> + </ul> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pg" src="images/closed.gif" onclick="toggle('trigger_pg', 'toggle_pg');" /> Page Settings</h3> + <div class="toggle" id="toggle_pg"> + + <p>Page settings apply to a single page and should be set before inserting a page macro. You have to repeat the setting if you want it to apply to multiple pages. Example:</p> + +<pre>;Add a directory page to let the user specify a plug-ins folder +;Store the folder in $PLUGINS_FOLDER +Var PLUGINS_FOLDER +!define MUI_DIRECTORYPAGE_VARIABLE $PLUGINS_FOLDER +!insertmacro MUI_PAGE_DIRECTORY</pre> + + <p><strong>Note:</strong> There is no difference between installer and uninstaller page settings.</p> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgg" src="images/closed.gif" onclick="toggle('trigger_pgg', 'toggle_pgg');" /> General Page Settings</h3> + <div class="toggle" id="toggle_pgg"> + + <p><strong>MUI_PAGE_HEADER_TEXT</strong> <span class="parameter">text</span><br /> + Text to display on the header of the page.</p> + + <p><strong>MUI_PAGE_HEADER_SUBTEXT</strong> <span class="parameter">text</span><br /> + Subtext to display on the header of the page.</p> + + <p><span class="blue"><strong>UMUI_PREUNINSTALL_FUNCTION</strong></span> <span class="parameter">function</span><br /> + A function to remove already installed files, but keeping configuration files and registery keys, executed before the installation itself. Useful in repair, modify and update mode or when user uncheck already installed components.</p> + + <p><span class="blue"><strong>UMUI_PARAMS_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> + <span class="blue"><strong>UMUI_PARAMS_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> + The default registry key to store diverse values. Some pages will use it to remember the selected values. Don't forget to remove this key during uninstallation.</p> + + <p><span class="blue"><strong>UMUI_INSTALLDIR_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> + <span class="blue"><strong>UMUI_INSTALLDIR_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> + <span class="blue"><strong>UMUI_INSTALLDIR_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> + The registry key to store the $INSTDIR variable. This replace the InstallDirRegKey instruction. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> + UMUI_INSTALLDIR_REGISTRY_ROOT and UMUI_INSTALLDIR_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> + + <p><span class="blue"><strong>UMUI_DEFAULT_SHELLVARCONTEXT</strong></span> <span class="parameter">(all/current)</span><br /> + Set the default context of $SMPROGRAMS and other shell folders. If set to 'current' (the default), the current user's shell folders are used. If set to 'all', the 'all users' shell folder is used. The all users folder may not be supported on all OSes. If the all users folder is not found, the current user folder will be used. Please take into consideration that a "normal user" has no rights to write in the all users area. Only admins have full access rights to the all users area. You can check this by using the UserInfo plug-in. See Contrib\UserInfo\UserInfo.nsi for an example.</p> + + <p><span class="blue"><strong>UMUI_SHELLVARCONTEXT_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> + <span class="blue"><strong>UMUI_SHELLVARCONTEXT_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> + <span class="blue"><strong>UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> + The registry key to store the ShellVarContext (current|all). Useful if the user has the option to choose through the AlternativeStartMenu page or the AddistionalTasks page. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> + UMUI_SHELLVARCONTEXT_REGISTRY_ROOT and UMUI_SHELLVARCONTEXT_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> + + <p>You can use these macros to add value to save automatically to the registry on install success. Don't forget to remove this key during uninstallation.<br /> + <strong>UMUI_ADDPARAMTOSAVETOREGISTRY</strong> <span class="parameter">registry_root registry_key value_name data</span><br /> + <strong>UMUI_ADDPARAMTOSAVETOREGISTRY</strong> <span class="parameter">value_name data</span><br /> + The last one required the <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> parameters to be defined.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgw" src="images/closed.gif" onclick="toggle('trigger_pgw', 'toggle_pgw');" /> MultiLanguage Page Settings</h3> + <div class="toggle" id="toggle_pgw"> + + <p><span class="blue"><strong>UMUI_MULTILANGUAGEPAGE_TITLE</strong></span> <span class="parameter">title</span><br /> + Title to display on the top of the page.</p> + + <p><span class="blue"><strong>UMUI_MULTILANGUAGEPAGE_TITLE_3LINES</strong></span><br /> + Extra space for the title area.<br /> + It is not used in the alternate welcome page.</p> + + <p><span class="blue"><strong>UMUI_MULTILANGUAGEPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display on the page. Use \r\n for a newline.</p> + + <p><span class="blue"><strong>UMUI_MULTILANGUAGEPAGE_LANGUAGE</strong></span> <span class="parameter">text</span><br /> + Text to display on the language frame.</p> + + <p><span class="purple"><strong>UMUI_LANGUAGE_ALWAYSSHOW</strong></span><br /> + Always show the language selection dialog, even if a language has been stored in the registry. The language stored in the registry will be selected by default.</p> + + <p><span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> + <span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> + <span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> + The registry key to store the language. The users preference will be remembered. You can also use it for the uninstaller to display the right language. This value will be automatically saved to the registry on install success. Don't forget to remove this key in the uninstaller.<br /> + UMUI_LANGUAGE_REGISTRY_ROOT and UMUI_LANGUAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> + + <p>Insert the Modern UI language files for the languages to want to include:</p> + <pre>!insertmacro MUI_LANGUAGE "English"<br /></pre> + + <p>For the installer and the uninstaller, insert the <strong>UMUI_MULTILANG_GET</strong> macro in .onInit and un.onInit fuctions to get the stored language list:</p> +<pre>Function .onInit +!insertmacro UMUI_MULTILANG_GET +FunctionEnd +Function un.onInit +!insertmacro UMUI_MULTILANG_GET +FunctionEnd</pre> + <p>If you need to use the instruction "SetRegView 64", it must be inserted in the (un).onInit functions and before the UMUI_MULTILANG_GET macro insertions.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_mn" src="images/closed.gif" onclick="toggle('trigger_mn', 'toggle_mn');" /> Maintenance Page Settings</h3> + <div class="toggle" id="toggle_mn"> + + <p>This page is shown only when the product is already installed in the same version. It draw radio buttons usualy named Modify, Repair, Remove and Continue setup. If Repair is selected, the Components, Directory and StartMenu pages are skipped.<br /> + To work, the <strong>UMUI_VERBUILD_REGISTRY_VALUENAME</strong> and the <strong>UMUI_VERBUILD</strong> parameters are required but also, the <strong>UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME</strong>, the <strong>UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME</strong> and optionally the <strong>UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME</strong> parameter of the Component Page.</p> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_MODIFY</strong></span><br /> + Enable the modify option.</p> + <div> + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_MODIFY_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the modify radiobutton.</p> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_MODIFY_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the modify radiobutton.</p> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_MODIFYBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the modify radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Modify.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\ModifyEx.bmp</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REPAIR</strong></span><br /> + Enable the repair option.</p> + <div> + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REPAIR_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the repair radiobutton.</p> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REPAIR_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the repair radiobutton.</p> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REPAIRBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the repair radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Repair.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\RepairEx.bmp</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REMOVE</strong></span><br /> + Enable the remove option.</p> + <div> + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REMOVE_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the remove radiobutton.</p> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REMOVE_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the remove radiobutton.</p> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_REMOVEBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the remove radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Remove.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\RemoveEx.bmp</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_CONTINUE_SETUP</strong></span><br /> + Enable the continue setup option.</p> + <div> + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the continue setup radiobutton.</p> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_CONTINUE_SETUP_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the continue setup radiobutton.</p> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_CONTINUE_SETUPBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the continue setup radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Continue.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\ContinueEx.bmp</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_MAINTENANCEPAGE_DEFAULTCHOICE</strong></span> <span class="parameter">flag</span><br /> + The default selected flag: must be one of ${UMUI_MODIFY}, ${UMUI_REPAIR}, ${UMUI_REMOVE} or ${UMUI_CONTINUE_SETUP}<br /> + <span class="blue"><em>Default: ${UMUI_MODIFY}</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_upd" src="images/closed.gif" onclick="toggle('trigger_upd', 'toggle_upd');" /> Update Page Settings</h3> + <div class="toggle" id="toggle_upd"> + + <p>This page is shown only when the product is already installed in a different version. It draw radio buttons usualy named Update, Remove and Continue setup. If Update is selected, the Components, Directory and StartMenu pages are skipped.<br /> + To work, the <strong>UMUI_VERBUILD_REGISTRY_VALUENAME</strong> and the <strong>UMUI_VERBUILD</strong> parameters are required but also, the <strong>UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME</strong> and optionally the <strong>UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME</strong> parameter of the Component Page.</p> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_UPDATE_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the update radiobutton.</p> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_UPDATE_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the update radiobutton.</p> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_UPDATEBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the update radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Update.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\UpdateEx.bmp</em></span></p> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_REMOVE</strong></span><br /> + Enable the remove option.</p> + <div> + <p><span class="blue"><strong>UMUI_UPDATEPAGE_REMOVE_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the remove radiobutton.</p> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_REMOVE_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the remove radiobutton.</p> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_REMOVEBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the remove radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Remove.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\RemoveEx.bmp</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_CONTINUE_SETUP</strong></span><br /> + Enable the continue setup option.</p> + <div> + <p><span class="blue"><strong>UMUI_UPDATEPAGE_CONTINUE_SETUP_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the continue setup radiobutton.</p> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_CONTINUE_SETUP_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the continue setup radiobutton.</p> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_CONTINUE_SETUPBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the continue setup radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Continue.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\ContinueEx.bmp</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_UPDATEPAGE_DEFAULTCHOICE</strong></span> <span class="parameter">flag</span><br /> + The default selected flag: must be one of ${UMUI_UPDATE}, ${UMUI_REPAIR}, ${UMUI_REMOVE} or ${UMUI_CONTINUE_SETUP}<br /> + <span class="blue"><em>Default: ${UMUI_CONTINUE_SETUP}</em></span></p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgl" src="images/closed.gif" onclick="toggle('trigger_pgl', 'toggle_pgl');" /> License Page Settings</h3> + <div class="toggle" id="toggle_pgl"> + + <p><strong>MUI_LICENSEPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><strong>MUI_LICENSEPAGE_TEXT_BOTTOM</strong> <span class="parameter">text</span><br /> + Text to display on the bottom of the page.</p> + + <p><strong>MUI_LICENSEPAGE_BUTTON</strong> <span class="parameter">button_text</span><br /> + Text to display on the 'I Agree' button.</p> + + <p><strong>MUI_LICENSEPAGE_CHECKBOX</strong><br /> + Display a checkbox the user has to check to agree with the license terms.</p> + + <div> + <p><strong>MUI_LICENSEPAGE_CHECKBOX_TEXT</strong> <span class="parameter">text</span><br /> + Text to display next to the checkbox to agree with the license terms.</p> + </div> + + <p><strong>MUI_LICENSEPAGE_RADIOBUTTONS</strong><br /> + Display two radio buttons to allow the user to choose between accepting the license terms or not.</p> + + <div> + <p><strong>MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT</strong> <span class="parameter">text</span><br /> + Text to display next to the checkbox to accept the license terms.</p> + + <p><strong>MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE</strong> <span class="parameter">text</span><br /> + Text to display next to the checkbox to decline the license terms.</p> + </div> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_aj" src="images/closed.gif" onclick="toggle('trigger_aj', 'toggle_aj');" /> Information Page Settings</h3> + <div class="toggle" id="toggle_aj"> + + <p>The pages display a single or multiple textes files or Richtext RTF files.<br /> + File name may contains a * which will be replaced by the language code. For example:<br /> + "information1033.txt" will be displayed for english and "information1036.txt" for french.<br /> + Optional "information.txt" for untranslated language files (if "informationXXXX.txt" not found).<br /> + Text files support the UTF16LE charset only if the Unicode True instruction set or an ANSI charset.</p> + + <p><span class="blue"><strong>UMUI_INFORMATIONPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><span class="blue"><strong>UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT</strong></span><br /> + Information file(s) is/are in RichText RTF format.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_sn" src="images/closed.gif" onclick="toggle('trigger_sn', 'toggle_sn');" /> SerialNumber Page Settings</h3> + <div class="toggle" id="toggle_sn"> + + <p><span class="blue"><strong>UMUI_SERIALNUMBERPAGE_TEXT_TOP</strong></span> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p>The page take a function in parameter containing some macro to add elements on the page. Example:</p> +<pre>Function serial_function + +;Get the windows name and organisation +!insertmacro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_OWNER R0 +!insertmacro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_ORGANIZATION R1 + +StrCpy $R2 "11111-22222-33333-44444-55555" + + !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "RegName" +!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL \ + REGNAME 0 "TOUPPER" $R0 "$(UMUI_TEXT_SERIALNUMBER_NAME)" + + !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "Organisation" +!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL \ + ORGANISATION 0 "CANBEEMPTY|TOLOWER" $R1 "$(UMUI_TEXT_SERIALNUMBER_ORGANIZATION)" + +!insertmacro UMUI_SERIALNUMBERPAGE_ADD_HLINE + + !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "SerialNumber" +!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL \ + SERIAL 55555 "NUMBERS|NODASHS" $R2 "$(UMUI_TEXT_SERIALNUMBER_SERIALNUMBER)" + +FunctionEnd</pre> + <p><strong>UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_OWNER</strong> <span class="parameter">default</span><br /> + Macro to get the windows registered user;<br /> + <strong>UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_ORGANIZATION</strong> <span class="parameter">default</span><br /> + Macro to get the windows registered organization;<br /> + <strong>UMUI_SERIALNUMBERPAGE_ADD_LABEL</strong> <span class="parameter">text</span><br /> + Macro to add a text;<br /> + <strong>UMUI_SERIALNUMBERPAGE_ADD_SERIAL</strong> <span class="parameter">serialID type flags default</span><br /> + <strong>UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL</strong> <span class="parameter">serialID type flags default text</span><br /> + Two macros to add an input with label. Parameters are:<br /> + serialID: A unique identifiant for this serial number<br /> + type: How many chars and how many inputs to show on the line. Example: 555 for 3 inputs of 5 characters each, 0 for unlimited chars<br /> + flags: Can be one or many (separated by |) of "", NODASHS, TOUPPER, TOLOWER, NUMBERS, CANBEEMPTY<br /> + default: The default value if not already saved in the registry.<br /> + Example XXXXX-XXXXX-XXXXX or XXXXXXXXXXXXXXX<br /> + A define are available on these macro :<br /> + <span class="blue"><strong>UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> + <span class="blue"><strong>UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> + <span class="blue"><strong>UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> + The registry key to store the value. This value will be automatically saved to the registry on install success. Don't forget to remove this key in the uninstaller.<br /> + UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_ROOT and UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> + + <p>Use the <strong>UMUI_SERIALNUMBER_GET</strong> <span class="parameter">serialID variable</span> macro to get the value.</p> + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_ak" src="images/closed.gif" onclick="toggle('trigger_ak', 'toggle_ak');" /> SetupType Page Settings</h3> + <div class="toggle" id="toggle_ak"> + + <p>This page draw radio buttons usualy named Minimal, Standard, Complete and Custom. If Custom is not selected, the Components, Directory and StartMenu pages are skipped.</p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_MINIMAL</strong></span> <span class="parameter">InstTypeName</span><br /> + Enable the minimal option. The InstTypeName must correspond to an existing InstType declaration. Typically:</p> +<pre>!define UMUI_SETUPTYPEPAGE_MINIMAL "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" +InstType "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)"</pre> + <div> + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_MINIMAL_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the minimal radiobutton.</p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_MINIMAL_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the minimal radiobutton.</p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_MINIMALBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the minimal radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Minimal.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\MinimalEx.bmp</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_STANDARD</strong></span> <span class="parameter">InstTypeName</span><br /> + Enable the standard option. The InstTypeName must correspond to an existing InstType declaration. Typically:</p> +<pre>!define UMUI_SETUPTYPEPAGE_STANDARD "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" +InstType "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)"</pre> + <div> + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_STANDARD_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the standard radiobutton.</p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_STANDARD_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the standard radiobutton.</p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_STANDARDBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the standard radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Standard.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\StandardEx.bmp</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_COMPLETE</strong></span> <span class="parameter">InstTypeName</span><br /> + Enable the complete option. The InstTypeName must correspond to an existing InstType declaration. Typically:</p> +<pre>!define UMUI_SETUPTYPEPAGE_COMPLETE "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" +InstType "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)"</pre> + <div> + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_COMPLETE_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the complete radiobutton.</p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_COMPLETE_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the complete radiobutton.</p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_COMPLETEBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the complete radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Complete.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\CompleteEx.bmp</em></span></p> + </div> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_CUSTOM_TITLE</strong></span> <span class="parameter">text</span><br /> + Title of the custom radiobutton.</p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_CUSTOM_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display under the custom radiobutton.</p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_CUSTOMBITMAP</strong></span> <span class="parameter">bmp_file</span><br /> + Bitmap image to display under the custom radiobutton.<br /> + <span class="blue"><em>Default with UMUI: ${NSISDIR}\Contrib\Graphics\UltraModernUI\Custom.bmp<br /> + Default with MUIEx: ${NSISDIR}\Contrib\Graphics\UltraModernUI\CustomEx.bmp</em></span></p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_DEFAULTCHOICE</strong></span> <span class="parameter">flag</span><br /> + The default selected flag: must be one of ${UMUI_MINIMAL}, ${UMUI_STANDARD}, ${UMUI_COMPLETE} or ${UMUI_CUSTOM}<br /> + <span class="blue"><em>Default: ${UMUI_CUSTOM}</em></span></p> + + <p><span class="blue"><strong>UMUI_SETUPTYPEPAGE_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> + <span class="blue"><strong>UMUI_SETUPTYPEPAGE_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> + <span class="blue"><strong>UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> + The registry key to store selected setup type. The page will use it to remember the selected setup type. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> + UMUI_SETUPTYPEPAGE_REGISTRY_ROOT and UMUI_SETUPTYPEPAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> + + <p>You can use the macro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT to get the selected setup type text for, by example, the Confirm page function:</p> +<pre>Function confirm_function +; ... + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SETUPTYPE_TITLE):" + !insertmacro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT + Pop $R0 + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $R0" +; ... +FunctionEnd</pre> + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgc" src="images/closed.gif" onclick="toggle('trigger_pgc', 'toggle_pgc');" /> Components Page Settings</h3> + <div class="toggle" id="toggle_pgc"> + + <p><strong>MUI_COMPONENTSPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><strong>MUI_COMPONENTSPAGE_TEXT_COMPLIST</strong> <span class="parameter">text</span><br /> + Text to display on next to the components list.</p> + + <p><strong>MUI_COMPONENTSPAGE_TEXT_INSTTYPE</strong> <span class="parameter">text</span><br /> + Text to display on next to the installation type combo box.</p> + + <p><strong>MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE</strong> <span class="parameter">text</span><br /> + Text to display on the of the top of the description box.</p> + + <p><strong>MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO</strong> <span class="parameter">text</span><br /> + Text to display inside the description box when no section is selected.</p> + + <p><span class="blue"><strong>UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> + <span class="blue"><strong>UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> + <span class="blue"><strong>UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> + The registry key to store selected setup type. The page will use it to remember the selected setup type. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> + UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_ROOT and UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> + + <p><span class="blue"><strong>UMUI_COMPONENTSPAGE_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> + <span class="blue"><strong>UMUI_COMPONENTSPAGE_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> + <span class="blue"><strong>UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> + The registry key to store selected components. The page will use it to remember the selected components. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> + UMUI_COMPONENTSPAGE_REGISTRY_ROOT and UMUI_COMPONENTSPAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.<br /> + Components must be declared using UMUI_COMPONENT macro surrounded by UMUI_DECLARECOMPONENTS_BEGIN and UMUI_DECLARECOMPONENTS_END macros:</p> +<pre>Section "Section 1" SecID1 +SectionEnd +Section "Section 2" SecID2 +SectionEnd + +!insertmacro UMUI_DECLARECOMPONENTS_BEGIN + !insertmacro UMUI_COMPONENT SecID1 + !insertmacro UMUI_COMPONENT SecID2 +!insertmacro UMUI_DECLARECOMPONENTS_END</pre> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgd" src="images/closed.gif" onclick="toggle('trigger_pgd', 'toggle_pgd');" /> Directory Page Settings</h3> + <div class="toggle" id="toggle_pgd"> + + <p><strong>MUI_DIRECTORYPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> + Text to display on top of the page.</p> + + <p><strong>MUI_DIRECTORYPAGE_TEXT_DESTINATION</strong> <span class="parameter">text</span><br /> + Text to display on the destination folder frame.</p> + + <p><strong>MUI_DIRECTORYPAGE_VARIABLE</strong> <span class="parameter">variable</span><br /> + Variable in which to store the selected folder.<br /> + <em>Default: $INSTDIR</em></p> + + <p><strong>MUI_DIRECTORYPAGE_VERIFYONLEAVE</strong><br /> + Does not disable the Next button when a folder is invalid but allows you to use GetInstDirError in the leave function to handle an invalid folder.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgs" src="images/closed.gif" onclick="toggle('trigger_pgs', 'toggle_pgs');" /> Start Menu Folder Page Settings</h3> + <div class="toggle" id="toggle_pgs"> + + <p>For that the START_MENU page uses the colors of background and of text, you must use at least the version 2.06 of NSIS</p> + + <p>Put the code to write the shortcuts (using CreateShortcut) between the MUI_STARTMENU_WRITE_BEGIN and MUI_STARTMENU_WRITE_END macros:</p> +<pre>!insertmacro MUI_STARTMENU_WRITE_BEGIN page_id +...create shortcuts... +!insertmacro MUI_STARTMENU_WRITE_END</pre> + + <p>The page ID should be the ID of the page on which the user has selected the folder for the shortcuts you want to write.</p> + + <p><strong>MUI_STARTMENUPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><strong>MUI_STARTMENUPAGE_TEXT_CHECKBOX</strong> <span class="parameter">text</span><br /> + Text to display next to the checkbox to disable the Start Menu folder creation.</p> + + <p><strong>MUI_STARTMENUPAGE_DEFAULTFOLDER</strong> <span class="parameter">folder</span><br /> + The default Start Menu Folder.</p> + + <p><strong>MUI_STARTMENUPAGE_NODISABLE</strong><br /> + Do not display the checkbox to disable the creation of Start Menu shortcuts.</p> + + <p><strong>MUI_STARTMENUPAGE_REGISTRY_ROOT</strong> <span class="parameter">root</span><br /> + <strong>MUI_STARTMENUPAGE_REGISTRY_KEY</strong> <span class="parameter">key</span><br /> + <strong>MUI_STARTMENUPAGE_REGISTRY_VALUENAME</strong> <span class="parameter">value_name</span><br /> + The registry key to store the Start Menu folder. The page will use it to remember the users preference. This value will be automatically saved to the registry on install success. You should also use for the uninstaller to remove the Start Menu folders. Don't forget to remove this key during uninstallation.<br /> + MUI_STARTMENUPAGE_REGISTRY_ROOT and MUI_STARTMENUPAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> + + <p>For the uninstaller, use the <strong>MUI_STARTMENU_GETFOLDER</strong> macro to get the Start Menu folder:</p> +<pre>!insertmacro MUI_STARTMENU_GETFOLDER page_id $R0 +Delete "$SMPROGRAMS\$R0\Your Shortcut.lnk"</pre> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgasm" src="images/closed.gif" onclick="toggle('trigger_pgasm', 'toggle_pgasm');" /> Alternative Start Menu Folder Page Settings</h3> + <div class="toggle" id="toggle_pgasm"> + + <p>For that the START_MENU page uses the colors of background and of text, you must use at least the version 2.06 of NSIS</p> + + <p>Put the code to write the shortcuts (using CreateShortcut) between the MUI_STARTMENU_WRITE_BEGIN and MUI_STARTMENU_WRITE_END macros:</p> + +<pre>!insertmacro MUI_STARTMENU_WRITE_BEGIN page_id +...create shortcuts... +!insertmacro MUI_STARTMENU_WRITE_END</pre> + + <p>The page ID should be the ID of the page on which the user has selected the folder for the shortcuts you want to write.</p> + + <p><strong>MUI_STARTMENUPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><strong>MUI_STARTMENUPAGE_TEXT_CHECKBOX</strong> <span class="parameter">text</span><br /> + Text to display next to the checkbox to disable the Start Menu folder creation.</p> + + <p><strong>MUI_STARTMENUPAGE_DEFAULTFOLDER</strong> <span class="parameter">folder</span><br /> + The default Start Menu Folder.</p> + + <p><strong>MUI_STARTMENUPAGE_NODISABLE</strong><br /> + Do not display the checkbox to disable the creation of Start Menu shortcuts.</p> + + <p><span class="blue"><strong>UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW</strong></span><br /> + Replace the default ListVIew by a TreeView.</p> + + <p><span class="blue"><strong>UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT</strong></span><br /> + Show radio buttons to select ShellVarContext.</p> + + <div> + <p><span class="blue"><strong>UMUI_STARTMENUPAGE_SHELL_VAR_CONTEXT_TITLE</strong></span> <span class="parameter">text</span><br /> + Text to display on the top of the ShellVarContext GroupBox.</p> + + <p><span class="blue"><strong>UMUI_STARTMENUPAGE_TEXT_FOR_ALL_USERS</strong></span> <span class="parameter">text</span><br /> + Text to display next to the radio button to select for all users ShellVarContext.</p> + + <p><span class="blue"><strong>UMUI_STARTMENUPAGE_TEXT_FOR_THE_CURRENT_USER</strong></span> <span class="parameter">text</span><br /> + Text to display next to the radio button to select the current user ShellVarContext.</p> + </div> + + <p><strong>MUI_STARTMENUPAGE_REGISTRY_ROOT</strong> <span class="parameter">root</span><br /> + <strong>MUI_STARTMENUPAGE_REGISTRY_KEY</strong> <span class="parameter">key</span><br /> + <strong>MUI_STARTMENUPAGE_REGISTRY_VALUENAME</strong> <span class="parameter">value_name</span><br /> + The registry key to store the Start Menu folder. The page will use it to remember the users preference. This value will be automatically saved to the registry on install success. You should also use for the uninstaller to remove the Start Menu folders. Don't forget to remove this key during uninstallation.<br /> + MUI_STARTMENUPAGE_REGISTRY_ROOT and MUI_STARTMENUPAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> + + <p>For the uninstaller, use the <strong>MUI_STARTMENU_GETFOLDER</strong> macro to get the Start Menu folder:</p> +<pre>!insertmacro MUI_STARTMENU_GETFOLDER page_id $R0 +Delete "$SMPROGRAMS\$R0\Your Shortcut.lnk"</pre> + + <p>You can use the <strong>UMUI_GETSHELLVARCONTEXT</strong> macro to get the selected selected shell var context for, by example, the Confirm page function:</p> +<pre>Function confirm_function +; ... + ;Only if StartMenu Folder is selected + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_START_MENU_FOLDER)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $STARTMENU_FOLDER" + + ;ShellVarContext + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" + !insertmacro UMUI_GETSHELLVARCONTEXT + Pop $1 + StrCmp $1 "all" 0 current + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + Goto endsvc + current: + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + endsvc: + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + !insertmacro MUI_STARTMENU_WRITE_END +; ... +FunctionEnd</pre> + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_adt" src="images/closed.gif" onclick="toggle('trigger_adt', 'toggle_adt');" /> AdditionalTasks Page Settings</h3> + <div class="toggle" id="toggle_adt"> + + <p><span class="blue"><strong>UMUI_ADDITIONALTASKSPAGE_TEXT_TOP</strong></span> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><span class="blue"><strong>UMUI_ADDITIONALTASKS_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> + <span class="blue"><strong>UMUI_ADDITIONALTASKS_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> + <span class="blue"><strong>UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> + The registry key to store the AddistionalTasks value. The page will use it to remember the all selected all value selected on all the AddistionalTasks pages. This value will be automatically saved to the registry on install success. Don't forget to remove this key during uninstallation.<br /> + UMUI_ADDITIONALTASKS_REGISTRY_ROOT and UMUI_ADDITIONALTASKS_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.</p> + + <p>The page take a function in parameter containing some macro to add elements on the page.<br /> + <strong>UMUI_ADDITIONALTASKSPAGE_ADD_LABEL</strong> <span class="parameter">text</span><br /> + Macro to add a text;<br /> + <strong>UMUI_ADDITIONALTASKSPAGE_ADD_TASK</strong> <span class="parameter">taskID isChecked text</span><br /> + Macro to add a checkbox task;<br /> + <strong>UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO</strong> <span class="parameter">taskID isSelected text</span><br /> + Macro to add a radio task;<br /> + <strong>UMUI_ADDITIONALTASKSPAGE_ADD_EMPTYLINE</strong><br /> + Macro to add an empty line;<br /> + <strong>UMUI_ADDITIONALTASKSPAGE_ADD_LINE</strong><br /> + Macro to add an horizontal line;<br /> + for example:</p> +<pre>Function addtasks_function + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL \ + "$(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK DESKTOP 1 \ + "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK QUICK_LAUNCH 1 \ + "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_QUICK_LAUNCH_ICON)" + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_EMPTYLINE + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL \ + "$(UMUI_TEXT_ADDITIONALTASKS_ADVANCED_PARAMETERS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK STARTUP 1 \ + "$(UMUI_TEXT_ADDITIONALTASKS_LAUNCH_PROGRAM_AT_WINDOWS_STARTUP)" + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL \ + "$(UMUI_TEXT_ADDITIONALTASKS_FILE_ASSOCIATION)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK ASSOCIATE 0 \ + "$(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH) .UMUI $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH_END)" + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LINE + + ; only if a directory has been selected in the STARTMENU page + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 1 \ + "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 0 \ + "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + !insertmacro MUI_STARTMENU_WRITE_END + +FunctionEnd</pre> + + <p>You can use the <strong>UMUI_ADDITIONALTASKS_IF_CKECKED, UMUI_ADDITIONALTASKS_IF_NOT_CKECKED</strong> and <strong>UMUI_ADDITIONALTASKS_ENDIF</strong> macros to check if element is selected.<br /> + By example, the Confirm page function:</p> +<pre>Function confirm_function +; ... + ;Only if one at least of the six checks is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP|QUICK_LAUNCH|STARTUP|ASSOCIATE|ALL|CURRENT + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + "$(UMUI_TEXT_ADDITIONALTASKS_TITLE):" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;Only if one at least of additional icon check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP|QUICK_LAUNCH + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;Only if the first check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;Only if the second check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED QUICK_LAUNCH + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_QUICK_LAUNCH_ICON)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;Only if start programm at windows startup check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED STARTUP + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_ADDITIONALTASKS_ADVANCED_PARAMETERS)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_ADDITIONALTASKS_LAUNCH_PROGRAM_AT_WINDOWS_STARTUP)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;Only if file association check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ASSOCIATE + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_ADDITIONALTASKS_FILE_ASSOCIATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH) .UMUI $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH_END)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if a directory has been selected in the STARTMENU page + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL|CURRENT + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_SHELL_VAR_CONTEXT)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if for all user radio is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if for current user is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF +; ... +FunctionEnd</pre> + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgab" src="images/closed.gif" onclick="toggle('trigger_pgab', 'toggle_pgab');" /> Install Confirm Page Settings</h3> + <div class="toggle" id="toggle_pgab"> + + <p><span class="blue"><strong>UMUI_CONFIRMPAGE_TEXT_TOP</strong></span> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><span class="blue"><strong>UMUI_CONFIRMPAGE_TEXT_BOTTOM</strong></span> <span class="parameter">text</span><br /> + Text to display on the bottom of the page.</p> + + <p><span class="blue"><strong>UMUI_CONFIRMPAGE_TEXTBOX</strong></span> <span class="parameter">function_name</span><br /> + Draw a TextBox in which will be post the current configuration. The function will be use to add lines (using the UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE macro).</p> + + <p>For example to add the Destination Location and the Start Menu Floder :</p> +<pre>Function function_name + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + "$(UMUI_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + ;Only if StartMenu Floder is selected + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE \ + "$(UMUI_INSTCONFIRM_TEXTBOX_START_MENU_FLODER)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $STARTMENU_FOLDER" + !insertmacro MUI_STARTMENU_WRITE_END +FunctionEnd</pre> + + <p>Use the <strong>UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE</strong> macro to add lines with a empty string to jump a line.<br /> + The $(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION) and <br /> + $(UMUI_TEXT_INSTCONFIRM_TEXTBOX_START_MENU_FLODER) variables are defined in the langage files. </p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_fdr" src="images/closed.gif" onclick="toggle('trigger_fdr', 'toggle_fdr');" /> FileDiskRequest Page Settings</h3> + <div class="toggle" id="toggle_fdr"> + + <p>This page is shown only when the file to search is not on the folder stored on the specified variable.</p> + + <p><span class="blue"><strong>UMUI_FILEDISKREQUESTPAGE_TEXT_TOP</strong></span> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><span class="blue"><strong>UMUI_FILEDISKREQUESTPAGE_TEXT_PATH</strong></span> <span class="parameter">text</span><br /> + Text to display on the folder frame.</p> + + <p><span class="blue"><strong>UMUI_FILEDISKREQUESTPAGE_FILE_NAME</strong></span> <span class="parameter">name</span><br /> + The name of the file to search.</p> + + <p><span class="blue"><strong>UMUI_FILEDISKREQUESTPAGE_DISK_NAME</strong></span> <span class="parameter">name</span><br /> + Optional. The name of the disk containing the file to search. This parameter change the default UMUI_FILEDISKREQUESTPAGE_TEXT_TOP.</p> + + <p><span class="blue"><strong>UMUI_FILEDISKREQUESTPAGE_VARIABLE</strong></span> <span class="parameter">variable</span><br /> + Variable in which to store the selected folder.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgi" src="images/closed.gif" onclick="toggle('trigger_pgi', 'toggle_pgi');" /> Installation Page Settings</h3> + <div class="toggle" id="toggle_pgi"> + + <p><strong>MUI_INSTFILESPAGE_FINISHHEADER_TEXT</strong> <span class="parameter">text</span><br /> + Text to display on the header of the installation page when the installation has been completed (won't be displayed when using a Finish page without MUI_(UN)FINISHPAGE_NOAUTOCLOSE).</p> + + <p><strong>MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT</strong> <span class="parameter">text</span><br /> + Subext to display on the header of the installation page when the installation has been completed (won't be displayed when using a Finish page without MUI_(UN)FINISHPAGE_NOAUTOCLOSE).</p> + + <p><strong>MUI_INSTFILESPAGE_ABORTHEADER_TEXT</strong> <span class="parameter">text</span><br /> + Text to display on the header of the installation page when the installation has been aborted.</p> + + <p><strong>MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT</strong> <span class="parameter">text</span><br /> + Subext to display on the header of the installation page when the installation has been aborted.</p> + + <p><span class="blue"><strong>UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON</strong></span> <span class="parameter">function_name</span><br /> + Enable the instfile page cancel button and call the function_name in case of cancelled. This function must cancel the modifications of the system that there could have had. For the UNPAGE_INSTFILE, this function must begin with "un." . </p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgf" src="images/closed.gif" onclick="toggle('trigger_pgf', 'toggle_pgf');" /> Finish Page Settings</h3> + <div class="toggle" id="toggle_pgf"> + + <p><strong>MUI_FINISHPAGE_TITLE</strong> <span class="parameter">title</span><br /> + Title to display on the top of the page.</p> + + <p><strong>MUI_FINISHPAGE_TITLE_3LINES</strong><br /> + Extra space for the title area.<br /> + It is not used in the alternate finish page.</p> + + <p><strong>MUI_FINISHPAGE_TEXT</strong> <span class="parameter">text</span><br /> + Text to display on the page. Use \r\n for a newline.</p> + + <p><strong>MUI_FINISHPAGE_TEXT_LARGE</strong><br /> + Extra space for the text area (if using checkboxes).</p> + + <p><strong>MUI_FINISHPAGE_BUTTON</strong> <span class="parameter">text</span><br /> + Text to display on the Finish button.</p> + + <p><strong>MUI_FINISHPAGE_TEXT_REBOOT</strong> <span class="parameter">text</span><br /> + Text to display on the finish page when asking for a system reboot. Use \r\n for a newline.</p> + + <p><strong>MUI_FINISHPAGE_TEXT_REBOOTNOW</strong> <span class="parameter">text</span><br /> + Text to display next to the 'Reboot now' option button.</p> + + <p><strong>MUI_FINISHPAGE_TEXT_REBOOTLATER</strong> <span class="parameter">text</span><br /> + Text to display next to the 'Reboot later' option button.</p> + + <p><strong>MUI_FINISHPAGE_RUN</strong> <span class="parameter">exe_file</span><br /> + Application which the user can select to run using a checkbox. You don't need to put quotes around the filename when it contains spaces.</p> + + <div> + <p><strong>MUI_FINISHPAGE_RUN_TEXT</strong> <span class="parameter">text</span><br /> + Texts to display next to the 'Run program' checkbox.</p> + + <p><strong>MUI_FINISHPAGE_RUN_PARAMETERS</strong> <span class="parameter">parameters</span><br /> + Parameters for the application to run. Don't forget to escape double quotes in the value (use $\").</p> + + <p><strong>MUI_FINISHPAGE_RUN_NOTCHECKED</strong><br /> + Do not check the 'Run program' checkbox by default</p> + + <p><strong>MUI_FINISHPAGE_RUN_FUNCTION</strong> <span class="parameter">function_name</span><br /> + Call a function instead of executing an application (define MUI_FINISHPAGE_RUN without parameters). You can use the function to exectute multiple applications or you can change the checkbox name and use it for other things.</p> + </div> + + <p><strong>MUI_FINISHPAGE_SHOWREADME</strong> <span class="parameter">file/url</span><br /> + 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.</p> + + <div> + <p><strong>MUI_FINISHPAGE_SHOWREADME_TEXT</strong> <span class="parameter">text</span><br /> + Texts to display next to the 'Show Readme' checkbox.</p> + + <p><strong>MUI_FINISHPAGE_SHOWREADME_NOTCHECKED</strong><br /> + Do not check the 'Show Readme' checkbox by default</p> + + <p><strong>MUI_FINISHPAGE_SHOWREADME_FUNCTION</strong> <span class="parameter">function_name</span><br /> + Call a function instead of showing a file (define MUI_FINISHPAGE_SHOWREADME without parameters). You can use the function to show multiple files or you can change the checkbox name and use it for other things.</p> + </div> + + <p><strong>MUI_FINISHPAGE_LINK</strong> <span class="parameter">link_text</span><br /> + Text for a link on the which the user can click to view a website or file.</p> + + <div> + <p><strong>MUI_FINISHPAGE_LINK_LOCATION</strong> <span class="parameter">file/url</span><br /> + 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.</p> + + <p><strong>MUI_FINISHPAGE_LINK_COLOR</strong> <span class="parameter">(color: RRGGBB hexadecimal)</span><br /> + Text color for the link on the Finish page.<br /> + <span class="purple"><em>Default: ${UMUI_TEXT_LIGHTCOLOR}</em></span></p> + </div> + + <p><strong>MUI_FINISHPAGE_NOREBOOTSUPPORT</strong><br /> + Disables support for the page that allows the user to reboot the system. Define this option to save some space if you are not using the /REBOOTOK flag or SetRebootFlag.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgau" src="images/closed.gif" onclick="toggle('trigger_pgau', 'toggle_pgau');" /> Abort Page Settings</h3> + <div class="toggle" id="toggle_pgau"> <strong><span class="blue">UMUI_ABORTPAGE_TITLE</span></strong> <span class="parameter">title</span><br /> + + Title to display on the top of the page. + + <p><span class="blue"><strong>UMUI_ABORTPAGE_TITLE_3LINES</strong></span><br /> + Extra space for the title area.<br /> + It is not used in the alternate abort page.</p> + + <p><span class="blue"><strong>UMUI_ABORTPAGE_TEXT</strong></span> <span class="parameter">text</span><br /> + Text to display on the page. Use \r\n for a newline.</p> + + <p><span class="blue"><strong>UMUI_ABORTPAGE_LINK</strong></span> <span class="parameter">link_text</span><br /> + Text for a link on the which the user can click to view a website or file.</p> + + <div> + <p><span class="blue"><strong>UMUI_ABORTPAGE_LINK_LOCATION</strong></span> <span class="parameter">file/url</span><br /> + 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.</p> + + <p><span class="blue"><strong>UMUI_ABORTPAGE_LINK_COLOR</strong></span> <span class="parameter">(color: RRGGBB hexadecimal)</span><br /> + Text color for the link on the Finish page.<br /> + <span class="blue"><em>Default: ${UMUI_TEXT_LIGHTCOLOR}</em></span></p> + </div> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pgu" src="images/closed.gif" onclick="toggle('trigger_pgu', 'toggle_pgu');" /> Uninstall Confirm Page Settings</h3> + <div class="toggle" id="toggle_pgu"> + + <p><strong>MUI_UNCONFIRMPAGE_TEXT_TOP</strong> <span class="parameter">text</span><br /> + Text to display on the top of the page.</p> + + <p><strong>MUI_UNCONFIRMPAGE_TEXT_LOCATION</strong> <span class="parameter">text</span><br /> + Text to display next to the uninstall location text box.</p> + + <strong>MUI_UNCONFIRMPAGE_VARIABLE</strong> <span class="parameter">variable</span><br /> + Variable in which to store the uninstall source folder.<br /> + <em>Default: $INSTDIR</em></p> + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_pga" src="images/closed.gif" onclick="toggle('trigger_pga', 'toggle_pga');" /> Advanced Page Settings</h3> + <div class="toggle" id="toggle_pga"> + + <p>You can add custom code to the page functions of your Modern UI pages. <a href="#customFunctions">More info...</a></p> + + </div> + + </div> + +</div> + + + +<h2>4. Custom functions</h2> +<div> + + <p>If you want add your own code to functions inserted by the Modern UI (e.g. the .onGUIInit function and the page functions), create your own function and let the Modern UI functions call them.</p> + + <p><a href="#customFunctions">More info...</a></p> + +</div> + + +<h2>5. Language files</h2> +<div> + + <p>Insert the Modern UI language files for the languages to want to include.</p> + + <pre>!insertmacro MUI_LANGUAGE "English"<br /></pre> + + <p>The Modern UI language files load the NLF language files, so you should not use LoadLanguageFile.</p> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_lp" src="images/closed.gif" onclick="toggle('trigger_lp', 'toggle_lp');" /> Language Selection Page</h3> + <div class="toggle" id="toggle_lp"> + + <p>See the MultiLanguage Page Settings above.</p> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_ls" src="images/closed.gif" onclick="toggle('trigger_ls', 'toggle_ls');" /> Language Selection Dialog</h3> + <div class="toggle" id="toggle_ls"> + + <p>If you want the installer to display a language selection dialog (have a look at the <a href="../../Examples/Modern%20UI/MultiLanguage.nsi">MultiLanguage.nsi</a> example), insert the MUI_LANGDLL_DISPLAY macro in the .onInit function:</p> + +<pre>Function .onInit +!insertmacro MUI_LANGDLL_DISPLAY +FunctionEnd</pre> + + <p>You can also use this macro for the uninstaller, in the un.onInit function.</p> + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_lss" src="images/closed.gif" onclick="toggle('trigger_lss', 'toggle_lss');" /> Language Selection Dialog Settings</h3> + <div class="toggle" id="toggle_lss"> + + <p>To remember to users preference, you ca define a registry key.<br /> + + <strong>Note:</strong> These defines should be set before inserting the installation page macro.</p> + + <p><span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_ROOT</strong></span> <span class="parameter">root</span><br /> + <span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_KEY</strong></span> <span class="parameter">key</span><br /> + <span class="purple"><strong>UMUI_LANGUAGE_REGISTRY_VALUENAME</strong></span> <span class="parameter">value_name</span><br /> + The registry key to store the language. The users preference will be remembered. You can also use it for the uninstaller to display the right language. This value will be automatically saved to the registry on install success. Don't forget to remove this key in the uninstaller.<br /> + UMUI_LANGUAGE_REGISTRY_ROOT and UMUI_LANGUAGE_REGISTRY_KEY defines are optional when <strong>UMUI_PARAMS_REGISTRY_ROOT</strong> and <strong>UMUI_PARAMS_REGISTRY_KEY</strong> are defined.<br /> + The MUI_LANGDLL_REGISTRY_ROOT, MUI_LANGDLL_REGISTRY_KEY and MUI_LANGDLL_REGISTRY_VALUENAME defines has been renamed in Ultra-Modern UI.</p> + + <p>For the uninstaller, insert the <strong>MUI_UNGETLANGUAGE</strong> macro in un.onInit to get the stored language preference:</p> + +<pre>Function un.onInit +!insertmacro MUI_UNGETLANGUAGE +FunctionEnd</pre> + + </div> + + + <h3><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_lsin" src="images/closed.gif" onclick="toggle('trigger_lsin', 'toggle_lsin');" /> Language Selection Dialog Interface Settings</h3> + <div class="toggle" id="toggle_lsin"> + + <p>To customize the language selection dialog interface, use these defines before inserting the MUI_LANGDLL_DISPLAY macro.</p> + + <p><strong>MUI_LANGDLL_WINDOWTITLE</strong> <span class="parameter">text</span><br /> + The window title of the language selection dialog.</p> + + <p><strong>MUI_LANGDLL_INFO</strong> <span class="parameter">text</span><br /> + The text to display on the language selection dialog.</p> + + <p><span class="purple"><strong>UMUI_LANGUAGE_ALWAYSSHOW</strong></span><br /> + Always show the language selection dialog, even if a language has been stored in the registry. The language stored in the registry will be selected by default.<br /> + The MUI_LANGDLL_ALWAYSSHOW define has been renamed in UltraModernUI.</p> + + </div> + + </div> + +</div> + + + +<h2>6. Reserve files</h2> +<div> + + <p>If you are using solid compression (by default, solid compression is enabled for BZIP2 and LZMA), it's important that files which are being extracted in init- or page functions function are located before other files in the data block, because this will make your installer faster.</p> + + <p>If there are File commands in your sections or functions above the init- or page functions, add the reserve file macros above your sections and functions.</p> + + <pre>ReserveFile "ioFile.ini" ;Your own InstallOptions INI files<br />!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ;InstallOptions plug-in<br />!insertmacro MUI_RESERVEFILE_LANGDLL ;Language selection dialog<br /></pre> + +</div> + + + +<h2>7. Your own sections and functions</h2> +<div> + + <p>Add your installer sections and functions. See the NSIS Users Manual for details.</p> + + <p>Information about section code and function code for Start Menu shortcut creation and language selection can be found above.</p> + +</div> + + + +<h2>8. Section descriptions</h2> +<div> + + <p>The descriptions of sections will be displayed on the components page, when the user hovers the mouse over a section. If you don't want to use descriptions, use the MUI_COMPONENTSPAGE_NODESC interface setting.</p> + + <p>To set a description for a section, you have to add an additional parameter to the Section commmand with a name for the define that should contain the section number.</p> + +<pre>Section "Section Name 1" Section1 + ... +SectionEnd</pre> + + <p>Use these macros to set the descriptions:</p> + <pre>LangString DESC_Section1 ${LANG_ENGLISH} "Description of section 1."<br />LangString DESC_Section2 ${LANG_ENGLISH} "Description of section 2."<br /><br />!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN<br /> !insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)<br /> !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)<br />!insertmacro MUI_FUNCTION_DESCRIPTION_END<br /></pre> + + <p>For the uninstaller, use the MUI_UNFUNCTION_DESCRIPTION_BEGIN and MUI_UNFUNCTIONS_DESCRIPTION_END macros.</p> + +</div> + +</div> + + +<h1><a id="customPages"></a>Custom pages</h1> +<div> + + <p>If you want add your custom pages to your installer, you should insert your own page commands between the page macros.</p> + +<pre>!insertmacro MUI_PAGE_WELCOME +Page custom FunctionName ;Custom page +!insertmacro MUI_PAGE_COMPONENTS + +;Uninstaller +!insertmacro MUI_UNPAGE_CONFIRM +UninstPage custom un.FunctionName ;Custom page +!insertmacro MUI_UNPAGE_INSTFILES</pre> + + + <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_io" src="images/closed.gif" onclick="toggle('trigger_io', 'toggle_io');" /> Using InstallOptions or InstallOptionsEx for custom pages</h2> + <div class="toggle" id="toggle_io"> + + <p>Ultra-Modern UI support natively two plug-ins to displays custom pages which you can create using INI files. InstallOptions and InstallOptionsEx:</p> + + <p>InstallOptions is the original plug-in used by Modern UI.</p> + + <p>InstallOptionsEx, writing by deguix and by SuperPat since version 2.4.5, is an expanded version of InstallOptions containing many new features, with size drawback.</p> + + <p>Have a look at the <a target="_blank" href="../InstallOptions/Readme.html">InstallOptions documentation</a> or the <a target="_blank" href="../InstallOptionsEx/Readme.html">InstallOptionsEx documentation</a> for info about creating InstallOptions(Ex) INI files.</p> + + <p>If you wan't to use InstallOptionEx Instead of the original IntallOption pluyg-in, you have to use the <strong>UMUI_USE_INSTALLOPTIONSEX</strong> define.</p> + + <p>InstallOptionEx is used in the Alternative Start Menu page to show Start Menu directories in a TreeView and in the Information pages to show RichText files. You can't use these features if InstallOptionEx is not activated.</p> + + + <p>Next, you have to extract your InstallOptions INI File in the .onInit function (un.onInit for the uninstaller) using the <strong>MUI_INSTALLOPTIONS_EXTRACT</strong> macro:</p> + +<pre>Function .onInit +!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioFile.ini" +FunctionEnd</pre> + + <p>If your INI File is located in another directory, use MUI_INSTALLOPTIONS_EXTRACT_AS. The second parameter is the filename for the temporary plug-ins directory, use this filename as parameter for the other InstallOptions macros.</p> + +<pre>Function .onInit +!insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "..\ioFile.ini" "ioFile.ini" +FunctionEnd</pre> + + <p>You can call InstallOptions in the function defined with the Page or UninstPage command using the MUI_INSTALLOPTIONS_DISPLAY macro. + This macro skin automatically your custom pages. It can also automatically convert, on the fly, your custom InstallOptions INI into an InstallOptionsEx INI.</p> + + <p>If the UMUI_(UN)PAGE_ABORT page is inserted, you need to use the <strong>UMUI_ABORT_IF_INSTALLFLAG_IS</strong> macro with the ${UMUI_CANCELLED} flag to hide your custom pages when user cancel the installation:</p> + <p>Use the <strong>MUI_HEADER_TEXT</strong> macro to set the text on the page header:</p> + +<pre>LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page Title" +LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "A subtitle" +Function FunctionName ;FunctionName defined with Page command + <span class="blue"> + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + </span> + !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioFile.ini" +FunctionEnd</pre> + + <p>For custom fonts and colors, macros for the initDialog and show functions of InstallOptions are also available. It can automatically convert, on the fly, your custom InstallOptions INI into an InstallOptionsEx INI. + Contrary to the MUI_INSTALLOPTIONS_DISPLAY macro, These one can't skin automatically your pages and you need to apply manually the text color and background color to all fields:</p> + +<pre>Var HWND +Var DLGITEM +Var FONT +LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page Title" +LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "A subtitle" +Function FunctionName ;FunctionName defined with Page command + <span class="blue"> + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + </span> + !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" + !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioFile.ini" + Pop $HWND ;HWND of dialog + <span class="blue"> + ;If you do not use MUIEx, apply the background color to the page: + ; Manually: + SetCtlColors $HWND "" "${MUI_BGCOLOR}" + ; or if you use a background image: + SetCtlColors $HWND "" "transparent" + ; Or using this macro: + !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $HWND + + ;You can apply the right text color and background color to all the Text, Password, + ; DateTime, IPAddress, ListBox, ComboBox, DropList, FileRequest and DirRequest fields + ; Manually: + GetDlgItem $0 $HWND 1200 + SetCtlColors $0 ${UMUI_TEXT_INPUTCOLOR} ${UMUI_BGINPUTCOLOR} + ; Or using this macro: + GetDlgItem $0 $HWND 1201 + !insertmacro UMUI_IOPAGEINPUTCTL_INIT $0 + + ;You need to apply the right text color and background color to all the Link fields + ; Manually: + GetDlgItem $0 $HWND 1202 + SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} ${MUI_BGCOLOR} + ; or if you use a background image: + SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} "transparent" + ; Or using this macro: + GetDlgItem $0 $HWND 1203 + !insertmacro UMUI_IOPAGECTLLIGHTTRANSPARENT_INIT $0 + + ;You need to apply the right text color and background color to all the + ; GroupBox fields + ; Manually: + GetDlgItem $0 $HWND 1202 + SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} ${MUI_BGCOLOR} + ; Or using this macro: + GetDlgItem $0 $HWND 1203 + !insertmacro UMUI_IOPAGECTLLIGHT_INIT $0 + + ;If you do not use MUIEx, you need to apply the right text color and background color + ; to all the label, checkbox, radiobutton fields + ; Manually: + GetDlgItem $0 $HWND 1204 + SetCtlColors $0 ${MUI_TEXTCOLOR} ${MUI_BGCOLOR} + ; or if you use a background image: + SetCtlColors $0 ${MUI_TEXTCOLOR} "transparent" + ; Or using this macro: + GetDlgItem $0 $HWND 1205 + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $0 + </span> + GetDlgItem $DLGITEM $HWND 1200 ;1200 + Field number - 1 + ;$DLGITEM contains the HWND of the first field + CreateFont $FONT "Tahoma" 10 700 SendMessage $DLGITEM ${WM_SETFONT} $FONT 0 + !insertmacro MUI_INSTALLOPTIONS_SHOW +FunctionEnd</pre> + + <p>If you need the InstallOptions return value (success, back, cancel, error), use the <strong>MUI_INSTALLOPTIONS_DISPLAY_RETURN</strong> or <strong>MUI_INSTALLOPTIONS_SHOW_RETURN</strong> macros. The return value will be added to the stack, so you can use the Pop command to get it.</p> + + <p>Use these macros to read or write INI file values:</p> + +<pre>!insertmacro MUI_INSTALLOPTIONS_READ $VAR "ioFile.ini" "Field #" "Name" +!insertmacro MUI_INSTALLOPTIONS_WRITE "ioFile.ini" "Field #" "Name" "Value"</pre> + + <p>For example, you can use the <strong>MUI_INSTALLOPTIONS_READ</strong> macro in a section to get the user input:</p> + + <pre>!insertmacro MUI_INSTALLOPTIONS_READ $R0 "ioFile.ini" "Field 1" "State"</pre> + + <p>For more details about InstallOptions, validation of user input etc., check the <a target="_blank" href="../InstallOptions/Readme.html">InstallOptions documentation</a> or the <a href="../InstallOptionsEx/Readme.html">InstallOptionsEx documentation</a>.</p> + + </div> + + + <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_nsDialogs" src="images/closed.gif" onclick="toggle('trigger_nsDialogs', 'toggle_nsDialogs');" /> Using nsDialogs for custom pages</h2> + <div class="toggle" id="toggle_nsDialogs"> + + <p>nsDialogs is the official plug-in used by Modern UI 2.</p> + + <p>Ultra-Modern UI version 2 still not use the nsDialogs plug-in to displays custom pages but InstallOptions(Ex), so usage of nsDialogs is not recommended because two concurrent plug-ins will be used in parallel due to custom UMUI pages.</p> + + <p>Have a look at the <a target="_blank" href="../nsDialogs/Readme.html">nsDialogs documentation</a> for info about creating nsDialogs custom pages.</p> + + <p>Contrary to InstallOptions(Ex), Ultra-Modern UI does not have macro to skin automatically your custom pages.</p> + + <p>If the UMUI_(UN)PAGE_ABORT page is inserted, you need to use the <strong>UMUI_ABORT_IF_INSTALLFLAG_IS</strong> macro with the ${UMUI_CANCELLED} flag to hide your custom pages when user cancel the installation:</p> + <p>Use the <strong>MUI_HEADER_TEXT</strong> macro to set the text on the page header:</p> + +<pre>!include nsDialogs.nsh +LangString TEXT_NSD_TITLE ${LANG_ENGLISH} "nsDialogs Page Title" +LangString TEXT_NSD_SUBTITLE ${LANG_ENGLISH} "A subtitle" +Function FunctionName ;FunctionName defined with Page command + <span class="blue"> + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + </span> + !insertmacro MUI_HEADER_TEXT "$(TEXT_NSD_TITLE)" "$(TEXT_NSD_SUBTITLE)" + nsDialogs::Create 1018 + Pop $HWND ;HWND of dialog + <span class="blue"> + ;If you do not use MUIEx, apply the background color to the page: + ; Manually: + SetCtlColors $HWND "" "${MUI_BGCOLOR}" + ; or if you use a background image: + SetCtlColors $HWND "" "transparent" + ; Or using this macro: + !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $HWND + </span> + ${NSD_CreateText} 0 35 100% 12u hello + Pop $0 + <span class="blue"> + ;You can apply the right text color and background color to all the Text, Password, + ; Number, ListBox, ComboBox, DropList, FileRequest and DirRequest input fields + ; Manually: + SetCtlColors $0 ${UMUI_TEXT_INPUTCOLOR} ${UMUI_BGINPUTCOLOR} + ; Or using this macro: + !insertmacro UMUI_IOPAGEINPUTCTL_INIT $0 + </span> + ${NSD_CreateLink} 10 120 100% 12 "http://ultramodernui.sourceforge.net/" + Pop $0 + ${NSD_OnClick} $0 onClickMyLink + <span class="blue"> + ;You need to apply the right text color and background color to all the Link fields + ; Manually: + SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} ${MUI_BGCOLOR} + ; or if you use a background image: + SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} "transparent" + ; Or using this macro: + !insertmacro UMUI_IOPAGECTLLIGHTTRANSPARENT_INIT $0 + </span> + ${NSD_CreateGroupBox} 0 40u 100% 40u "Group" + Pop $0 + <span class="blue"> + ;You need to apply the right text color and background color to all the + ; GroupBox fields + ; Manually: + SetCtlColors $0 ${UMUI_TEXT_LIGHTCOLOR} ${MUI_BGCOLOR} + ; Or using this macro: + !insertmacro UMUI_IOPAGECTLLIGHT_INIT $0 + </span> + ${NSD_CreateCheckbox} 0 -50 100% 8u Test + Pop $0 + GetFunctionAddress $HWND OnCheckbox + nsDialogs::OnClick $0 $HWND + <span class="blue"> + ;If you do not use MUIEx, you need to apply the right text color and background color + ; to all the label, checkbox, radiobutton fields + ; Manually: + SetCtlColors $0 ${MUI_TEXTCOLOR} ${MUI_BGCOLOR} + ; or if you use a background image: + SetCtlColors $0 ${MUI_TEXTCOLOR} "transparent" + ; Or using this macro: + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $0 + </span> + nsDialogs::Show +FunctionEnd</pre> + + <p>For more details about nsDialogs, validation of user input etc., check the <a target="_blank" href="../nsDialogs/Readme.html">nsDialogs documentation</a>.</p> + + </div> + + + <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_dlg" src="images/closed.gif" onclick="toggle('trigger_dlg', 'toggle_dlg');" /> Customize standard dialogs</h2> + <div class="toggle" id="toggle_dlg"> + + <p>To change elements on the dialogs, use customized UI resource files (see <a href="#interfaceConf">Interface Configuration</a>). + You can change your copies of the original files (in the Contrib\UIs folder) by using an application such as <a target="_blank" href="http://www.users.on.net/johnson/resourcehacker/">Resource Hacker</a>.</p> + + <p>The 'Please wait while Setup is loading...' text on the splash screen that is being displayed while the installer is starting (Verifying installer, Unpacking data) can be changed by using a customized UI resource file (MUI_UI setting) with a modified dialog 111.<br /> + The 'Verifying installer' and 'Unpacking data' texts are defined in the language header file of the NSIS exehead (Source\exehead\lang.h). To change them, you have to edit this file and recompile NSIS.</p> + + <p>To modify the Welcome dialog and Finish dialog, use a custom INI file (MUI_SPECIALINI setting) or write to the INI file in the custom page functions.</p> + + </div> + +</div> + + + +<h1><a id="customFunctions"></a>Customize Ultra-Modern UI Functions</h1> +<div> + + <p>If you want add your own code to functions inserted by the Ultra-Modern UI, such as the .onGUIInit function and the Page functions, create your own function and let the Ultra-Modern UI functions call them. Use the defines to define the name of your functions.</p> + <p>Contrary to Modern UI, Ultra-Modern UI may also define itself, if background skin is used, the .onGUIEnd and the un.onGUIEnd functions. Consequently, you may not be able to declare them in your script, and, in this case, you must used this customization.</p> + + <p>Example:</p> + +<pre>!define MUI_CUSTOMFUNCTION_GUIINIT myGUIInit +Function myGUIInit + ...your own code... +FunctionEnd + +<span class="blue">!define UMUI_CUSTOMFUNCTION_GUIEND myGUIEnd +Function myGUIEnd + ...your own code... +FunctionEnd</span> + +!define MUI_CUSTOMFUNCTION_UNGUIINIT myunGUIInit +Function myunGUIInit + ...your own code... +FunctionEnd + +<span class="blue">!define UMUI_CUSTOMFUNCTION_UNGUIEND myunGUIEnd +Function myunGUIEnd + ...your own code... +FunctionEnd</span></pre> + + + <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_cfg" src="images/closed.gif" onclick="toggle('trigger_cfg', 'toggle_cfg');" /> General Custom Functions</h2> + <div class="toggle" id="toggle_cfg"> + + <p>These defines should be set before inserting the language macros.</p> + + <p><strong>MUI_CUSTOMFUNCTION_GUIINIT</strong> <span class="parameter">function</span><br /> + <strong>MUI_CUSTOMFUNCTION_UNGUIINIT</strong> <span class="parameter">function</span><br /> + <span class="blue"><strong>UMUI_CUSTOMFUNCTION_GUIEND</strong></span> <span class="parameter">function</span><br /> + <span class="blue"><strong>UMUI_CUSTOMFUNCTION_UNGUIEND</strong></span> <span class="parameter">function</span><br /> + <strong>MUI_CUSTOMFUNCTION_ABORT</strong> <span class="parameter">function</span><br /> + <strong>MUI_CUSTOMFUNCTION_UNABORT</strong> <span class="parameter">function</span><br /> + <strong>MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION</strong> <span class="parameter">function</span><br /> + <strong>MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION</strong> <span class="parameter">function</span></p> + <p>Mouse over functions are only available when the description macros (MUI_FUNCTION_DESCRIPTION_BEGIN) are used. + When component page descriptions are not used, regular .onMouseOverSection and un.onMouseOverSection must be used.</p> + </div> + + + <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_cfpg" src="images/closed.gif" onclick="toggle('trigger_cfpg', 'toggle_cfpg');" /> Page Custom Functions</h2> + <div class="toggle" id="toggle_cfpg"> + + <p>These defines should be set before inserting a page macro.</p> + + <p><strong>MUI_PAGE_CUSTOMFUNCTION_PRE</strong> <span class="parameter">function</span><br /> + <strong>MUI_PAGE_CUSTOMFUNCTION_SHOW</strong> <span class="parameter">function</span><br /> + <strong>MUI_PAGE_CUSTOMFUNCTION_LEAVE</strong> <span class="parameter">function</span><br /> + <strong>MUI_PAGE_CUSTOMFUNCTION_DESTROYED</strong> <span class="parameter">function</span></p> + + <p><strong>Notes:</strong></p> + <ul> + <li>In the Pre function of the Welcome, the Finish and the Abort pages, you can write to the InstallOptions INI file of the page (ioSpecial.ini)</li> + <li>In the Show function of Welcome, Finish and StartMenu pages, $MUI_HWND contains the HWND of the inner dialog</li> + <li>The destroyed function is called after a external/plug-in page has been destroyed. (Currently only for the original StartMenu Page)</li> + </ul> + + </div> + + + <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_cfwf" src="images/closed.gif" onclick="toggle('trigger_cfwf', 'toggle_cfwf');" /> Welcome/Finish/Abort Pages Custom Functions</h2> + <div class="toggle" id="toggle_cfwf"> + + <p>This define should be inserted before a single Welcome, Finish or Abort page.</p> + + <p><strong>MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT</strong> <span class="parameter">function</span></p> + <p>This Init function is called before the InstallOptions INI file for the page is written, so you can use it to initialize any variables used in the page settings.</p> + + </div> + +</div> + + + +<h1><a id="examples"></a>Example Scripts</h1> +<div> + <p>These examples are in the NSISDir\Examples\UltraModernUI folder :</p> + <ul> + <li>Basic: <a target="_blank" href="../../Examples/UltraModernUI/Basic.nsi">Basic.nsi</a></li> + <li>BigTest: <a target="_blank" href="../../Examples/UltraModernUI/bigtest.nsi">bigtest.nsi</a></li> + <li>Header with Bitmap (MUIEx only): <a target="_blank" href="../../Examples/UltraModernUI/HeaderBitmapEx.nsi">HeaderBitmapEx.nsi</a></li> + <li>Header with Background image (MUIEx only): <a target="_blank" href="../../Examples/UltraModernUI/HeaderBGImageEx.nsi">HeaderBGImageEx.nsi</a></li> + <li>Background Skin: <a target="_blank" href="../../Examples/UltraModernUI/PageBG.nsi">PageBG.nsi</a></li> + <li>No left Image UI (UMUI only): <a target="_blank" href="../../Examples/UltraModernUI/NoLeftImage.nsi">NoLeftImage.nsi</a></li> + <li>Ultra-Modern Small UI (UMUI only): <a target="_blank" href="../../Examples/UltraModernUI/UltraModernSmall.nsi">UltraModernSmall.nsi</a></li> + <li>Multiple languages page: <a target="_blank" href="../../Examples/UltraModernUI/MultiLanguage.nsi">MultiLanguage.nsi</a></li> + <li>Maintenance page: <a target="_blank" href="../../Examples/UltraModernUI/Maintenance.nsi">Maintenance.nsi</a></li> + <li>Update page: <a target="_blank" href="../../Examples/UltraModernUI/Update.nsi">Update.nsi</a></li> + <li>Welcome/Finish/Abort page: <a target="_blank" href="../../Examples/UltraModernUI/WelcomeFinishAbort.nsi">WelcomeFinishAbort.nsi</a></li> + <li>Information page: <a target="_blank" href="../../Examples/UltraModernUI/Information.nsi">Information.nsi</a></li> + <li>Serial Number page: <a target="_blank" href="../../Examples/UltraModernUI/SerialNumber.nsi">SerialNumber.nsi</a></li> + <li>Setup Type page: <a target="_blank" href="../../Examples/UltraModernUI/SetupType.nsi">SetupType.nsi</a></li> + <li>Alternative Start Menu Folder page: <a target="_blank" href="../../Examples/UltraModernUI/StartMenu.nsi">StartMenu.nsi</a></li> + <li>Additional Tasks page: <a target="_blank" href="../../Examples/UltraModernUI/AdditionalTasks.nsi">AdditionalTasks.nsi</a></li> + <li>Confirm page: <a target="_blank" href="../../Examples/UltraModernUI/Confirm.nsi">Confirm.nsi</a></li> + <li>File&disk request page: <a target="_blank" href="../../Examples/UltraModernUI/FileDiskRequest.nsi">FileDiskRequest.nsi</a></li> + <li>Custom pages: <a target="_blank" href="../../Examples/UltraModernUI/InstallOptions.nsi">InstallOptions.nsi</a></li> + <li>Custom pages: <a target="_blank" href="../../Examples/UltraModernUI/nsDialogs.nsi">nsDialogs.nsi</a></li> + <li>NSIS menu with Ultra-Modern UI: <a target="_blank" href="../../Examples/UltraModernUI/NSISUMUIMenu.nsi">NSISUMUIMenu.nsi</a></li> + <li>Ultra-Modern UI installer: <a target="_blank" href="../../Examples/UltraModernUI/UltraModernUI.nsi">UltraModernUI.nsi</a></li> + <li>NSIS+Ultra-Modern UI installer: <a target="_blank" href="../../Examples/UltraModernUI/NSISUltraModernUI.nsi">NSISUltraModernUI.nsi</a></li> + </ul> +</div> + + + +<h1>Version History</h1> +<ul> + + <li><strong>Version 2.0 beta 6</strong> - December 26, 2019 + <ul> + <li>Support multi-word section define (By Tobias B. Besemer).</li> + <li>Minor Fixes.</li> + </ul> + </li> + + <li><strong>Version 2.0 beta 5</strong> - January 01, 2019 + <ul> + <li>Ultra-Modern UI is resynchronized under Modern UI version 1.81.</li> + <li>Consequently, The UMUI_TEXT_COLOR define was renamed in MUI_TEXTCOLOR.</li> + <li>UMUI now provide an extended NSIS Menu with links for UMUI and extra plugins documentations.</li> + <li>Consequently, UMUI installers no more create extra shortcuts on the start menu, but replace the original NSIS menu shortcuts.</li> + <li>Fixed bug when the Additional Tasks page is skipped, options were not affected...</li> + <li>Fixed bug when the License page text is unreadable with the Windows high contrast mode.</li> + <li>Minor Fixes.</li> + </ul> + </li> + + <li><strong>Version 2.0 beta 4</strong> - February 04, 2018 + <ul> + <li>Fixed UMUI_PAGE_SERIALNUMBER and UMUI_UNPAGE_SERIALNUMBER pages failed to compile.</li> + </ul> + </li> + + <li><strong>Version 2.0 beta 3</strong> - August 06, 2017 + <ul> + <li>New Bulgarian language files by Angel.</li> + <li>Added support HKCR32, HKCR64, HKCU32, HKCU64, HKLM32 and HKLM64 root keys for all the UMUI_*_REGISTRY_ROOT defines and for the UMUI_ADDPARAMTOSAVETOREGISTRYKEY macro with NSIS versions >= 3.02.</li> + <li>Added support for MUI_UNCONFIRMPAGE_VARIABLE from Modern UI 1.8.</li> + <li>Added support for MUI_PAGE_CUSTOMFUNCTION_DESTROYED for original StartMenu page from Modern UI 1.8.</li> + <li>Minor Fixes.</li> + </ul> + </li> + + <li><strong>Version 2.0 beta 2</strong> - December 25, 2016 + <ul> + <li>Updated the SkinnedControls plug-in to version 1.4 with support of the new NSIS plug-in API, optional unskinit method calls and ignore case parameters name support.</li> + <li>Fixed: Links on RichText information pages are now clickable;</li> + <li>Fixed: Missing MUI_PAGE_CUSTOMFUNCTION_PRE support missing for some Ultra-Modern pages (by Bodenseematze);</li> + <li>Fixed: Most of the time, command line parameters were not transferred to Exec calls (thanks Bodenseematze);</li> + <li>Several new and completed language files and other minor fixes by Bodenseematze:</li> + <ul> + <li>Completed: German language file;</li> + <li>New: Greek language file;</li> + <li>New: Italian language file;</li> + <li>New: Lithuanian language file;</li> + <li>New: Russian language file;</li> + <li>New: Slovenian language file;</li> + <li>New: Spanish language file;</li> + <li>New: Turkish language file;</li> + </ul> + <li>Minor optimizations.</li> + </ul> + </li> + + <li><strong>Version 2.0 beta 1</strong> - August 27, 2016 + <ul> + <li>Ultra-Modern UI is now fully compatible with NSIS version 3 x86 edition and now with the large string special build; + <li>The NSISArray plug-in was replaced by the new nsArray plug-in in version 1.1.1.7 who is faster and uses less memory;</li> + <li>Updated the InstallOptionsEx plug-in to version 2.4.5 beta 3 with full unicode support;</li> + <li>Updated the SkinnedControls plug-in to version 1.3 with unicode support, bug fixed, rewritten documentation, button image size no more limited to allow smoother gradients...;</li> + <li>The information page is now compatible with UTF16LE text files if compiled in Unicode;</li> + <li>The information page is now compatible with Unix style (LF only) line return text files;</li> + <li>The UMUI_CUSTOM_SKIN define is now deprecated, it is no more necessary and you can simply use the UMUI_SKIN define with your custom skin;</li> + <li>All button image was recreated with smoother gradient;</li> + <li>Reduced weight of skin images;</li> + <li>Updated and almost completed documentation;</li> + <li>Added an example for nsDialogs based custom page and documentation;</li> + <li>The default install directory for the NSIS + Ultra-Modern UI package is now C:\ProgramData on Windows Vista and upper to allow examples to be compiled without access rights errors;</li> + <li>A lot of bug fixes and optimizations;</li> + <li>Source code now on GitHub: <a target="_blank" href="https://github.com/SuperPat45/UltraModernUI">https://github.com/SuperPat45/UltraModernUI</a>.</li> + </ul> + </li> + + <li><strong>Version 1.00 beta 2</strong> - November 11, 2010 + <ul> + <li>Second public beta release after more than three development years.</li> + <li>Ultra-Modern UI use the new NSIS Doc directory used since the version 2.07 and UMUI.nsh is resynchronised under Modern UI version 1.8.</li> + <li>Ultra-Modern UI include also a second Unser Interface named Modern UIEx. Modern UIEx is an extended version of Modern UI but with the new UltraModern pages support.</li> + + <li>Ultra-Modern UI included henceforth three plug-ins that are supported natively : + <ul> + <li>The SkinnedControls plug-in. SkinnedScrollControls is based on the wansis plug-in of Saivert and can skin all buttons and scroll bars of your NSIS installer like the most recent installers as well as the scrollbars (only for Windows 2000/XP/2003/Vista/2008).</li> + <li>The fixed version of the InstallOptionEx plug-in. InstallOptionEx is writen by Diego Pedroso (deguix) and is an expanded version of InstallOptions containing many new features, with size drawback. This version, debugged by SuperPat, contain a lot of bug fixes necessary to the correct operation of some Ultra-Modern UI pages.</li> + <li>The NSISArray plug-in. This plug-in written by Afrow UK, allows the support of the array in NSIS. It comes with plenty of functions for managing your arrays. This plug-in is used with the AlternativeStartMenu and MultiLanguages Pages of Ultra-Modern UI.</li> + </ul> + </li> + + <li>All skins were remakes and twenty skins are now available. blue, blue2, SoftBlue, red, red2, SoftRed....</li> + + <li>New pages are available: + <ul> + <li>MultiLanguage Page that can be replace the MultiLanguage Plug-in.</li> + <li>Maintenance Page with Repair, Modify, Uninstall and Continue Setup options.</li> + <li>Update Page with Update, Uninstall and Continue Setup options.</li> + <li>Information Page for viewing text and RichText files.</li> + <li>SerialNumber Page.</li> + <li>Setup Type Page with Minimal, Standard, Complete and Custom options.</li> + <li>AlternativeStartMenu Page to replace the StartMenu Plug-in. It allow to use a TreeWiew instead of the ListView and can set the ShellVarContext</li> + <li>Additional Tasks page.</li> + <li>File and Disk Request Page.</li> + </ul> + </li> + + <li>Left Text, Left Time and LeftMessageBox functions are removed.</li> + <li>And a huge number of fixes and improvements.</li> + </ul> + </li> + + <li><strong>Version 1.00 beta 1</strong> - March 20, 2005 + <ul> + <li>First public beta release.</li> + <li>Several skins are available in several color (blue , green, red, purple, brown, gray, cleargreen) and a background skin named wxp. You can obviously create your own skins.</li> + <li>The Header Image defines are disables momentarily.</li> + <li>New pages are available: Abrot Page and Confim page with recapitulation of your setting , LeftMessageBox.</li> + <li>Draw Left Text and Left Time.</li> + </ul> + </li> + + +</ul> + + +<h1>Credits</h1> +<div> + + <p>Made by SuperPat<br /> + - Based on Modern UI 1.81 Copyright 2002-2019 Joost Verburg.<br /> + - And inspired of the ExperienceUI of dandaman32.</p> + + <p>Skins by SuperPat<br /> + Ultra-Modern Icons and WXP BackGround skin is taken again on ExperineceUI of dandaman32.</p> + +</div> + + + +<h1>Help</h1> +<div> + + <p>Please post questions at the <a target="_blank" href="http://forums.winamp.com/forumdisplay.php?forumid=65">Official NSIS Forum</a>.</p> + +</div> + + + +<h1>License</h1> +<div> + + <p>The zlib/libpng license applies to Ultra-Modern UI.</p> + + + <h2><img class="trigger" title="Open/Close section" alt="[+]" id="trigger_lic" src="images/closed.gif" onclick="toggle('trigger_lic', 'toggle_lic');" /> License Terms</h2> + <div class="toggle" id="toggle_lic"> + + <pre>Copyright © 2005-2019 SuperPat</pre> + + <pre>This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software.</pre> + + <pre>Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute +it freely, subject to the following restrictions:</pre> + + <pre>1. The origin of this software must not be misrepresented; + you must not claim that you wrote the original software. + If you use this software in a product, an acknowledgment in the + product documentation would be appreciated but is not required. +2. Altered versions must be plainly marked as such, + and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any distribution.</pre> + + </div> + +</div> + +</div> + + <div class="footer">© 2005-2019 SuperPat</div> + + </div> + +</body> </html> \ No newline at end of file diff --git a/Examples/UltraModernUI/AdditionalTasks.nsi b/Examples/UltraModernUI/AdditionalTasks.nsi index bd4241b..b98fb1b 100644 --- a/Examples/UltraModernUI/AdditionalTasks.nsi +++ b/Examples/UltraModernUI/AdditionalTasks.nsi @@ -1,234 +1,237 @@ -;NSIS Ultra Modern User Interface -;Additional Tasks Page Example Script -;Written by SuperPat - - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "AdditionalTasks.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;UltraModern Include - -!include "UMUI.nsh" - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "green" - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - - !define UMUI_PARAMS_REGISTRY_ROOT HKCU - !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" - - !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable - - !define UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME "Tasks" - -;-------------------------------- -;Pages - - Var STARTMENU_FOLDER - - - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - - !insertmacro MUI_PAGE_COMPONENTS - - !insertmacro MUI_PAGE_DIRECTORY - - !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" - !insertmacro UMUI_PAGE_ALTERNATIVESTARTMENU "Application" $STARTMENU_FOLDER - - !insertmacro UMUI_PAGE_ADDITIONALTASKS addtasks_function - - !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function - !insertmacro UMUI_PAGE_CONFIRM - - !insertmacro MUI_PAGE_INSTFILES - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - - -Function addtasks_function - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK DESKTOP 1 "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK QUICK_LAUNCH 1 "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_QUICK_LAUNCH_ICON)" - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_EMPTYLINE - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_ADDITIONALTASKS_ADVANCED_PARAMETERS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK STARTUP 1 "$(UMUI_TEXT_ADDITIONALTASKS_LAUNCH_PROGRAM_AT_WINDOWS_STARTUP)" - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_ADDITIONALTASKS_FILE_ASSOCIATION)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK ASSOCIATE 0 "$(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH) .UMUI $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH_END)" - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LINE - - ; only if a directory has been selected in the STARTMENU page - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" - UserInfo::GetAccountType - Pop $R0 - StrCmp $R0 "Guest" 0 notLimited - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - Goto endShellVarContext - notLimited: - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 0 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - endShellVarContext: - !insertmacro MUI_STARTMENU_WRITE_END - -FunctionEnd - -Function confirm_function - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - ;Only if StartMenu Folder is selected - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_START_MENU_FOLDER)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $STARTMENU_FOLDER" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - !insertmacro MUI_STARTMENU_WRITE_END - - ;Only if one at least of the six checks is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP|QUICK_LAUNCH|STARTUP|ASSOCIATE|ALL|CURRENT - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_ADDITIONALTASKS_TITLE):" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;Only if one at least of additional icon check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP|QUICK_LAUNCH - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;Only if the first check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;Only if the second check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED QUICK_LAUNCH - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_QUICK_LAUNCH_ICON)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;Only if start programm at windows startup check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED STARTUP - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_ADVANCED_PARAMETERS)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_LAUNCH_PROGRAM_AT_WINDOWS_STARTUP)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;Only if file association check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ASSOCIATE - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_FILE_ASSOCIATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH) .UMUI $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH_END)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if a directory has been selected in the STARTMENU page - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL|CURRENT - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if for all user radio is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if for current user is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - -FunctionEnd - - - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - !insertmacro MUI_LANGUAGE "French" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - - ;Only if the first check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP - - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - - ;Only if the second check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED QUICK_LAUNCH - - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - - ;Only if the third check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED STARTUP - - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - - - ;Only if the file association is checked - ; For an exemple, see this page: http://nsis.sourceforge.net/FileAssoc - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ASSOCIATE - - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - - - ;set shellvar context - ; only if all user is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL - SetShellVarContext all - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if current user is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT - SetShellVarContext current - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - - ;After set shell var context, Only if StartMenu Folder is selected - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - ;create start menu and desktop shortsuts - !insertmacro MUI_STARTMENU_WRITE_END - - -SectionEnd - -Section Uninstall - - Delete "$INSTDIR\Uninstall.exe" - RMDir "$INSTDIR" - - DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - -SectionEnd - - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - LangString DESC_SecDummy ${LANG_FRENCH} "Une section de test." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - +;NSIS Ultra Modern User Interface +;Additional Tasks Page Example Script +;Written by SuperPat + + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "AdditionalTasks.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;UltraModern Include + +!include "UMUI.nsh" + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "green" + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + + !define UMUI_PARAMS_REGISTRY_ROOT HKCU + !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" + + !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable + + !define UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME "Tasks" + +;-------------------------------- +;Pages + + Var STARTMENU_FOLDER + + + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + + !insertmacro MUI_PAGE_COMPONENTS + + !insertmacro MUI_PAGE_DIRECTORY + + !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" + !insertmacro UMUI_PAGE_ALTERNATIVESTARTMENU "Application" $STARTMENU_FOLDER + + !insertmacro UMUI_PAGE_ADDITIONALTASKS addtasks_function + + !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function + !insertmacro UMUI_PAGE_CONFIRM + + !insertmacro MUI_PAGE_INSTFILES + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + + +Function addtasks_function + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK DESKTOP 1 "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK QUICK_LAUNCH 1 "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_QUICK_LAUNCH_ICON)" + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_EMPTYLINE + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_ADDITIONALTASKS_ADVANCED_PARAMETERS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK STARTUP 1 "$(UMUI_TEXT_ADDITIONALTASKS_LAUNCH_PROGRAM_AT_WINDOWS_STARTUP)" + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_ADDITIONALTASKS_FILE_ASSOCIATION)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK ASSOCIATE 0 "$(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH) .UMUI $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH_END)" + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LINE + + ; only if a directory has been selected in the STARTMENU page + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" + UserInfo::GetAccountType + Pop $R0 + StrCmp $R0 "Guest" 0 notLimited + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + Goto endShellVarContext + notLimited: + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 0 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + endShellVarContext: + !insertmacro MUI_STARTMENU_WRITE_END + +FunctionEnd + +Function confirm_function + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + ;Only if StartMenu Folder is selected + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_START_MENU_FOLDER)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $STARTMENU_FOLDER" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + !insertmacro MUI_STARTMENU_WRITE_END + + ;Only if one at least of the six checks is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP|QUICK_LAUNCH|STARTUP|ASSOCIATE|ALL|CURRENT + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_ADDITIONALTASKS_TITLE):" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;Only if one at least of additional icon check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP|QUICK_LAUNCH + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;Only if the first check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;Only if the second check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED QUICK_LAUNCH + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_QUICK_LAUNCH_ICON)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;Only if start programm at windows startup check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED STARTUP + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_ADVANCED_PARAMETERS)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_LAUNCH_PROGRAM_AT_WINDOWS_STARTUP)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;Only if file association check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ASSOCIATE + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_FILE_ASSOCIATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH) .UMUI $(UMUI_TEXT_ADDITIONALTASKS_ASSOCIATE_WITH_END)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if a directory has been selected in the STARTMENU page + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL|CURRENT + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if for all user radio is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if for current user is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + +FunctionEnd + + + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + !insertmacro MUI_LANGUAGE "French" + + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + + ;Only if the first check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP + + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + + ;Only if the second check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED QUICK_LAUNCH + + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + + ;Only if the third check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED STARTUP + + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + + + ;Only if the file association is checked + ; For an exemple, see this page: http://nsis.sourceforge.net/FileAssoc + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ASSOCIATE + + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + + + ;set shellvar context + ; only if all user is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL + SetShellVarContext all + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if current user is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT + SetShellVarContext current + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + + ;After set shell var context, Only if StartMenu Folder is selected + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + ;create start menu and desktop shortsuts + !insertmacro MUI_STARTMENU_WRITE_END + + +SectionEnd + +Section Uninstall + + Delete "$INSTDIR\Uninstall.exe" + RMDir "$INSTDIR" + + DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + +SectionEnd + + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + LangString DESC_SecDummy ${LANG_FRENCH} "Une section de test." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + diff --git a/Examples/UltraModernUI/Basic.nsi b/Examples/UltraModernUI/Basic.nsi index c43126d..205b67c 100644 --- a/Examples/UltraModernUI/Basic.nsi +++ b/Examples/UltraModernUI/Basic.nsi @@ -1,97 +1,100 @@ -;NSIS Ultra Modern User Interface -;Basic Example Script -;Originally Written by Joost Verburg - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "Basic.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\UltraModernUI Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include UltraModernUI - - !include "UMUI.nsh" -; !include "MUIEx.nsh" - -;-------------------------------- -;Interface Settings - -; !define UMUI_SKIN "SoftRed" - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Store installation folder - WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - - ;Sleep 5000 - -SectionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey /ifempty HKCU "Software\Modern UI Test" - +;NSIS Ultra Modern User Interface +;Basic Example Script +;Originally Written by Joost Verburg + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "Basic.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\UltraModernUI Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include UltraModernUI + + !include "UMUI.nsh" +; !include "MUIEx.nsh" + +;-------------------------------- +;Interface Settings + +; !define UMUI_SKIN "SoftRed" + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Store installation folder + WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + + ;Sleep 5000 + +SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey /ifempty HKCU "Software\Modern UI Test" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/Confirm.nsi b/Examples/UltraModernUI/Confirm.nsi index f0cd563..3cd3f52 100644 --- a/Examples/UltraModernUI/Confirm.nsi +++ b/Examples/UltraModernUI/Confirm.nsi @@ -1,132 +1,135 @@ -;NSIS Ultra Modern User Interface -;Confirmation Page Example Script -;Written SuperPat - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Confirm" - OutFile "Confirm.exe" - SetCompressor /FINAL lzma - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\UltraModernUI Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;UltraModern Include - -!include "UMUI.nsh" -!include "WinMessages.nsh" - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "red" - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - -;-------------------------------- -;Pages - - Var STARTMENU_FOLDER - - - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" -!insertmacro MUI_PAGE_COMPONENTS -!insertmacro MUI_PAGE_DIRECTORY - !define UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT - !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" - !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\UltraModernUI Test" - !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" -!insertmacro UMUI_PAGE_ALTERNATIVESTARTMENU "Application" $STARTMENU_FOLDER - - !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function -!insertmacro UMUI_PAGE_CONFIRM - -!insertmacro MUI_PAGE_INSTFILES - -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro UMUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES - - -Function confirm_function - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - ;Only if StartMenu Folder is selected - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_START_MENU_FOLDER)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $STARTMENU_FOLDER" - - ;ShellVarContext - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" - !insertmacro UMUI_GETSHELLVARCONTEXT - Pop $1 - StrCmp $1 "all" 0 current - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - Goto endsvc - current: - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - endsvc: - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - !insertmacro MUI_STARTMENU_WRITE_END -FunctionEnd - - - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - !insertmacro MUI_LANGUAGE "French" - - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - sleep 1000 - ;Store installation folder - WriteRegStr HKCU "Software\UltraModernUI Test" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -Section Uninstall - - DeleteRegKey HKCU "Software\UltraModernUI Test" - - Delete "$INSTDIR\Uninstall.exe" - RMDir "$INSTDIR" - Sleep 1000 -SectionEnd - - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test Section." - LangString DESC_SecDummy ${LANG_FRENCH} "Une section de test." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END +;NSIS Ultra Modern User Interface +;Confirmation Page Example Script +;Written SuperPat + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Confirm" + OutFile "Confirm.exe" + SetCompressor /FINAL lzma + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\UltraModernUI Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;UltraModern Include + +!include "UMUI.nsh" +!include "WinMessages.nsh" + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "red" + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + +;-------------------------------- +;Pages + + Var STARTMENU_FOLDER + + + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" +!insertmacro MUI_PAGE_COMPONENTS +!insertmacro MUI_PAGE_DIRECTORY + !define UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT + !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" + !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\UltraModernUI Test" + !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" +!insertmacro UMUI_PAGE_ALTERNATIVESTARTMENU "Application" $STARTMENU_FOLDER + + !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function +!insertmacro UMUI_PAGE_CONFIRM + +!insertmacro MUI_PAGE_INSTFILES + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro UMUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + + +Function confirm_function + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + ;Only if StartMenu Folder is selected + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_START_MENU_FOLDER)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $STARTMENU_FOLDER" + + ;ShellVarContext + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" + !insertmacro UMUI_GETSHELLVARCONTEXT + Pop $1 + StrCmp $1 "all" 0 current + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + Goto endsvc + current: + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + endsvc: + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + !insertmacro MUI_STARTMENU_WRITE_END +FunctionEnd + + + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + !insertmacro MUI_LANGUAGE "French" + + + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + sleep 1000 + ;Store installation folder + WriteRegStr HKCU "Software\UltraModernUI Test" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +Section Uninstall + + DeleteRegKey HKCU "Software\UltraModernUI Test" + + Delete "$INSTDIR\Uninstall.exe" + RMDir "$INSTDIR" + Sleep 1000 +SectionEnd + + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test Section." + LangString DESC_SecDummy ${LANG_FRENCH} "Une section de test." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END diff --git a/Examples/UltraModernUI/FileDiskRequest.nsi b/Examples/UltraModernUI/FileDiskRequest.nsi index 946a6c1..de1cc3e 100644 --- a/Examples/UltraModernUI/FileDiskRequest.nsi +++ b/Examples/UltraModernUI/FileDiskRequest.nsi @@ -1,83 +1,86 @@ -;NSIS Ultra Modern User Interface -;FileDiskRequest Page Example Script -;Written by SuperPat - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "FileDiskRequest.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\UltraModernUI Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include UltraModernUI - - !include "UMUI.nsh" -; !include "MUIEx.nsh" - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "blue" - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - !insertmacro MUI_PAGE_DIRECTORY - - var dir - !define UMUI_FILEDISKREQUESTPAGE_VARIABLE dir - !define UMUI_FILEDISKREQUESTPAGE_FILE_NAME "FileDiskRequest.exe" ; Want to seatch a file. - !insertmacro UMUI_PAGE_FILEDISKREQUEST - - var dir2 - !define UMUI_FILEDISKREQUESTPAGE_VARIABLE dir2 - !define UMUI_FILEDISKREQUESTPAGE_FILE_NAME "FileDiskRequest.exe" - !define UMUI_FILEDISKREQUESTPAGE_DISK_NAME "CD 1" ; Want to seatch the "CD 1" disk containing the this file - !insertmacro UMUI_PAGE_FILEDISKREQUEST - - !insertmacro MUI_PAGE_INSTFILES - - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - MessageBox MB_OK "Your file was found in $dir" - MessageBox MB_OK "The CD 1 is in $dir2" - -SectionEnd - - -; Set the defaut directory -Function .onInit - - StrCpy $dir $EXEDIR - StrCpy $dir2 $EXEDIR - +;NSIS Ultra Modern User Interface +;FileDiskRequest Page Example Script +;Written by SuperPat + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "FileDiskRequest.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\UltraModernUI Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include UltraModernUI + + !include "UMUI.nsh" +; !include "MUIEx.nsh" + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "blue" + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + !insertmacro MUI_PAGE_DIRECTORY + + var dir + !define UMUI_FILEDISKREQUESTPAGE_VARIABLE dir + !define UMUI_FILEDISKREQUESTPAGE_FILE_NAME "FileDiskRequest.exe" ; Want to seatch a file. + !insertmacro UMUI_PAGE_FILEDISKREQUEST + + var dir2 + !define UMUI_FILEDISKREQUESTPAGE_VARIABLE dir2 + !define UMUI_FILEDISKREQUESTPAGE_FILE_NAME "FileDiskRequest.exe" + !define UMUI_FILEDISKREQUESTPAGE_DISK_NAME "CD 1" ; Want to seatch the "CD 1" disk containing the this file + !insertmacro UMUI_PAGE_FILEDISKREQUEST + + !insertmacro MUI_PAGE_INSTFILES + + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + MessageBox MB_OK "Your file was found in $dir" + MessageBox MB_OK "The CD 1 is in $dir2" + +SectionEnd + + +; Set the defaut directory +Function .onInit + + StrCpy $dir $EXEDIR + StrCpy $dir2 $EXEDIR + FunctionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/HeaderBGImageEx.nsi b/Examples/UltraModernUI/HeaderBGImageEx.nsi index 99ed1a4..98ffa72 100644 --- a/Examples/UltraModernUI/HeaderBGImageEx.nsi +++ b/Examples/UltraModernUI/HeaderBGImageEx.nsi @@ -1,119 +1,125 @@ -;NSIS Modern User Interface Extended -;Header Background Image Example Script -;Written by SuperPat - -;-------------------------------- -;General - - ;Name and file - Name "Modern UI Extended Test" - OutFile "HeaderBGImage.exe" - - ;Default installation folder - InstallDir "$DESKTOP\Modern UI Extended Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\Modern UI Extended Test" "" - -;-------------------------------- -;Interface Configuration - - !define UMUI_HEADERBGIMAGE - ; If you want to change the header image -; !define MUI_HEADERBGIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\HeaderBG.bmp" - - !define MUI_TEXTCOLOR FFFFFF - !define MUI_BGCOLOR 6783cf - !define UMUI_HEADERTEXT_COLOR 003366 - - ; If you want to change the WelcomeFinishAbort image -; !define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" -; !define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" - - ; text and background colors for all Input,List,Treeview (except for licencepage and instfile page) - !define UMUI_TEXT_INPUTCOLOR 003366 - !define UMUI_BGINPUTCOLOR F0F0FF - - !define MUI_LICENSEPAGE_BGCOLOR ${UMUI_BGINPUTCOLOR} - !define MUI_INSTFILESPAGE_COLORS "${UMUI_TEXT_INPUTCOLOR} ${UMUI_BGINPUTCOLOR}" - - ; Use skinned buttons - !define UMUI_DISABLED_BUTTON_TEXT_COLOR 666666 - !define UMUI_SELECTED_BUTTON_TEXT_COLOR 000066 - !define UMUI_BUTTON_TEXT_COLOR 003366 - !define UMUI_BUTTONIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp" - !define UMUI_UNBUTTONIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp" - - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - -;-------------------------------- -;Include Modern UI - - !include "MUIEx.nsh" - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_PAGE_FINISH - !insertmacro UMUI_PAGE_ABORT - - !insertmacro MUI_UNPAGE_WELCOME - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - !insertmacro MUI_UNPAGE_FINISH - !insertmacro UMUI_UNPAGE_ABORT - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Store installation folder - WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey /ifempty HKCU "Software\Modern UI Test" - +;NSIS Modern User Interface Extended +;Header Background Image Example Script +;Written by SuperPat + +;-------------------------------- +;General + + ;Name and file + Name "Modern UI Extended Test" + OutFile "HeaderBGImage.exe" + + ;Default installation folder + InstallDir "$DESKTOP\Modern UI Extended Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\Modern UI Extended Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Interface Configuration + + !define UMUI_HEADERBGIMAGE + ; If you want to change the header image +; !define MUI_HEADERBGIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\UltraModernUI\HeaderBG.bmp" + + !define MUI_TEXTCOLOR FFFFFF + !define MUI_BGCOLOR 6783cf + !define UMUI_HEADERTEXT_COLOR 003366 + + ; If you want to change the WelcomeFinishAbort image +; !define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" +; !define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" + + ; text and background colors for all Input,List,Treeview (except for licencepage and instfile page) + !define UMUI_TEXT_INPUTCOLOR 003366 + !define UMUI_BGINPUTCOLOR F0F0FF + + !define MUI_LICENSEPAGE_BGCOLOR ${UMUI_BGINPUTCOLOR} + !define MUI_INSTFILESPAGE_COLORS "${UMUI_TEXT_INPUTCOLOR} ${UMUI_BGINPUTCOLOR}" + + ; Use skinned buttons + !define UMUI_DISABLED_BUTTON_TEXT_COLOR 666666 + !define UMUI_SELECTED_BUTTON_TEXT_COLOR 000066 + !define UMUI_BUTTON_TEXT_COLOR 003366 + !define UMUI_BUTTONIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp" + !define UMUI_UNBUTTONIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp" + + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + +;-------------------------------- +;Include Modern UI + + !include "MUIEx.nsh" + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_WELCOME + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !insertmacro MUI_PAGE_FINISH + !insertmacro UMUI_PAGE_ABORT + + !insertmacro MUI_UNPAGE_WELCOME + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + !insertmacro MUI_UNPAGE_FINISH + !insertmacro UMUI_UNPAGE_ABORT + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Store installation folder + WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey /ifempty HKCU "Software\Modern UI Test" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/HeaderBitmapEx.nsi b/Examples/UltraModernUI/HeaderBitmapEx.nsi index 2885376..51ca2ce 100644 --- a/Examples/UltraModernUI/HeaderBitmapEx.nsi +++ b/Examples/UltraModernUI/HeaderBitmapEx.nsi @@ -1,92 +1,95 @@ -;NSIS Modern User Interface Extended -;Header Image Bitmap Example Script -;Originally Written by Joost Verburg - -;-------------------------------- -;Include Modern UI - - !include "MUIEx.nsh" - -;-------------------------------- -;General - - ;Name and file - Name "ModernUIEx Test" - OutFile "HeaderBitmap.exe" - - ;Default installation folder - InstallDir "$DESKTOP\Modern UI Ex Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\Modern UI Ex Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Interface Configuration - - !define MUI_HEADERIMAGE - !define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ; optional - !define MUI_ABORTWARNING - - !define UMUI_BUTTONIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp" - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Store installation folder - WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey /ifempty HKCU "Software\Modern UI Test" - +;NSIS Modern User Interface Extended +;Header Image Bitmap Example Script +;Originally Written by Joost Verburg + +;-------------------------------- +;Include Modern UI + + !include "MUIEx.nsh" + +;-------------------------------- +;General + + ;Name and file + Name "ModernUIEx Test" + OutFile "HeaderBitmap.exe" + + ;Default installation folder + InstallDir "$DESKTOP\Modern UI Ex Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\Modern UI Ex Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Interface Configuration + + !define MUI_HEADERIMAGE + !define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ; optional + !define MUI_ABORTWARNING + + !define UMUI_BUTTONIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Button.bmp" + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Store installation folder + WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey /ifempty HKCU "Software\Modern UI Test" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/Information.nsi b/Examples/UltraModernUI/Information.nsi index 5de2546..0e9489d 100644 --- a/Examples/UltraModernUI/Information.nsi +++ b/Examples/UltraModernUI/Information.nsi @@ -1,133 +1,136 @@ -;NSIS Ultra Modern User Interface -;Information Page Example Script -;Written by SuperPat - -;-------------------------------- -;General - - ;Generate unicode installer - Unicode True - - ;Name and file - Name "UltraModernUI Test" - OutFile "Information.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\UltraModernUI Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include Modern UI - - !include "UMUI.nsh" - -;-------------------------------- -;Interface Settings - - !define MUI_ABORTWARNING - - !define UMUI_USE_INSTALLOPTIONSEX - - !define UMUI_SKIN "SoftBrown" - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - -;-------------------------------- -;Pages - - !insertmacro UMUI_PAGE_MULTILANGUAGE - - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - -; A first multi-language TXT information page: -; The * will be replaced by the language code -; "information1033.txt" for english "information1036.txt" for french. -; Optional "information.txt" for untranslated language files (if "informationXXXX.txt" not found) - !insertmacro UMUI_PAGE_INFORMATION "information*.txt" - -; Another english only RTF information page (InstallOptionsEx only) - !define UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT - !insertmacro UMUI_PAGE_INFORMATION "${NSISDIR}\Docs\UltraModernUI\ReadMe.rtf" - - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -;-------------------------------- -;Languages - -; first language is the default language if the system language is not in this list - !insertmacro MUI_LANGUAGE "English" - -; Other UMUI translated languages - !insertmacro MUI_LANGUAGE "Bulgarian" - !insertmacro MUI_LANGUAGE "Czech" - !insertmacro MUI_LANGUAGE "French" - !insertmacro MUI_LANGUAGE "German" - !insertmacro MUI_LANGUAGE "Greek" - !insertmacro MUI_LANGUAGE "Hungarian" - !insertmacro MUI_LANGUAGE "Italian" - !insertmacro MUI_LANGUAGE "Japanese" - !insertmacro MUI_LANGUAGE "Lithuanian" - !insertmacro MUI_LANGUAGE "Polish" - !insertmacro MUI_LANGUAGE "Russian" - !insertmacro MUI_LANGUAGE "Slovenian" - !insertmacro MUI_LANGUAGE "Spanish" - !insertmacro MUI_LANGUAGE "Turkish" -; Other UMUI partially translated language - !insertmacro MUI_LANGUAGE "PortugueseBR" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Store installation folder - WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey /ifempty HKCU "Software\Modern UI Test" - -SectionEnd - - -;-------------------------------- -;Installer Functions - -Function .onInit - !insertmacro UMUI_MULTILANG_GET -FunctionEnd - -;-------------------------------- -;Uninstaller Functions - -Function un.onInit - !insertmacro UMUI_MULTILANG_GET +;NSIS Ultra Modern User Interface +;Information Page Example Script +;Written by SuperPat + +;-------------------------------- +;General + + ;Generate unicode installer + Unicode True + + ;Name and file + Name "UltraModernUI Test" + OutFile "Information.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\UltraModernUI Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include Modern UI + + !include "UMUI.nsh" + +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + + !define UMUI_USE_INSTALLOPTIONSEX + + !define UMUI_SKIN "SoftBrown" + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + +;-------------------------------- +;Pages + + !insertmacro UMUI_PAGE_MULTILANGUAGE + + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + +; A first multi-language TXT information page: +; The * will be replaced by the language code +; "information1033.txt" for english "information1036.txt" for french. +; Optional "information.txt" for untranslated language files (if "informationXXXX.txt" not found) + !insertmacro UMUI_PAGE_INFORMATION "information*.txt" + +; Another english only RTF information page (InstallOptionsEx only) + !define UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT + !insertmacro UMUI_PAGE_INFORMATION "${NSISDIR}\Docs\UltraModernUI\ReadMe.rtf" + + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + +; first language is the default language if the system language is not in this list + !insertmacro MUI_LANGUAGE "English" + +; Other UMUI translated languages + !insertmacro MUI_LANGUAGE "Bulgarian" + !insertmacro MUI_LANGUAGE "Czech" + !insertmacro MUI_LANGUAGE "French" + !insertmacro MUI_LANGUAGE "German" + !insertmacro MUI_LANGUAGE "Greek" + !insertmacro MUI_LANGUAGE "Hungarian" + !insertmacro MUI_LANGUAGE "Italian" + !insertmacro MUI_LANGUAGE "Japanese" + !insertmacro MUI_LANGUAGE "Lithuanian" + !insertmacro MUI_LANGUAGE "Polish" + !insertmacro MUI_LANGUAGE "Russian" + !insertmacro MUI_LANGUAGE "Slovenian" + !insertmacro MUI_LANGUAGE "Spanish" + !insertmacro MUI_LANGUAGE "Turkish" +; Other UMUI partially translated language + !insertmacro MUI_LANGUAGE "PortugueseBR" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Store installation folder + WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey /ifempty HKCU "Software\Modern UI Test" + +SectionEnd + + +;-------------------------------- +;Installer Functions + +Function .onInit + !insertmacro UMUI_MULTILANG_GET +FunctionEnd + +;-------------------------------- +;Uninstaller Functions + +Function un.onInit + !insertmacro UMUI_MULTILANG_GET FunctionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/InstallOptions.nsi b/Examples/UltraModernUI/InstallOptions.nsi index 09609c8..8372902 100644 --- a/Examples/UltraModernUI/InstallOptions.nsi +++ b/Examples/UltraModernUI/InstallOptions.nsi @@ -1,157 +1,160 @@ -;NSIS Ultra Modern User Interface -;InstallOptionsEx and InstallOptions compatibility mode Example Script -;Written by SyperPat - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "InstallOptions.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\UltraModernUI Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Interface Settings - - !define MUI_ABORTWARNING - - ;Active InstallOptionsEx - !define UMUI_USE_INSTALLOPTIONSEX - - !define UMUI_SKIN "blue" - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - - -;--------------------- -;Include UltraModernUI - - !include "UMUI.nsh" - - -;-------------------------------- -;Reserve Files - - ;These files should be inserted before other files in the data block - ;Keep these lines before any File command - ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA) - - ReserveFile "ioA.ini" - ReserveFile "ioB.ini" - !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS - - -;-------------------------------- -;Pages - - !define MUI_LICENSEPAGE_TEXT_TOP "All the action takes place on the next page..." - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - Page custom CustomPageA - !insertmacro MUI_PAGE_COMPONENTS - Page custom CustomPageB - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - !insertmacro UMUI_PAGE_ABORT - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - -SectionEnd - -;-------------------------------- -;Installer Functions - -Function .onInit - - ;Extract InstallOptions INI files - !insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioA.ini" - !insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioB.ini" - -FunctionEnd - -LangString TEXT_IO_TITLE ${LANG_ENGLISH} "InstallOptions page" -LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "This is a page created using the InstallOptions plug-in." - -Function CustomPageA - - ; Does not show page if setup cancelled, required only if UMUI_PAGE_ABORT inserted - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - - !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" - !insertmacro INSTALLOPTIONS_DISPLAY "ioA.ini" - -FunctionEnd - -Var HWND -Function CustomPageB - - ; Does not show page if setup cancelled, required only if UMUI_PAGE_ABORT inserted - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - - !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" - - !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioB.ini" - Pop $HWND ;HWND of dialog - - !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $HWND ; set page background color - - GetDlgItem $0 $HWND 1200 -; !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $0 ; set label colors - SetCtlColors $0 00FF00 "transparent" - - GetDlgItem $0 $HWND 1201 - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $0 ; set checkbox colors - - GetDlgItem $0 $HWND 1202 - !insertmacro UMUI_IOPAGEINPUTCTL_INIT $0 ; set text colors - - !insertmacro MUI_INSTALLOPTIONS_SHOW - -FunctionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey /ifempty HKCU "Software\UltraModernUI Test" - +;NSIS Ultra Modern User Interface +;InstallOptionsEx and InstallOptions compatibility mode Example Script +;Written by SyperPat + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "InstallOptions.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\UltraModernUI Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + + ;Active InstallOptionsEx + !define UMUI_USE_INSTALLOPTIONSEX + + !define UMUI_SKIN "blue" + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + + +;--------------------- +;Include UltraModernUI + + !include "UMUI.nsh" + + +;-------------------------------- +;Reserve Files + + ;These files should be inserted before other files in the data block + ;Keep these lines before any File command + ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA) + + ReserveFile "ioA.ini" + ReserveFile "ioB.ini" + !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS + + +;-------------------------------- +;Pages + + !define MUI_LICENSEPAGE_TEXT_TOP "All the action takes place on the next page..." + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + Page custom CustomPageA + !insertmacro MUI_PAGE_COMPONENTS + Page custom CustomPageB + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !insertmacro UMUI_PAGE_ABORT + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + +SectionEnd + +;-------------------------------- +;Installer Functions + +Function .onInit + + ;Extract InstallOptions INI files + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioA.ini" + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioB.ini" + +FunctionEnd + +LangString TEXT_IO_TITLE ${LANG_ENGLISH} "InstallOptions page" +LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "This is a page created using the InstallOptions plug-in." + +Function CustomPageA + + ; Does not show page if setup cancelled, required only if UMUI_PAGE_ABORT inserted + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + + !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" + !insertmacro INSTALLOPTIONS_DISPLAY "ioA.ini" + +FunctionEnd + +Var HWND +Function CustomPageB + + ; Does not show page if setup cancelled, required only if UMUI_PAGE_ABORT inserted + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + + !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" + + !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioB.ini" + Pop $HWND ;HWND of dialog + + !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $HWND ; set page background color + + GetDlgItem $0 $HWND 1200 +; !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $0 ; set label colors + SetCtlColors $0 00FF00 "transparent" + + GetDlgItem $0 $HWND 1201 + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $0 ; set checkbox colors + + GetDlgItem $0 $HWND 1202 + !insertmacro UMUI_IOPAGEINPUTCTL_INIT $0 ; set text colors + + !insertmacro MUI_INSTALLOPTIONS_SHOW + +FunctionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey /ifempty HKCU "Software\UltraModernUI Test" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/Maintenance.nsi b/Examples/UltraModernUI/Maintenance.nsi index 3317d03..fbbb38c 100644 --- a/Examples/UltraModernUI/Maintenance.nsi +++ b/Examples/UltraModernUI/Maintenance.nsi @@ -1,190 +1,193 @@ -;NSIS Ultra Modern User Interface -;Maintenance Page Example Script -;Written by SuperPat - -; How to test this example: -; launch and install this example a first time -; Relaunch this example again or laucnh the uninstaller, the maintnance page will appear - - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "Maintenance.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include Modern UI - - !include "UMUI.nsh" - ;!include "MUIEx.nsh" - - !include "Sections.nsh" - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "blue2" - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - - !define UMUI_PARAMS_REGISTRY_ROOT HKCU - !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" - - !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable - - !define UMUI_VERSION "2.0 beta 1" - !define /date UMUI_VERBUILD "2.0_%Y-%m-%d" - - !define UMUI_VERSION_REGISTRY_VALUENAME "Version" - !define UMUI_VERBUILD_REGISTRY_VALUENAME "VerBuild" - - !define UMUI_UNINSTALLPATH_REGISTRY_VALUENAME "uninstallpath" - !define UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME "installpath" - !define UMUI_UNINSTALL_FULLPATH "$INSTDIR\Uninstall.exe" - !define UMUI_PREUNINSTALL_FUNCTION preuninstall_function - -;-------------------------------- -;Pages - - !define UMUI_MAINTENANCEPAGE_MODIFY - !define UMUI_MAINTENANCEPAGE_REPAIR - !define UMUI_MAINTENANCEPAGE_REMOVE - !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP - !insertmacro UMUI_PAGE_MAINTENANCE - - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - -; !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME "insttype" - !define UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME "components" - !insertmacro MUI_PAGE_COMPONENTS - - !insertmacro MUI_PAGE_DIRECTORY - - !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function - !insertmacro UMUI_PAGE_CONFIRM - - !insertmacro MUI_PAGE_INSTFILES - - !define UMUI_MAINTENANCEPAGE_MODIFY - !define UMUI_MAINTENANCEPAGE_REPAIR - !define UMUI_MAINTENANCEPAGE_REMOVE - !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP - !insertmacro UMUI_UNPAGE_MAINTENANCE - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -Section "Dummy Section 2" SecDummy2 - - SetOutPath "$INSTDIR" - - - -SectionEnd - - -;-------------------------------- -; Pages functions - -Function preuninstall_function - - ; execute this function only in Modify, repair and update function - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} - - ;ADD YOUR DELETE INSTRUCTION HERE... - - Delete "$INSTDIR\Uninstall.exe" - - DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - - !insertmacro UMUI_ENDIF_INSTALLFLAG - -FunctionEnd - -!macro confirm_addline section - - SectionGetFlags ${Sec${section}} $1 - IntOp $1 $1 & ${SF_SELECTED} - IntCmp $1 ${SF_SELECTED} 0 n${section} n${section} - SectionGetText ${Sec${section}} $1 - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " - $1" - n${section}: - -!macroend - -Function confirm_function - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_COMPNENTS)" - - !insertmacro confirm_addline Dummy - !insertmacro confirm_addline Dummy2 - -FunctionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - LangString DESC_SecDummy2 ${LANG_ENGLISH} "Another test section." - - ;Declare all the components (Needed by UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME) - !insertmacro UMUI_DECLARECOMPONENTS_BEGIN - !insertmacro UMUI_COMPONENT SecDummy - !insertmacro UMUI_COMPONENT SecDummy2 - !insertmacro UMUI_DECLARECOMPONENTS_END - - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy2} $(DESC_SecDummy2) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR DELETE INSTRUCTION HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - +;NSIS Ultra Modern User Interface +;Maintenance Page Example Script +;Written by SuperPat + +; How to test this example: +; launch and install this example a first time +; Relaunch this example again or laucnh the uninstaller, the maintnance page will appear + + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "Maintenance.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include Modern UI + + !include "UMUI.nsh" + ;!include "MUIEx.nsh" + + !include "Sections.nsh" + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "blue2" + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + + !define UMUI_PARAMS_REGISTRY_ROOT HKCU + !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" + + !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable + + !define UMUI_VERSION "2.0 beta 1" + !define /date UMUI_VERBUILD "2.0_%Y-%m-%d" + + !define UMUI_VERSION_REGISTRY_VALUENAME "Version" + !define UMUI_VERBUILD_REGISTRY_VALUENAME "VerBuild" + + !define UMUI_UNINSTALLPATH_REGISTRY_VALUENAME "uninstallpath" + !define UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME "installpath" + !define UMUI_UNINSTALL_FULLPATH "$INSTDIR\Uninstall.exe" + !define UMUI_PREUNINSTALL_FUNCTION preuninstall_function + +;-------------------------------- +;Pages + + !define UMUI_MAINTENANCEPAGE_MODIFY + !define UMUI_MAINTENANCEPAGE_REPAIR + !define UMUI_MAINTENANCEPAGE_REMOVE + !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP + !insertmacro UMUI_PAGE_MAINTENANCE + + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + +; !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME "insttype" + !define UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME "components" + !insertmacro MUI_PAGE_COMPONENTS + + !insertmacro MUI_PAGE_DIRECTORY + + !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function + !insertmacro UMUI_PAGE_CONFIRM + + !insertmacro MUI_PAGE_INSTFILES + + !define UMUI_MAINTENANCEPAGE_MODIFY + !define UMUI_MAINTENANCEPAGE_REPAIR + !define UMUI_MAINTENANCEPAGE_REMOVE + !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP + !insertmacro UMUI_UNPAGE_MAINTENANCE + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +Section "Dummy Section 2" SecDummy2 + + SetOutPath "$INSTDIR" + + + +SectionEnd + + +;-------------------------------- +; Pages functions + +Function preuninstall_function + + ; execute this function only in Modify, repair and update function + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} + + ;ADD YOUR DELETE INSTRUCTION HERE... + + Delete "$INSTDIR\Uninstall.exe" + + DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + + !insertmacro UMUI_ENDIF_INSTALLFLAG + +FunctionEnd + +!macro confirm_addline section + + SectionGetFlags ${Sec${section}} $1 + IntOp $1 $1 & ${SF_SELECTED} + IntCmp $1 ${SF_SELECTED} 0 n${section} n${section} + SectionGetText ${Sec${section}} $1 + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " - $1" + n${section}: + +!macroend + +Function confirm_function + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_COMPNENTS)" + + !insertmacro confirm_addline Dummy + !insertmacro confirm_addline Dummy2 + +FunctionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + LangString DESC_SecDummy2 ${LANG_ENGLISH} "Another test section." + + ;Declare all the components (Needed by UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME) + !insertmacro UMUI_DECLARECOMPONENTS_BEGIN + !insertmacro UMUI_COMPONENT SecDummy + !insertmacro UMUI_COMPONENT SecDummy2 + !insertmacro UMUI_DECLARECOMPONENTS_END + + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy2} $(DESC_SecDummy2) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR DELETE INSTRUCTION HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/MultiLanguage.nsi b/Examples/UltraModernUI/MultiLanguage.nsi index 887ce16..004183c 100644 --- a/Examples/UltraModernUI/MultiLanguage.nsi +++ b/Examples/UltraModernUI/MultiLanguage.nsi @@ -1,193 +1,196 @@ -;NSIS Ultra Modern User Interface -;Multilanguage Page Example Script -;Written SuperPat - -;-------------------------------- -;General - - ;Generate unicode installer - Unicode True - - ;Name and file - Name "UltraModernUI Test" - OutFile "MultiLanguage.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include UltraModernUI - - !include "UMUI.nsh" -; !include "MUIEx.nsh" - -;-------------------------------- -;Interface Settings - - !define UMUI_USE_INSTALLOPTIONSEX - - !define MUI_ABORTWARNING - - !define UMUI_PARAMS_REGISTRY_ROOT HKCU - !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" - - !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable - - !define UMUI_LANGUAGE_REGISTRY_VALUENAME "Language" - - !define UMUI_USE_ALTERNATE_PAGE - - ; always show the MultiLanguage page or the LangDLLDialog - ;!define UMUI_LANGUAGE_ALWAYSSHOW - -;-------------------------------- -;Pages - - !insertmacro UMUI_PAGE_MULTILANGUAGE - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - - !insertmacro UMUI_UNPAGE_MULTILANGUAGE - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -;-------------------------------- -;Languages - -; first language is the default language if the system language is not in this list - !insertmacro MUI_LANGUAGE "English" - -; Other UMUI translated languages - !insertmacro MUI_LANGUAGE "Bulgarian" - !insertmacro MUI_LANGUAGE "Czech" - !insertmacro MUI_LANGUAGE "French" - !insertmacro MUI_LANGUAGE "German" - !insertmacro MUI_LANGUAGE "Greek" - !insertmacro MUI_LANGUAGE "Hungarian" - !insertmacro MUI_LANGUAGE "Italian" - !insertmacro MUI_LANGUAGE "Japanese" - !insertmacro MUI_LANGUAGE "Lithuanian" - !insertmacro MUI_LANGUAGE "Polish" - !insertmacro MUI_LANGUAGE "Russian" - !insertmacro MUI_LANGUAGE "Slovenian" - !insertmacro MUI_LANGUAGE "Spanish" - !insertmacro MUI_LANGUAGE "Turkish" -; Other UMUI partially translated language - !insertmacro MUI_LANGUAGE "PortugueseBR" - -; Other untranslated languages but usable even so. - !insertmacro MUI_LANGUAGE "SpanishInternational" - !insertmacro MUI_LANGUAGE "SimpChinese" - !insertmacro MUI_LANGUAGE "TradChinese" - !insertmacro MUI_LANGUAGE "Korean" - !insertmacro MUI_LANGUAGE "Dutch" - !insertmacro MUI_LANGUAGE "Danish" - !insertmacro MUI_LANGUAGE "Swedish" - !insertmacro MUI_LANGUAGE "Norwegian" - !insertmacro MUI_LANGUAGE "NorwegianNynorsk" - !insertmacro MUI_LANGUAGE "Finnish" - !insertmacro MUI_LANGUAGE "Portuguese" - !insertmacro MUI_LANGUAGE "Ukrainian" - !insertmacro MUI_LANGUAGE "Slovak" - !insertmacro MUI_LANGUAGE "Croatian" - !insertmacro MUI_LANGUAGE "Thai" - !insertmacro MUI_LANGUAGE "Romanian" - !insertmacro MUI_LANGUAGE "Latvian" - !insertmacro MUI_LANGUAGE "Macedonian" - !insertmacro MUI_LANGUAGE "Estonian" - !insertmacro MUI_LANGUAGE "Serbian" - !insertmacro MUI_LANGUAGE "SerbianLatin" - !insertmacro MUI_LANGUAGE "Arabic" - !insertmacro MUI_LANGUAGE "Farsi" - !insertmacro MUI_LANGUAGE "Hebrew" - !insertmacro MUI_LANGUAGE "Indonesian" - !insertmacro MUI_LANGUAGE "Mongolian" - !insertmacro MUI_LANGUAGE "Luxembourgish" - !insertmacro MUI_LANGUAGE "Albanian" - !insertmacro MUI_LANGUAGE "Breton" - !insertmacro MUI_LANGUAGE "Belarusian" - !insertmacro MUI_LANGUAGE "Icelandic" - !insertmacro MUI_LANGUAGE "Malay" - !insertmacro MUI_LANGUAGE "Bosnian" - !insertmacro MUI_LANGUAGE "Kurdish" - !insertmacro MUI_LANGUAGE "Irish" - !insertmacro MUI_LANGUAGE "Uzbek" - !insertmacro MUI_LANGUAGE "Galician" - !insertmacro MUI_LANGUAGE "Afrikaans" - !insertmacro MUI_LANGUAGE "Catalan" - !insertmacro MUI_LANGUAGE "Esperanto" - !insertmacro MUI_LANGUAGE "Asturian" - !insertmacro MUI_LANGUAGE "Basque" - !insertmacro MUI_LANGUAGE "Pashto" - !insertmacro MUI_LANGUAGE "ScotsGaelic" - !insertmacro MUI_LANGUAGE "Vietnamese" - !insertmacro MUI_LANGUAGE "Welsh" - !insertmacro MUI_LANGUAGE "Corsican" - !insertmacro MUI_LANGUAGE "Tatar" - -; Other unicode only untranslated languages but usable even so. - !insertmacro MUI_LANGUAGE "Armenian" - !insertmacro MUI_LANGUAGE "Georgian" - !insertmacro MUI_LANGUAGE "Hindi" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - - - -;-------------------------------- -;Descriptions - - ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC - - ;Assign descriptions to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} "A test section." - !insertmacro MUI_FUNCTION_DESCRIPTION_END - - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - -SectionEnd - -;-------------------------------- -;Installer Functions - -Function .onInit - !insertmacro UMUI_MULTILANG_GET -FunctionEnd - -;-------------------------------- -;Uninstaller Functions - -Function un.onInit - !insertmacro UMUI_MULTILANG_GET +;NSIS Ultra Modern User Interface +;Multilanguage Page Example Script +;Written SuperPat + +;-------------------------------- +;General + + ;Generate unicode installer + Unicode True + + ;Name and file + Name "UltraModernUI Test" + OutFile "MultiLanguage.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include UltraModernUI + + !include "UMUI.nsh" +; !include "MUIEx.nsh" + +;-------------------------------- +;Interface Settings + + !define UMUI_USE_INSTALLOPTIONSEX + + !define MUI_ABORTWARNING + + !define UMUI_PARAMS_REGISTRY_ROOT HKCU + !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" + + !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable + + !define UMUI_LANGUAGE_REGISTRY_VALUENAME "Language" + + !define UMUI_USE_ALTERNATE_PAGE + + ; always show the MultiLanguage page or the LangDLLDialog + ;!define UMUI_LANGUAGE_ALWAYSSHOW + +;-------------------------------- +;Pages + + !insertmacro UMUI_PAGE_MULTILANGUAGE + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + + !insertmacro UMUI_UNPAGE_MULTILANGUAGE + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + +; first language is the default language if the system language is not in this list + !insertmacro MUI_LANGUAGE "English" + +; Other UMUI translated languages + !insertmacro MUI_LANGUAGE "Bulgarian" + !insertmacro MUI_LANGUAGE "Czech" + !insertmacro MUI_LANGUAGE "French" + !insertmacro MUI_LANGUAGE "German" + !insertmacro MUI_LANGUAGE "Greek" + !insertmacro MUI_LANGUAGE "Hungarian" + !insertmacro MUI_LANGUAGE "Italian" + !insertmacro MUI_LANGUAGE "Japanese" + !insertmacro MUI_LANGUAGE "Lithuanian" + !insertmacro MUI_LANGUAGE "Polish" + !insertmacro MUI_LANGUAGE "Russian" + !insertmacro MUI_LANGUAGE "Slovenian" + !insertmacro MUI_LANGUAGE "Spanish" + !insertmacro MUI_LANGUAGE "Turkish" +; Other UMUI partially translated language + !insertmacro MUI_LANGUAGE "PortugueseBR" + +; Other untranslated languages but usable even so. + !insertmacro MUI_LANGUAGE "SpanishInternational" + !insertmacro MUI_LANGUAGE "SimpChinese" + !insertmacro MUI_LANGUAGE "TradChinese" + !insertmacro MUI_LANGUAGE "Korean" + !insertmacro MUI_LANGUAGE "Dutch" + !insertmacro MUI_LANGUAGE "Danish" + !insertmacro MUI_LANGUAGE "Swedish" + !insertmacro MUI_LANGUAGE "Norwegian" + !insertmacro MUI_LANGUAGE "NorwegianNynorsk" + !insertmacro MUI_LANGUAGE "Finnish" + !insertmacro MUI_LANGUAGE "Portuguese" + !insertmacro MUI_LANGUAGE "Ukrainian" + !insertmacro MUI_LANGUAGE "Slovak" + !insertmacro MUI_LANGUAGE "Croatian" + !insertmacro MUI_LANGUAGE "Thai" + !insertmacro MUI_LANGUAGE "Romanian" + !insertmacro MUI_LANGUAGE "Latvian" + !insertmacro MUI_LANGUAGE "Macedonian" + !insertmacro MUI_LANGUAGE "Estonian" + !insertmacro MUI_LANGUAGE "Serbian" + !insertmacro MUI_LANGUAGE "SerbianLatin" + !insertmacro MUI_LANGUAGE "Arabic" + !insertmacro MUI_LANGUAGE "Farsi" + !insertmacro MUI_LANGUAGE "Hebrew" + !insertmacro MUI_LANGUAGE "Indonesian" + !insertmacro MUI_LANGUAGE "Mongolian" + !insertmacro MUI_LANGUAGE "Luxembourgish" + !insertmacro MUI_LANGUAGE "Albanian" + !insertmacro MUI_LANGUAGE "Breton" + !insertmacro MUI_LANGUAGE "Belarusian" + !insertmacro MUI_LANGUAGE "Icelandic" + !insertmacro MUI_LANGUAGE "Malay" + !insertmacro MUI_LANGUAGE "Bosnian" + !insertmacro MUI_LANGUAGE "Kurdish" + !insertmacro MUI_LANGUAGE "Irish" + !insertmacro MUI_LANGUAGE "Uzbek" + !insertmacro MUI_LANGUAGE "Galician" + !insertmacro MUI_LANGUAGE "Afrikaans" + !insertmacro MUI_LANGUAGE "Catalan" + !insertmacro MUI_LANGUAGE "Esperanto" + !insertmacro MUI_LANGUAGE "Asturian" + !insertmacro MUI_LANGUAGE "Basque" + !insertmacro MUI_LANGUAGE "Pashto" + !insertmacro MUI_LANGUAGE "ScotsGaelic" + !insertmacro MUI_LANGUAGE "Vietnamese" + !insertmacro MUI_LANGUAGE "Welsh" + !insertmacro MUI_LANGUAGE "Corsican" + !insertmacro MUI_LANGUAGE "Tatar" + +; Other unicode only untranslated languages but usable even so. + !insertmacro MUI_LANGUAGE "Armenian" + !insertmacro MUI_LANGUAGE "Georgian" + !insertmacro MUI_LANGUAGE "Hindi" + + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + + + +;-------------------------------- +;Descriptions + + ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC + + ;Assign descriptions to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} "A test section." + !insertmacro MUI_FUNCTION_DESCRIPTION_END + + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + +SectionEnd + +;-------------------------------- +;Installer Functions + +Function .onInit + !insertmacro UMUI_MULTILANG_GET +FunctionEnd + +;-------------------------------- +;Uninstaller Functions + +Function un.onInit + !insertmacro UMUI_MULTILANG_GET FunctionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/NSISUMUIMenu.nsi b/Examples/UltraModernUI/NSISUMUIMenu.nsi index d45640a..859e183 100644 --- a/Examples/UltraModernUI/NSISUMUIMenu.nsi +++ b/Examples/UltraModernUI/NSISUMUIMenu.nsi @@ -1,314 +1,346 @@ -OutFile "NSISUMUI.exe" -Name "NSIS Menu with UMUI" -Unicode True -RequestExecutionLevel User -XPStyle On -ManifestDPIAware System -SetCompressor LZMA -ChangeUI IDD_INST "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe" -Icon "${NSISDIR}\Contrib\Graphics\Icons\nsis-menu.ico" -BrandingText " " -MiscButtonText " " " " " " " " -InstallButtonText " " -CompletedText " " -LangString ^ClickInstall 0 " " -Caption "$(^Name)" - -!include nsDialogs.nsh -!include WinMessages.nsh -!include LogicLib.nsh -!define /IfNDef IDC_CHILDRECT 1018 -!define QUIT_ON_EXECUTE -!define PR $ExeDir ; Local root path -!define PD "Docs" ; Local with WWW fallback (located at the same relative path) -!define WWW "http://nsis.sf.net" - -!define CB_HEADER 0x755585 -!define UY_HEADER 28 -!define CB_PAGE 0xffffff -!define CT_SECTION 0x666666 -!define CB_SECTION ${CB_PAGE} -!define UY_SECTION 11 ; Height of a section -!define UY_SECTIONBPAD 2 ; Extra padding on the bottom of section headers -!define UY_TXT 9 ; Height of a normal item -!define UY_TXTBPAD 0 ; Extra padding on the bottom of normal items -!define UX_COLPAD 7 ; Spacing between columns -!define UY_ROW2 104 ; Absolute position of the 2nd row -!define CT_LINK 0x0c6e97 ; SYSCLR:HOTLIGHT -!define /Math UX_PAGE 00 + ${UX_COLPAD} -!define /Math UY_PAGE ${UY_HEADER} + 10 -!define UX ${UX_PAGE} - -Function PageLeave -System::Call 'USER32::GetFocus()p.r0' -System::Call 'USER32::GetDlgCtrlID(pr0)i.r1' -System::Call 'USER32::GetParent(pr0)p.r2' -SendMessage $2 ${WM_COMMAND} $1 $0 ; Handle <ENTER> in dialog by pretending it was a click on the active control -Abort -FunctionEnd - -Function PageCreate -GetDlgItem $0 $hWndParent 1 -ShowWindow $0 0 -GetDlgItem $0 $hWndParent 2 -ShowWindow $0 0 - -System::Call 'USER32::GetClientRect(p$hWndParent,@r0)' -System::Call '*$0(i,i,i.r3,i.r4)' -GetDlgItem $0 $hWndParent ${IDC_CHILDRECT} -System::Call 'USER32::MoveWindow(pr0,i0,i0,ir3,ir4,i0)' - -nsDialogs::Create ${IDC_CHILDRECT} -Pop $R9 -SetCtlColors $R9 000000 ${CB_PAGE} - -!macro StartColumn W -!define /ReDef UY ${UY_PAGE} -!define /ReDef UX_W ${W} -!ifdef UX_INTERNAL_PREV_W -!define /ReDef /Math UX ${UX} + ${UX_INTERNAL_PREV_W} -!define /ReDef /Math UX ${UX} + ${UX_COLPAD} -!define /ReDef UX_INTERNAL_PREV_W ${UX_W} -!else -!define /Math UX_INTERNAL_PREV_W 0 + ${UX_W} -!endif -!macroend -!macro CreateHeader Txt W -!define /ReDef /Math W ${W} + 4 ; Make it slightly wider -${NSD_CreateLabel} ${UX}u ${UY}u ${W}u ${UY_SECTION}u "${Txt}" -Pop $0 -SetCtlColors $0 ${CT_SECTION} transparent -SendMessage $0 ${WM_SETFONT} ${HF_HEADER} 1 -!define /ReDef /Math UY ${UY} + ${UY_SECTION} -!define /ReDef /Math UY ${UY} + ${UY_SECTIONBPAD} -!macroend -!macro CreateControl Class Txt W H -${NSD_Create${Class}} ${UX}u ${UY}u ${W}u ${H}u "${Txt}" -!define /ReDef /Math UY ${UY} + ${H} -!define /ReDef /Math UY ${UY} + ${UY_TXTBPAD} -!macroend -!macro CreateSimpleLinkHelper Txt Url W -!insertmacro CreateControl Link "${Txt}|${Url}" ${W} ${UY_TXT} -!macroend -!macro CreateSimpleLink Txt Url W -!insertmacro CreateSimpleLinkHelper "${Txt}" "${Url}" ${W} -Call ConfigureLink -!macroend - - -; --- Header --- -!define HF_HEADER $R8 -CreateFont ${HF_HEADER} "Arial" ${UY_SECTION} 700 - -nsDialogs::CreateControl ${__NSD_Label_CLASS} ${__NSD_Label_STYLE} ${__NSD_Label_EXSTYLE} 33u 0 -33u ${UY_HEADER}u "" -Pop $0 -SetCtlColors $0 0xffffff ${CB_HEADER} - -nsDialogs::CreateControl ${__NSD_Icon_CLASS} ${__NSD_Icon_STYLE}|${SS_CENTERIMAGE}|${SS_CENTER} ${__NSD_Icon_EXSTYLE} 0 0 33u ${UY_HEADER}u "" -Pop $0 -SetCtlColors $0 "" ${CB_HEADER} -${NSD_SetIconFromInstaller} $0 $1 - -ReadRegDword $R0 HKLM Software\NSIS "VersionMajor" -IfErrors endVersion 0 - ReadRegDword $R1 HKLM Software\NSIS "VersionMinor" - IfErrors endVersion 0 - IntCmp $R1 9 0 0 +3 - StrCpy $R0 "$R0.0$R1" - Goto endVersion - StrCpy $R0 "$R0.$R1" -endVersion: - -CreateFont $1 "Trebuchet MS" 17 -nsDialogs::CreateControl ${__NSD_Label_CLASS} ${__NSD_Label_STYLE}|${SS_CENTERIMAGE}|${SS_ENDELLIPSIS} ${__NSD_Label_EXSTYLE} 34u 1u -34u ${UY_HEADER}u "nullsoft scriptable install system $R0" -Pop $0 -SetCtlColors $0 0x3A2A42 transparent -SendMessage $0 ${WM_SETFONT} $1 1 -nsDialogs::CreateControl ${__NSD_Label_CLASS} ${__NSD_Label_STYLE}|${SS_CENTERIMAGE}|${SS_ENDELLIPSIS} ${__NSD_Label_EXSTYLE} 33u 0 -33u ${UY_HEADER}u "nullsoft scriptable install system $R0" -Pop $0 -SetCtlColors $0 0xffffff transparent -SendMessage $0 ${WM_SETFONT} $1 1 - - -; --- Page --- -!insertmacro StartColumn 90 -!insertmacro CreateHeader "Compiler" ${UX_W} -!insertmacro CreateSimpleLink "Compile NSI scripts" "${PR}\MakeNSISW" ${UX_W} -!insertmacro CreateSimpleLink "Installer based on .ZIP file" "${PR}\bin\Zip2Exe" ${UX_W} - - -!define /ReDef UY ${UY_ROW2} -!insertmacro CreateHeader "Developer Center" ${UX_W} -!define /ReDef UY_MULTILINE 42 -!insertmacro CreateControl Label "Many more examples, tutorials, plug-ins and NSIS-releted software are available at the online Developer Center." ${UX_W} ${UY_MULTILINE} -Pop $0 -SetCtlColors $0 00000000 ${CB_PAGE} - - -!insertmacro StartColumn 80 -!insertmacro CreateHeader "Documentation" ${UX_W} -!insertmacro CreateSimpleLink "NSIS Users Manual" "${PR}\NSIS.chm|${WWW}/Docs/" ${UX_W} -!insertmacro CreateSimpleLink "Example scripts" "${PR}\Examples|${WWW}/Examples" ${UX_W} -!insertmacro CreateSimpleLink "Modern UI 2" "${PD}\Modern UI 2\Readme.html" ${UX_W} -!insertmacro CreateSimpleLink "Ultra-Modern UI" "${PD}\UltraModernUI\Readme.html" ${UX_W} - - -!define /ReDef UY ${UY_ROW2} -!insertmacro CreateHeader "Online Help" ${UX_W} -!insertmacro CreateSimpleLink "Developer Center" "${WWW}/Developer_Center" ${UX_W} -!insertmacro CreateSimpleLink "FAQ" "${WWW}/FAQ" ${UX_W} -!insertmacro CreateSimpleLink "Forum" "http://forums.winamp.com/forumdisplay.php?forumid=65" ${UX_W} -;"Project Tracker" "http://sourceforge.net/tracker/?group_id=22049" -!insertmacro CreateSimpleLink "Bug Tracker" "http://sourceforge.net/tracker/?group_id=22049&atid=373085" ${UX_W} -!insertmacro CreateSimpleLink "Stackoverflow" "http://stackoverflow.com/questions/tagged/nsis" ${UX_W} -!insertmacro CreateSimpleLink "Slack collaboration hub" "${WWW}/r/Slack" ${UX_W} -!insertmacro CreateSimpleLink "IRC channel" "irc://irc.landoleet.org/nsis" ${UX_W} -;"Pastebin" "http://nsis.pastebin.com/index/1FtyKP89" -;"Search" "http://www.google.com/cse/home?cx=005317984255499820329:c_glv1-6a6a" - - -!insertmacro StartColumn 130 -!insertmacro CreateHeader "Plug-ins" ${UX_W} -!macro CreatePluginLink Name Desc Url -!define /ReDef SAVE_UY ${UY} -!insertmacro CreateSimpleLinkHelper "${Name}" "${Url}" ${UX_W} ; AdjustLinkPair will configure this link -!define /ReDef UY ${SAVE_UY} -!insertmacro CreateControl Label "${Name} - ${Desc}" ${UX_W} ${UY_TXT} -Call AdjustLinkPair -!macroend -!insertmacro CreatePluginLink "AdvSplash" "splash with fade in/out" "${PD}\AdvSplash\advsplash.txt" -!insertmacro CreatePluginLink "Banner" "banner with custom text" "${PD}\Banner\Readme.txt" -!insertmacro CreatePluginLink "BgImage" "background image" "${PD}\BgImage\BgImage.txt" -!insertmacro CreatePluginLink "Dialer" "internet connection" "${PD}\Dialer\Dialer.txt" -!insertmacro CreatePluginLink "Math" "math operations" "${PD}\Math\Math.txt" -!insertmacro CreatePluginLink "nsDialogs" "custom wizard pages" "${PD}\nsDialogs\Readme.html" -!insertmacro CreatePluginLink "nsExec" "launch command line tools" "${PD}\nsExec\nsExec.txt" -!insertmacro CreatePluginLink "NSISdl" "download files" "${PD}\NSISdl\Readme.txt" -!insertmacro CreatePluginLink "Splash" "splash screen" "${PD}\Splash\splash.txt" -!insertmacro CreatePluginLink "StartMenu" "Start Menu folder selection" "${PD}\StartMenu\Readme.txt" -!insertmacro CreatePluginLink "System" "Windows API calls" "${PD}\System\System.html" -!insertmacro CreatePluginLink "VPatch" "update existing files" "${PD}\VPatch\Readme.html" - -!insertmacro CreatePluginLink "InstallOptions" "custom wizard pages" "${PD}\InstallOptions\Readme.html" -!insertmacro CreatePluginLink "InstallOptionsEx" "custom wizard pages" "${PD}\InstallOptionsEx\Readme.html" -!insertmacro CreatePluginLink "nsArray" "use arrays in scripts" "${PD}\nsArray\Readme.txt" -!insertmacro CreatePluginLink "SkinnedControls" "skin buttons/scrollbars" "${PD}\SkinnedControls\Readme.html" - -; --- Footer --- -${NSD_CreateLabel} 0 -22u 100% 1 "" -Pop $0 -SetCtlColors $0 000000 0xc4c4c4 - -nsDialogs::CreateControl ${__NSD_Label_CLASS} ${__NSD_Label_STYLE}|${SS_CENTERIMAGE}|${SS_NOTIFY} ${__NSD_Label_EXSTYLE} -110u -20u 100% 20u "nsis.sourceforge.net" -Pop $0 -SetCtlColors $0 0xbbbbbb transparent -SendMessage $0 ${WM_SETFONT} ${HF_HEADER} 1 -nsDialogs::SetUserData $0 "http://nsis.sourceforge.net" -${NSD_OnClick} $0 OnLinkClick - -nsDialogs::Show -FunctionEnd - -Function OnLinkClick -Pop $1 ; HWND -nsDialogs::GetUserData $1 -Call SplitPipe -Pop $0 ; First URL in UserData from SplitPipe -StrCpy $3 "" -StrCpy $1 $0 4 ; Copy length of ${PD} -${IfThen} $1 == "${PD}" ${|} StrCpy $3 "${PR}\" ${|} -!ifdef QUIT_ON_EXECUTE -System::Call 'USER32::GetKeyState(i0x11)i.r9' ; VK_CONTROL -!endif -ClearErrors -ExecShell "" "$3$0" -Pop $1 ; ... the rest of SplitPipe ... -${If} $1 != "" ; ... might contain a fallback location - StrCpy $0 $1 - StrCpy $3 "" -${ElseIf} $3 != "" ; Local docs path failed, use WWW fallback - StrCpy $3 0 - slashconvloop: - StrCpy $2 $0 1 $3 - ${If} $2 == "\" - StrCpy $2 $0 $3 - IntOp $3 $3 + 1 - StrCpy $0 $0 "" $3 - StrCpy $0 "$2/$0" - ${Else} - IntOp $3 $3 + 1 - ${EndIf} - StrCmp $2 "" 0 slashconvloop - StrCpy $3 "${WWW}/" -${EndIf} -${If} "$3$1" != "" -${AndIf} ${Errors} - ExecShell "" "$3$0" -${EndIf} -${If} ${Errors} - !ifdef QUIT_ON_EXECUTE - StrCpy $9 0 ; Don't allow close - !endif - MessageBox MB_IconStop 'Error: Unable to open "$0"!' -${EndIf} -!ifdef QUIT_ON_EXECUTE -${IfThen} $9 < 0 ${|} SendMessage $hWndParent ${WM_CLOSE} 0 0 ${|} -!endif -FunctionEnd - -Function ConfigureLink -Pop $1 ; HWND -${NSD_OnClick} $1 OnLinkClick -SetCtlColors $1 ${CT_LINK} ${CB_PAGE} -${NSD_GetText} $1 $4 -Push $4 -Call SplitPipe -Pop $4 -Pop $2 -${NSD_SetText} $1 $4 -nsDialogs::SetUserData $1 $2 -System::Call 'USER32::GetDC(pr1)p.r3' -SendMessage $1 ${WM_GETFONT} 0 0 $5 -System::Call 'GDI32::SelectObject(pr3,pr5)p.s' -StrLen $5 $4 -System::Call 'GDI32::GetTextExtentPoint32(pr3,tr4,ir5,@r5)' -System::Call '*$5(i.r6)' -System::Call 'GDI32::SelectObject(pr3,ps)' -System::Call 'USER32::ReleaseDC(pr1,pr3)' -System::Call 'USER32::GetWindowRect(pr1,@r3)' -System::Call '*$3(i,i.r5,i,i.r7)' -IntOp $7 $7 - $5 -IntOp $6 $6 + 4 ; Padding for focus rect -System::Call 'USER32::SetWindowPos(pr1,p,i,i,ir6,ir7,i0x16)' -FunctionEnd - -Function AdjustLinkPair -Pop $2 ; Label -SetCtlColors $2 00000000 ${CB_PAGE} -Call ConfigureLink -FunctionEnd - -Function SplitPipe -Exch $0 -Push $1 -Push $2 -StrCpy $2 0 -findSep: -StrCpy $1 $0 1 $2 -IntOp $2 $2 + 1 -StrCmp $1 "" +2 -StrCmp $1 "|" "" findSep -StrCpy $1 $0 "" $2 -IntOp $2 $2 - 1 -StrCpy $0 $0 $2 -Pop $2 -Exch $1 -Exch -Exch $0 -FunctionEnd - -Section -SectionEnd - -Page Custom PageCreate PageLeave +OutFile "NSISUMUI.exe" +Name "NSIS Menu with UMUI" +Unicode True +RequestExecutionLevel User +XPStyle On +ManifestDPIAware System +SetCompressor LZMA +ChangeUI IDD_INST "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe" +Icon "${NSISDIR}\Contrib\Graphics\Icons\nsis-menu.ico" +BrandingText " " +MiscButtonText " " " " " " " " +InstallButtonText " " +CompletedText " " +LangString ^ClickInstall 0 " " +Caption "$(^Name)" +!ifdef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD +!searchreplace VERSTR "${NSIS_VERSION}" "v" "" +VIProductVersion ${VER_MAJOR}.${VER_MINOR}.${VER_REVISION}.${VER_BUILD} +VIAddVersionKey "ProductName" "NSIS" +VIAddVersionKey "ProductVersion" "${VERSTR}" +VIAddVersionKey "FileVersion" "${VERSTR}" +VIAddVersionKey "FileDescription" "NSIS Menu with UMUI" +!endif + +!include nsDialogs.nsh +!include WinMessages.nsh +!include LogicLib.nsh +!define /IfNDef IDC_CHILDRECT 1018 +!define QUIT_ON_EXECUTE +!define PR $ExeDir ; Local root path +!define PD "Docs" ; Local with WWW fallback (located at the same relative path) +!define WWW "http://nsis.sf.net" + +!define CB_HEADER '0x755585 0x222222' +!define UY_HEADER 28 +!define CT_PAGE '0x000000 0xaaaaaa' +!define CB_PAGE '0xffffff 0x111111' +!define CT_SECTION '0x666666 0xeeeeee' +!define CB_SECTION '${CB_PAGE}' +!define UY_SECTION 11 ; Height of a section +!define UY_SECTIONBPAD 2 ; Extra padding on the bottom of section headers +!define UY_TXT 9 ; Height of a normal item +!define UY_TXTBPAD 0 ; Extra padding on the bottom of normal items +!define UX_COLPAD 7 ; Spacing between columns +!define UY_ROW2 104 ; Absolute position of the 2nd row +!define CT_LINK '0x0c6e97 0x0c6e97' ; SYSCLR:HOTLIGHT +!define /Math UX_PAGE 00 + ${UX_COLPAD} +!define /Math UY_PAGE ${UY_HEADER} + 10 +!define UX ${UX_PAGE} +!define CB_FOOTERLINE '0xc4c4c4 0x333333' +!define CT_FOOTER '0xbbbbbb 0x444444' + +Var UseLightTheme + +Function .onGUIInit +ReadRegDWORD $UseLightTheme HKCU "Software\NSIS" "UseLightTheme" +StrCmp $UseLightTheme "" 0 +2 +ReadRegDWORD $UseLightTheme HKCU "Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" "AppsUseLightTheme" +StrCmp $UseLightTheme "" 0 +2 +StrCpy $UseLightTheme 1 ; Default + +StrCmp $UseLightTheme "0" 0 +2 +System::Call 'USER32::SetProp(p$hWndParent,t"UseImmersiveDarkModeColors",i1)' +FunctionEnd + +!define SetCtlColors "!insertmacro SetCtlColors " +!macro SetCtlColors hWnd ctlig ctdar cblig cbdar +StrCmp $UseLightTheme "0" 0 +3 +SetCtlColors ${hWnd} "${ctdar}" ${cbdar} +Goto +2 +SetCtlColors ${hWnd} "${ctlig}" ${cblig} +!macroend + + +Function PageLeave +System::Call 'USER32::GetFocus()p.r0' +System::Call 'USER32::GetDlgCtrlID(pr0)i.r1' +System::Call 'USER32::GetParent(pr0)p.r2' +SendMessage $2 ${WM_COMMAND} $1 $0 ; Handle <ENTER> in dialog by pretending it was a click on the active control +Abort +FunctionEnd + +Function PageCreate +GetDlgItem $0 $hWndParent 1 +ShowWindow $0 0 +GetDlgItem $0 $hWndParent 2 +ShowWindow $0 0 + +System::Call 'USER32::GetClientRect(p$hWndParent,@r0)' +System::Call '*$0(i,i,i.r3,i.r4)' +GetDlgItem $0 $hWndParent ${IDC_CHILDRECT} +System::Call 'USER32::MoveWindow(pr0,i0,i0,ir3,ir4,i0)' + +nsDialogs::Create ${IDC_CHILDRECT} +Pop $R9 +${SetCtlColors} $R9 ${CT_PAGE} ${CB_PAGE} + +!macro StartColumn W +!define /ReDef UY ${UY_PAGE} +!define /ReDef UX_W ${W} +!ifdef UX_INTERNAL_PREV_W +!define /ReDef /Math UX ${UX} + ${UX_INTERNAL_PREV_W} +!define /ReDef /Math UX ${UX} + ${UX_COLPAD} +!define /ReDef UX_INTERNAL_PREV_W ${UX_W} +!else +!define /Math UX_INTERNAL_PREV_W 0 + ${UX_W} +!endif +!macroend +!macro CreateHeader Txt W +!define /ReDef /Math W ${W} + 4 ; Make it slightly wider +${NSD_CreateLabel} ${UX}u ${UY}u ${W}u ${UY_SECTION}u "${Txt}" +Pop $0 +${SetCtlColors} $0 ${CT_SECTION} transparent transparent +SendMessage $0 ${WM_SETFONT} ${HF_HEADER} 1 +!define /ReDef /Math UY ${UY} + ${UY_SECTION} +!define /ReDef /Math UY ${UY} + ${UY_SECTIONBPAD} +!macroend +!macro CreateControl Class Txt W H +${NSD_Create${Class}} ${UX}u ${UY}u ${W}u ${H}u "${Txt}" +!define /ReDef /Math UY ${UY} + ${H} +!define /ReDef /Math UY ${UY} + ${UY_TXTBPAD} +!macroend +!macro CreateSimpleLinkHelper Txt Url W +!insertmacro CreateControl Link "${Txt}|${Url}" ${W} ${UY_TXT} +!macroend +!macro CreateSimpleLink Txt Url W +!insertmacro CreateSimpleLinkHelper "${Txt}" "${Url}" ${W} +Call ConfigureLink +!macroend + + +; --- Header --- +!define HF_HEADER $R8 +CreateFont ${HF_HEADER} "Arial" ${UY_SECTION} 700 + +nsDialogs::CreateControl ${__NSD_Label_CLASS} ${__NSD_Label_STYLE} ${__NSD_Label_EXSTYLE} 33u 0 -33u ${UY_HEADER}u "" +Pop $0 +${SetCtlColors} $0 0xffffff 0xffffff ${CB_HEADER} + +nsDialogs::CreateControl ${__NSD_Icon_CLASS} ${__NSD_Icon_STYLE}|${SS_CENTERIMAGE}|${SS_CENTER} ${__NSD_Icon_EXSTYLE} 0 0 33u ${UY_HEADER}u "" +Pop $0 +${SetCtlColors} $0 "" "" ${CB_HEADER} +${NSD_SetIconFromInstaller} $0 $1 + +CreateFont $1 "Trebuchet MS" 17 +!searchreplace VERSTR "${NSIS_VERSION}" "v" "" +nsDialogs::CreateControl ${__NSD_Label_CLASS} ${__NSD_Label_STYLE}|${SS_CENTERIMAGE}|${SS_ENDELLIPSIS} ${__NSD_Label_EXSTYLE} 34u 1u -34u ${UY_HEADER}u "nullsoft scriptable install system ${VERSTR}" +Pop $0 +SetCtlColors $0 0x3A2A42 transparent +SendMessage $0 ${WM_SETFONT} $1 1 +nsDialogs::CreateControl ${__NSD_Label_CLASS} ${__NSD_Label_STYLE}|${SS_CENTERIMAGE}|${SS_ENDELLIPSIS} ${__NSD_Label_EXSTYLE} 33u 0 -33u ${UY_HEADER}u "nullsoft scriptable install system ${VERSTR}" +Pop $0 +SetCtlColors $0 0xffffff transparent +SendMessage $0 ${WM_SETFONT} $1 1 + + +; --- Page --- +!insertmacro StartColumn 90 +!insertmacro CreateHeader "Compiler" ${UX_W} +!insertmacro CreateSimpleLink "Compile NSI scripts" "${PR}\MakeNSISW" ${UX_W} +!insertmacro CreateSimpleLink "Installer based on .ZIP file" "${PR}\bin\Zip2Exe" ${UX_W} + + +!define /ReDef UY ${UY_ROW2} +!insertmacro CreateHeader "Developer Center" ${UX_W} +!define /ReDef UY_MULTILINE 42 +!insertmacro CreateControl Label "Many more examples, tutorials, plug-ins and NSIS-releted software are available at the online Developer Center." ${UX_W} ${UY_MULTILINE} +Pop $0 +${SetCtlColors} $0 ${CT_PAGE} ${CB_PAGE} + + +!insertmacro StartColumn 80 +!insertmacro CreateHeader "Documentation" ${UX_W} +!insertmacro CreateSimpleLink "NSIS Users Manual" "${PR}\NSIS.chm|${WWW}/Docs/" ${UX_W} +!insertmacro CreateSimpleLink "Example scripts" "${PR}\Examples|${WWW}/Examples" ${UX_W} +!insertmacro CreateSimpleLink "Modern UI 2" "${PD}\Modern UI 2\Readme.html" ${UX_W} +!insertmacro CreateSimpleLink "Ultra-Modern UI" "${PD}\UltraModernUI\Readme.html" ${UX_W} + + +!define /ReDef UY ${UY_ROW2} +!insertmacro CreateHeader "Online Help" ${UX_W} +!insertmacro CreateSimpleLink "Developer Center" "${WWW}/Developer_Center" ${UX_W} +!insertmacro CreateSimpleLink "FAQ" "${WWW}/FAQ" ${UX_W} +!insertmacro CreateSimpleLink "Forum" "http://forums.winamp.com/forumdisplay.php?forumid=65" ${UX_W} +;"Project Tracker" "http://sourceforge.net/tracker/?group_id=22049" +!insertmacro CreateSimpleLink "Bug Tracker" "http://sourceforge.net/tracker/?group_id=22049&atid=373085" ${UX_W} +!insertmacro CreateSimpleLink "Stackoverflow" "http://stackoverflow.com/questions/tagged/nsis" ${UX_W} +!insertmacro CreateSimpleLink "Slack collaboration hub" "${WWW}/r/Slack" ${UX_W} +;!insertmacro CreateSimpleLink "IRC channel" "irc://irc.landoleet.org/nsis" ${UX_W} +;"Pastebin" "http://nsis.pastebin.com/index/1FtyKP89" +;"Search" "http://www.google.com/cse/home?cx=005317984255499820329:c_glv1-6a6a" + + +!insertmacro StartColumn 130 +!insertmacro CreateHeader "Plug-ins" ${UX_W} +!macro CreatePluginLink Name Desc Url +!define /ReDef SAVE_UY ${UY} +!insertmacro CreateSimpleLinkHelper "${Name}" "${Url}" ${UX_W} ; AdjustLinkPair will configure this link +!define /ReDef UY ${SAVE_UY} +!insertmacro CreateControl Label "${Name} - ${Desc}" ${UX_W} ${UY_TXT} +Call AdjustLinkPair +!macroend +!insertmacro CreatePluginLink "AdvSplash" "splash with fade in/out" "${PD}\AdvSplash\advsplash.txt" +!insertmacro CreatePluginLink "Banner" "banner with custom text" "${PD}\Banner\Readme.txt" +!insertmacro CreatePluginLink "BgImage" "background image" "${PD}\BgImage\BgImage.txt" +!insertmacro CreatePluginLink "Dialer" "internet connection" "${PD}\Dialer\Dialer.txt" +!insertmacro CreatePluginLink "Math" "math operations" "${PD}\Math\Math.txt" +!insertmacro CreatePluginLink "nsDialogs" "custom wizard pages" "${PD}\nsDialogs\Readme.html" +!insertmacro CreatePluginLink "nsExec" "launch command line tools" "${PD}\nsExec\nsExec.txt" +!insertmacro CreatePluginLink "NSISdl" "download files" "${PD}\NSISdl\Readme.txt" +!insertmacro CreatePluginLink "Splash" "splash screen" "${PD}\Splash\splash.txt" +!insertmacro CreatePluginLink "StartMenu" "Start Menu folder selection" "${PD}\StartMenu\Readme.txt" +!insertmacro CreatePluginLink "System" "Windows API calls" "${PD}\System\System.html" +!insertmacro CreatePluginLink "VPatch" "update existing files" "${PD}\VPatch\Readme.html" + +!insertmacro CreatePluginLink "InstallOptions" "custom wizard pages" "${PD}\InstallOptions\Readme.html" +!insertmacro CreatePluginLink "InstallOptionsEx" "custom wizard pages" "${PD}\InstallOptionsEx\Readme.html" +!insertmacro CreatePluginLink "nsArray" "use arrays in scripts" "${PD}\nsArray\Readme.txt" +!insertmacro CreatePluginLink "SkinnedControls" "skin buttons/scrollbars" "${PD}\SkinnedControls\Readme.html" + + +; --- Footer --- +${NSD_CreateLabel} 0 -22u 100% 1 "" +Pop $0 +${SetCtlColors} $0 000000 000000 ${CB_FOOTERLINE} + +nsDialogs::CreateControl ${__NSD_Label_CLASS} ${__NSD_Label_STYLE}|${SS_CENTERIMAGE}|${SS_NOTIFY} ${__NSD_Label_EXSTYLE} -110u -20u 100% 20u "nsis.sourceforge.net" +Pop $0 +${SetCtlColors} $0 ${CT_FOOTER} transparent transparent +SendMessage $0 ${WM_SETFONT} ${HF_HEADER} 1 +nsDialogs::SetUserData $0 "http://nsis.sourceforge.net" +${NSD_OnClick} $0 OnLinkClick + +nsDialogs::CreateControl ${__NSD_Label_CLASS} ${__NSD_Label_STYLE}|${SS_CENTERIMAGE}|${SS_NOTIFY} ${__NSD_Label_EXSTYLE} 5u -20u 100% 20u "ultramodernui.sourceforge.net" +Pop $0 +${SetCtlColors} $0 ${CT_FOOTER} transparent transparent +SendMessage $0 ${WM_SETFONT} ${HF_HEADER} 1 +nsDialogs::SetUserData $0 "http://ultramodernui.sourceforge.net/" +${NSD_OnClick} $0 OnLinkClick + +nsDialogs::Show +FunctionEnd + +Function OnLinkClick +Pop $1 ; HWND +nsDialogs::GetUserData $1 +Call SplitPipe +Pop $0 ; First URL in UserData from SplitPipe +StrCpy $3 "" +StrCpy $1 $0 4 ; Copy length of ${PD} +${IfThen} $1 == "${PD}" ${|} StrCpy $3 "${PR}\" ${|} +!ifdef QUIT_ON_EXECUTE +System::Call 'USER32::GetKeyState(i0x11)i.r9' ; VK_CONTROL +!endif +ClearErrors +ExecShell "" "$3$0" +Pop $1 ; ... the rest of SplitPipe ... +${If} $1 != "" ; ... might contain a fallback location + StrCpy $0 $1 + StrCpy $3 "" +${ElseIf} $3 != "" ; Local docs path failed, use WWW fallback + StrCpy $3 0 + slashconvloop: + StrCpy $2 $0 1 $3 + ${If} $2 == "\" + StrCpy $2 $0 $3 + IntOp $3 $3 + 1 + StrCpy $0 $0 "" $3 + StrCpy $0 "$2/$0" + ${Else} + IntOp $3 $3 + 1 + ${EndIf} + StrCmp $2 "" 0 slashconvloop + StrCpy $3 "${WWW}/" +${EndIf} +${If} "$3$1" != "" +${AndIf} ${Errors} + ExecShell "" "$3$0" +${EndIf} +${If} ${Errors} + !ifdef QUIT_ON_EXECUTE + StrCpy $9 0 ; Don't allow close + !endif + MessageBox MB_IconStop 'Error: Unable to open "$0"!' +${EndIf} +!ifdef QUIT_ON_EXECUTE +${IfThen} $9 < 0 ${|} SendMessage $hWndParent ${WM_CLOSE} 0 0 ${|} +!endif +FunctionEnd + +Function ConfigureLink +Pop $1 ; HWND +${NSD_OnClick} $1 OnLinkClick +${SetCtlColors} $1 ${CT_LINK} ${CB_PAGE} +${NSD_GetText} $1 $4 +Push $4 +Call SplitPipe +Pop $4 +Pop $2 +${NSD_SetText} $1 $4 +nsDialogs::SetUserData $1 $2 +System::Call 'USER32::GetDC(pr1)p.r3' +SendMessage $1 ${WM_GETFONT} 0 0 $5 +System::Call 'GDI32::SelectObject(pr3,pr5)p.s' +StrLen $5 $4 +System::Call 'GDI32::GetTextExtentPoint32(pr3,tr4,ir5,@r5)' +System::Call '*$5(i.r6)' +System::Call 'GDI32::SelectObject(pr3,ps)' +System::Call 'USER32::ReleaseDC(pr1,pr3)' +System::Call 'USER32::GetWindowRect(pr1,@r3)' +System::Call '*$3(i,i.r5,i,i.r7)' +IntOp $7 $7 - $5 +IntOp $6 $6 + 4 ; Padding for focus rect +System::Call 'USER32::SetWindowPos(pr1,p,i,i,ir6,ir7,i0x16)' +FunctionEnd + +Function AdjustLinkPair +Pop $2 ; Label +${SetCtlColors} $2 ${CT_PAGE} ${CB_PAGE} +Call ConfigureLink +FunctionEnd + +Function SplitPipe +Exch $0 +Push $1 +Push $2 +StrCpy $2 0 +findSep: +StrCpy $1 $0 1 $2 +IntOp $2 $2 + 1 +StrCmp $1 "" +2 +StrCmp $1 "|" "" findSep +StrCpy $1 $0 "" $2 +IntOp $2 $2 - 1 +StrCpy $0 $0 $2 +Pop $2 +Exch $1 +Exch +Exch $0 +FunctionEnd + +Section +SectionEnd + +Page Custom PageCreate PageLeave !pragma warning disable 8000 ; Page instfiles not used \ No newline at end of file diff --git a/Examples/UltraModernUI/NSISUltraModernUI.nsi b/Examples/UltraModernUI/NSISUltraModernUI.nsi index 3cf4552..02a0131 100644 --- a/Examples/UltraModernUI/NSISUltraModernUI.nsi +++ b/Examples/UltraModernUI/NSISUltraModernUI.nsi @@ -1,2258 +1,2258 @@ -; o-----------------------------------------------o -; | NSIS 3.04 + Ultra-Modern User Interface 2.0b5 | -; (-----------------------------------------------) -; | Installer script. | -; | Written by SyperPat | -; o-----------------------------------------------o - -;-------------------------------- -;General - - !define /date NOW "%Y-%m-%d" - !define NAME "UltraModernUI" - - !define UMUI_VERSION "2.0b5" - !define UMUI_VERBUILD "2.0_${NOW}" - - !define VER_MAJOR 3 - !define VER_MINOR 04 - !define VER_REVISION 0 - !define VER_BUILD 0 - !define VER_REV_STR "" - - !define VERSION "${VER_MAJOR}.${VER_MINOR}${VER_REV_STR}" - !if "${NSIS_VERSION}" != "v${VERSION}" - !error "VER_MAJOR, VER_MINOR and VER_REV_STR defines does not match the current NSIS version: ${NSIS_VERSION}" - !endif - - !define /date VERIPV "200.%Y.%m.%d" - VIProductVersion "${VERIPV}" - VIAddVersionKey ProductName "NSIS (Nullsoft Scriptable Install System) with the Ultra-Modern User Interface." - VIAddVersionKey ProductVersion "${UMUI_VERSION}" - VIAddVersionKey Comments "This package also include some plugins used by UMUI to extend the possibilities of NSIS." - VIAddVersionKey LegalTrademarks "NSIS and Ultra-Modern UI are released under the zlib/libpng license: http://nsis.sf.net/License" - VIAddVersionKey LegalCopyright "Copyright Š2005-2019 SuperPat" - VIAddVersionKey FileDescription "NSIS (Nullsoft Scriptable Install System) with the Ultra-Modern User Interface." - VIAddVersionKey FileVersion "${UMUI_VERBUILD}" - - -;-------------------------------- -;Configuration - - ; The name of the installer - Name "NSIS ${VERSION} and Ultra-Modern UI ${UMUI_VERSION}" - - ; The file to write - OutFile "NSIS_${VERSION}_UltraModernUI_${UMUI_VERSION}.exe" - - SetCompressor /FINAL /SOLID lzma - - ;Generate unicode installer - Unicode True - - ;Windows vista compatibility - RequestExecutionLevel admin - - BrandingText "$(^NameDA)" - - ;Default installation folder - InstallDir "$PROGRAMFILES\NSIS" - - -;-------------------------------- -;Include Ultra-Modern UI between others - - !include "UMUI.nsh" - !include "Sections.nsh" - -;-------------------------------- -;Definitions - - !define SHCNE_ASSOCCHANGED 0x8000000 - !define SHCNF_IDLIST 0 - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "blue" - - !define UMUI_USE_INSTALLOPTIONSEX - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - - !define UMUI_USE_ALTERNATE_PAGE ; For Welcome finish abort pages - !define UMUI_USE_UNALTERNATE_PAGE - - !define MUI_COMPONENTSPAGE_SMALLDESC - - !define UMUI_DEFAULT_SHELLVARCONTEXT all - - !define UMUI_ENABLE_DESCRIPTION_TEXT - -;-------------------------------- -;Registry Settings - - !define UMUI_PARAMS_REGISTRY_ROOT HKLM - !define UMUI_PARAMS_REGISTRY_KEY "Software\NSIS" - - !define UMUI_LANGUAGE_REGISTRY_VALUENAME "UMUI_InstallerLanguage" - !define UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME "UMUI_ShellVarContext" - - !define UMUI_UNINSTALLPATH_REGISTRY_VALUENAME "UMUI_UninstallPath" - !define UMUI_UNINSTALL_FULLPATH "$INSTDIR\UninstallUMUI.exe" - !define UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME "UMUI_InstallPath" - - !define UMUI_VERSION_REGISTRY_VALUENAME "UMUI_Version" - !define UMUI_VERBUILD_REGISTRY_VALUENAME "UMUI_VerBuild" - - !define UMUI_PREUNINSTALL_FUNCTION preuninstall_function - - InstallDirRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "" - -;-------------------------------- -;Reserve Files - - !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS - - -;-------------------------------- -;Pages - - !insertmacro UMUI_PAGE_MULTILANGUAGE - - !define UMUI_MAINTENANCEPAGE_MODIFY - !define UMUI_MAINTENANCEPAGE_REPAIR - !define UMUI_MAINTENANCEPAGE_REMOVE - !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP - !insertmacro UMUI_PAGE_MAINTENANCE - - !define UMUI_UPDATEPAGE_REMOVE - !define UMUI_UPDATEPAGE_CONTINUE_SETUP - !insertmacro UMUI_PAGE_UPDATE - - !define UMUI_WELCOMEPAGE_ALTERNATIVETEXT - !insertmacro MUI_PAGE_WELCOME - - !define MUI_LICENSEPAGE_CHECKBOX - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - - !define UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT - !insertmacro UMUI_PAGE_INFORMATION "${NSISDIR}\Docs\UltraModernUI\ReadMe.rtf" - - !define UMUI_SETUPTYPEPAGE_MINIMAL "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" - !define UMUI_SETUPTYPEPAGE_STANDARD "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" - !define UMUI_SETUPTYPEPAGE_COMPLETE "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" - !define UMUI_SETUPTYPEPAGE_DEFAULTCHOICE ${UMUI_COMPLETE} - !define UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME "UMUI_SetupType" - !insertmacro UMUI_PAGE_SETUPTYPE - - !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME "UMUI_InstType" - !define UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME "UMUI_Components" - !insertmacro MUI_PAGE_COMPONENTS - - !insertmacro MUI_PAGE_DIRECTORY - - !define UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME "UMUI_Tasks" - !insertmacro UMUI_PAGE_ADDITIONALTASKS addtasks_function - - !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function - !insertmacro UMUI_PAGE_CONFIRM - - !insertmacro MUI_PAGE_INSTFILES - - !define MUI_FINISHPAGE_SHOWREADME "${NSISDIR}\Docs\UltraModernUI\Readme.html" - !define MUI_FINISHPAGE_LINK "Ultra-Modern UI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_PAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "Ultra-Modern UI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_PAGE_ABORT - - - !insertmacro UMUI_UNPAGE_MULTILANGUAGE - - !define UMUI_MAINTENANCEPAGE_MODIFY - !define UMUI_MAINTENANCEPAGE_REPAIR - !define UMUI_MAINTENANCEPAGE_REMOVE - !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP - !insertmacro UMUI_UNPAGE_MAINTENANCE - - !insertmacro MUI_UNPAGE_WELCOME - - !insertmacro MUI_UNPAGE_CONFIRM - - !insertmacro MUI_UNPAGE_INSTFILES - - !define MUI_FINISHPAGE_LINK "Ultra-Modern UI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_UNPAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "Ultra-Modern UI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_UNPAGE_ABORT - - -;-------------------------------- -;Languages - -; first language is the default language if the system language is not in this list - !insertmacro MUI_LANGUAGE "English" - -; Other UMUI translated languages - !insertmacro MUI_LANGUAGE "Bulgarian" - !insertmacro MUI_LANGUAGE "Czech" - !insertmacro MUI_LANGUAGE "French" - !insertmacro MUI_LANGUAGE "German" - !insertmacro MUI_LANGUAGE "Greek" - !insertmacro MUI_LANGUAGE "Hungarian" - !insertmacro MUI_LANGUAGE "Italian" - !insertmacro MUI_LANGUAGE "Japanese" - !insertmacro MUI_LANGUAGE "Lithuanian" - !insertmacro MUI_LANGUAGE "Polish" - !insertmacro MUI_LANGUAGE "Russian" - !insertmacro MUI_LANGUAGE "Slovenian" - !insertmacro MUI_LANGUAGE "Spanish" - !insertmacro MUI_LANGUAGE "Turkish" -; Other UMUI partially translated language - !insertmacro MUI_LANGUAGE "PortugueseBR" - -; Other untranslated languages but usable even so. - !insertmacro MUI_LANGUAGE "SpanishInternational" - !insertmacro MUI_LANGUAGE "SimpChinese" - !insertmacro MUI_LANGUAGE "TradChinese" - !insertmacro MUI_LANGUAGE "Korean" - !insertmacro MUI_LANGUAGE "Dutch" - !insertmacro MUI_LANGUAGE "Danish" - !insertmacro MUI_LANGUAGE "Swedish" - !insertmacro MUI_LANGUAGE "Norwegian" - !insertmacro MUI_LANGUAGE "NorwegianNynorsk" - !insertmacro MUI_LANGUAGE "Finnish" - !insertmacro MUI_LANGUAGE "Portuguese" - !insertmacro MUI_LANGUAGE "Ukrainian" - !insertmacro MUI_LANGUAGE "Slovak" - !insertmacro MUI_LANGUAGE "Croatian" - !insertmacro MUI_LANGUAGE "Thai" - !insertmacro MUI_LANGUAGE "Romanian" - !insertmacro MUI_LANGUAGE "Latvian" - !insertmacro MUI_LANGUAGE "Macedonian" - !insertmacro MUI_LANGUAGE "Estonian" - !insertmacro MUI_LANGUAGE "Serbian" - !insertmacro MUI_LANGUAGE "SerbianLatin" - !insertmacro MUI_LANGUAGE "Arabic" - !insertmacro MUI_LANGUAGE "Farsi" - !insertmacro MUI_LANGUAGE "Hebrew" - !insertmacro MUI_LANGUAGE "Indonesian" - !insertmacro MUI_LANGUAGE "Mongolian" - !insertmacro MUI_LANGUAGE "Luxembourgish" - !insertmacro MUI_LANGUAGE "Albanian" - !insertmacro MUI_LANGUAGE "Breton" - !insertmacro MUI_LANGUAGE "Belarusian" - !insertmacro MUI_LANGUAGE "Icelandic" - !insertmacro MUI_LANGUAGE "Malay" - !insertmacro MUI_LANGUAGE "Bosnian" - !insertmacro MUI_LANGUAGE "Kurdish" - !insertmacro MUI_LANGUAGE "Irish" - !insertmacro MUI_LANGUAGE "Uzbek" - !insertmacro MUI_LANGUAGE "Galician" - !insertmacro MUI_LANGUAGE "Afrikaans" - !insertmacro MUI_LANGUAGE "Catalan" - !insertmacro MUI_LANGUAGE "Esperanto" - !insertmacro MUI_LANGUAGE "Asturian" - !insertmacro MUI_LANGUAGE "Basque" - !insertmacro MUI_LANGUAGE "Pashto" - !insertmacro MUI_LANGUAGE "ScotsGaelic" - !insertmacro MUI_LANGUAGE "Vietnamese" - !insertmacro MUI_LANGUAGE "Welsh" - !insertmacro MUI_LANGUAGE "Corsican" - !insertmacro MUI_LANGUAGE "Tatar" - -; Other unicode only untranslated languages but usable even so. - !insertmacro MUI_LANGUAGE "Armenian" - !insertmacro MUI_LANGUAGE "Georgian" - !insertmacro MUI_LANGUAGE "Hindi" - - -;-------------------------------- -;Installer Types - -InstType "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" -InstType "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" -InstType "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" - - -;-------------------------------- -;Installer Sections - -SectionGroup /e "NSIS ${VERSION}" SecNSIS - -!macro InstallStub stub - File ..\..\Stubs\${stub}-x86-ansi - File ..\..\Stubs\${stub}-x86-unicode -!macroend - -Section "NSIS Core Files (required)" SecCore - - SetDetailsPrint textonly - DetailPrint "Installing NSIS Core Files..." - SetDetailsPrint listonly - - SectionIn 1 2 3 RO - SetOutPath $INSTDIR - RMDir /r $SMPROGRAMS\NSIS - - IfFileExists $INSTDIR\nsisconf.nsi "" +2 - Rename $INSTDIR\nsisconf.nsi $INSTDIR\nsisconf.nsh - SetOverwrite off - File ..\..\nsisconf.nsh - - SetOverwrite on - File ..\..\makensis.exe - File ..\..\makensisw.exe - File ..\..\COPYING - File ..\..\NSIS.chm - !pragma verifychm "..\..\NSIS.chm" - !if /FileExists "..\..\NSIS.exe" - !if /FileExists "..\..\NSIS.exe.manifest" - File "..\..\NSIS.exe.manifest" - !endif - !else - !makensis '-v2 "..\NSISMenu.nsi" "-XOutFile ..\..\NSIS.exe"' = 0 - !endif - File ..\..\NSIS.exe - - SetOutPath $INSTDIR\Bin - File ..\..\Bin\makensis.exe - !if /FileExists "..\..\Bin\zlib1.dll" - File ..\..\Bin\zlib1.dll - !else - File ..\..\Bin\zlib.dll - !endif - - SetOutPath $INSTDIR\Stubs - File ..\..\Stubs\uninst - !insertmacro InstallStub bzip2 - !insertmacro InstallStub bzip2_solid - !insertmacro InstallStub lzma - !insertmacro InstallStub lzma_solid - !insertmacro InstallStub zlib - !insertmacro InstallStub zlib_solid - - - SetOutPath $INSTDIR\Include - File ..\..\Include\WinMessages.nsh - File ..\..\Include\Sections.nsh - File ..\..\Include\Library.nsh - File ..\..\Include\UpgradeDLL.nsh - File ..\..\Include\LogicLib.nsh - File ..\..\Include\StrFunc.nsh - File ..\..\Include\Colors.nsh - File ..\..\Include\FileFunc.nsh - File ..\..\Include\TextFunc.nsh - File ..\..\Include\WordFunc.nsh - File ..\..\Include\WinVer.nsh - File ..\..\Include\x64.nsh - File ..\..\Include\Memento.nsh - File ..\..\Include\LangFile.nsh - File ..\..\Include\InstallOptions.nsh - File ..\..\Include\MultiUser.nsh - File ..\..\Include\VB6RunTime.nsh - File ..\..\Include\Util.nsh - File ..\..\Include\WinCore.nsh - - SetOutPath $INSTDIR\Include\Win - File ..\..\Include\Win\WinDef.nsh - File ..\..\Include\Win\WinError.nsh - File ..\..\Include\Win\WinNT.nsh - File ..\..\Include\Win\WinUser.nsh - File ..\..\Include\Win\Propkey.nsh - - SetOutPath $INSTDIR\Docs\StrFunc - File ..\..\Docs\StrFunc\StrFunc.txt - - SetOutPath $INSTDIR\Docs\MultiUser - File ..\..\Docs\MultiUser\Readme.html - - SetOutPath $INSTDIR\Docs\makensisw - File ..\..\Docs\makensisw\*.txt - - !if /FileExists "..\..\Menu\index.html" - SetOutPath $INSTDIR\Menu - File ..\..\Menu\*.html - SetOutPath $INSTDIR\Menu\images - File ..\..\Menu\images\header.gif - File ..\..\Menu\images\line.gif - File ..\..\Menu\images\site.gif - !endif - - Delete $INSTDIR\makensis.htm - Delete $INSTDIR\Docs\*.html - Delete $INSTDIR\Docs\style.css - RMDir $INSTDIR\Docs - - SetOutPath $INSTDIR\Bin - !if /FileExists "..\..\Bin\LibraryLocal.exe" - File ..\..\Bin\LibraryLocal.exe - !endif - !if /FileExists "..\..\Bin\RegTool-x86.bin" - File ..\..\Bin\RegTool-x86.bin - !else - File ..\..\Bin\RegTool.bin - !endif - - CreateDirectory $INSTDIR\Plugins\x86-ansi - CreateDirectory $INSTDIR\Plugins\x86-unicode - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\TypeLib.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\TypeLib.dll - - ReadRegStr $R0 HKCR ".nsi" "" - StrCmp $R0 "NSISFile" 0 +2 - DeleteRegKey HKCR "NSISFile" - - WriteRegStr HKCR ".nsi" "" "NSIS.Script" - WriteRegStr HKCR "NSIS.Script" "" "NSIS Script File" - WriteRegStr HKCR "NSIS.Script\DefaultIcon" "" "$INSTDIR\makensisw.exe,1" - ReadRegStr $R0 HKCR "NSIS.Script\shell\open\command" "" - StrCmp $R0 "" 0 no_nsiopen - WriteRegStr HKCR "NSIS.Script\shell" "" "open" - WriteRegStr HKCR "NSIS.Script\shell\open\command" "" 'notepad.exe "%1"' - no_nsiopen: - WriteRegStr HKCR "NSIS.Script\shell\compile" "" "Compile NSIS Script" - WriteRegStr HKCR "NSIS.Script\shell\compile\command" "" '"$INSTDIR\makensisw.exe" "%1"' - WriteRegStr HKCR "NSIS.Script\shell\compile-compressor" "" "Compile NSIS Script (Choose Compressor)" - WriteRegStr HKCR "NSIS.Script\shell\compile-compressor\command" "" '"$INSTDIR\makensisw.exe" /ChooseCompressor "%1"' - - ReadRegStr $R0 HKCR ".nsh" "" - StrCmp $R0 "NSHFile" 0 +2 - DeleteRegKey HKCR "NSHFile" - - WriteRegStr HKCR ".nsh" "" "NSIS.Header" - WriteRegStr HKCR "NSIS.Header" "" "NSIS Header File" - WriteRegStr HKCR "NSIS.Header\DefaultIcon" "" "$INSTDIR\makensisw.exe,1" - ReadRegStr $R0 HKCR "NSIS.Header\shell\open\command" "" - StrCmp $R0 "" 0 no_nshopen - WriteRegStr HKCR "NSIS.Header\shell" "" "open" - WriteRegStr HKCR "NSIS.Header\shell\open\command" "" 'notepad.exe "%1"' - no_nshopen: - - System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' - -SectionEnd - -Section "Script Examples" SecExample - - SetDetailsPrint textonly - DetailPrint "Installing Script Examples..." - SetDetailsPrint listonly - - SectionIn 2 3 - SetOutPath $INSTDIR\Examples - File ..\..\Examples\makensis.nsi - File ..\..\Examples\example1.nsi - File ..\..\Examples\example2.nsi - File ..\..\Examples\viewhtml.nsi - File ..\..\Examples\waplugin.nsi - File ..\..\Examples\bigtest.nsi - File ..\..\Examples\primes.nsi - File ..\..\Examples\rtest.nsi - File ..\..\Examples\gfx.nsi - File ..\..\Examples\one-section.nsi - File ..\..\Examples\languages.nsi - File ..\..\Examples\Library.nsi - File ..\..\Examples\VersionInfo.nsi - File ..\..\Examples\UserVars.nsi - File ..\..\Examples\LogicLib.nsi - File ..\..\Examples\silent.nsi - File ..\..\Examples\StrFunc.nsi - File ..\..\Examples\FileFunc.nsi - File ..\..\Examples\FileFunc.ini - File ..\..\Examples\FileFuncTest.nsi - File ..\..\Examples\TextFunc.nsi - File ..\..\Examples\TextFunc.ini - File ..\..\Examples\TextFuncTest.nsi - File ..\..\Examples\WordFunc.nsi - File ..\..\Examples\WordFunc.ini - File ..\..\Examples\WordFuncTest.nsi - File ..\..\Examples\Memento.nsi - File /nonfatal ..\..\Examples\unicode.nsi - File /nonfatal ..\..\Examples\NSISMenu.nsi - - SetOutPath $INSTDIR\Examples\Plugin - File ..\..\Examples\Plugin\exdll.c - File ..\..\Examples\Plugin\exdll.dpr - File ..\..\Examples\Plugin\exdll.dsp - File ..\..\Examples\Plugin\exdll.dsw - File ..\..\Examples\Plugin\exdll_with_unit.dpr - File ..\..\Examples\Plugin\exdll-vs2008.sln - File ..\..\Examples\Plugin\exdll-vs2008.vcproj - File ..\..\Examples\Plugin\extdll.inc - File ..\..\Examples\Plugin\nsis.pas - - SetOutPath $INSTDIR\Examples\Plugin\nsis - File ..\..\Examples\Plugin\nsis\pluginapi.h - File /nonfatal ..\..\Examples\Plugin\nsis\pluginapi*.lib - File ..\..\Examples\Plugin\nsis\api.h - File ..\..\Examples\Plugin\nsis\nsis_tchar.h - -SectionEnd - -SectionGroup "User Interfaces" SecInterfaces - -Section "Modern User Interface" SecInterfacesModernUI - - SetDetailsPrint textonly - DetailPrint "Installing User Interfaces | Modern User Interface..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath "$INSTDIR\Examples\Modern UI" - File "..\..\Examples\Modern UI\Basic.nsi" - File "..\..\Examples\Modern UI\HeaderBitmap.nsi" - File "..\..\Examples\Modern UI\MultiLanguage.nsi" - File "..\..\Examples\Modern UI\StartMenu.nsi" - File "..\..\Examples\Modern UI\WelcomeFinish.nsi" - - SetOutPath "$INSTDIR\Contrib\Modern UI" - File "..\..\Contrib\Modern UI\System.nsh" - File "..\..\Contrib\Modern UI\ioSpecial.ini" - - SetOutPath "$INSTDIR\Docs\Modern UI" - File "..\..\Docs\Modern UI\Readme.html" - File "..\..\Docs\Modern UI\Changelog.txt" - File "..\..\Docs\Modern UI\License.txt" - - SetOutPath "$INSTDIR\Docs\Modern UI\images" - File "..\..\Docs\Modern UI\images\header.gif" - File "..\..\Docs\Modern UI\images\screen1.png" - File "..\..\Docs\Modern UI\images\screen2.png" - File "..\..\Docs\Modern UI\images\open.gif" - File "..\..\Docs\Modern UI\images\closed.gif" - - SetOutPath $INSTDIR\Contrib\UIs - File "..\..\Contrib\UIs\modern.exe" - File "..\..\Contrib\UIs\modern_headerbmp.exe" - File "..\..\Contrib\UIs\modern_headerbmpr.exe" - File "..\..\Contrib\UIs\modern_nodesc.exe" - File "..\..\Contrib\UIs\modern_smalldesc.exe" - - SetOutPath $INSTDIR\Include - File "..\..\Include\MUI.nsh" - - SetOutPath "$INSTDIR\Contrib\Modern UI 2" - File "..\..\Contrib\Modern UI 2\Deprecated.nsh" - File "..\..\Contrib\Modern UI 2\Interface.nsh" - File "..\..\Contrib\Modern UI 2\Localization.nsh" - File "..\..\Contrib\Modern UI 2\MUI2.nsh" - File "..\..\Contrib\Modern UI 2\Pages.nsh" - - SetOutPath "$INSTDIR\Contrib\Modern UI 2\Pages" - File "..\..\Contrib\Modern UI 2\Pages\Components.nsh" - File "..\..\Contrib\Modern UI 2\Pages\Directory.nsh" - File "..\..\Contrib\Modern UI 2\Pages\Finish.nsh" - File "..\..\Contrib\Modern UI 2\Pages\InstallFiles.nsh" - File "..\..\Contrib\Modern UI 2\Pages\License.nsh" - File "..\..\Contrib\Modern UI 2\Pages\StartMenu.nsh" - File "..\..\Contrib\Modern UI 2\Pages\UninstallConfirm.nsh" - File "..\..\Contrib\Modern UI 2\Pages\Welcome.nsh" - - SetOutPath "$INSTDIR\Docs\Modern UI 2" - File "..\..\Docs\Modern UI 2\Readme.html" - File "..\..\Docs\Modern UI 2\License.txt" - - SetOutPath "$INSTDIR\Docs\Modern UI 2\images" - File "..\..\Docs\Modern UI 2\images\header.gif" - File "..\..\Docs\Modern UI 2\images\screen1.png" - File "..\..\Docs\Modern UI 2\images\screen2.png" - File "..\..\Docs\Modern UI 2\images\open.gif" - File "..\..\Docs\Modern UI 2\images\closed.gif" - - SetOutPath $INSTDIR\Include - File "..\..\Include\MUI2.nsh" - -SectionEnd - -Section "Default User Interface" SecInterfacesDefaultUI - - SetDetailsPrint textonly - DetailPrint "Installing User Interfaces | Default User Interface..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath "$INSTDIR\Contrib\UIs" - File "..\..\Contrib\UIs\default.exe" - -SectionEnd - -Section "Tiny User Interface" SecInterfacesTinyUI - - SetDetailsPrint textonly - DetailPrint "Installing User Interfaces | Tiny User Interface..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath "$INSTDIR\Contrib\UIs" - File "..\..\Contrib\UIs\sdbarker_tiny.exe" - -SectionEnd - -SectionGroupEnd - -Section "Graphics" SecGraphics - - SetDetailsPrint textonly - DetailPrint "Installing Graphics..." - SetDetailsPrint listonly - - SectionIn 2 3 - - RMDir $INSTDIR\Contrib\Icons - SetOutPath $INSTDIR\Contrib\Graphics - File /r "..\..\Contrib\Graphics\*.ico" - File /r "..\..\Contrib\Graphics\*.bmp" -SectionEnd - -Section "Language Files" SecLangFiles - - SetDetailsPrint textonly - DetailPrint "Installing Language Files..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath "$INSTDIR\Contrib\Language files" - File "..\..\Contrib\Language files\*.nlf" - - SetOutPath $INSTDIR\Bin - File ..\..\Bin\MakeLangID.exe - - !insertmacro SectionFlagIsSet ${SecInterfacesModernUI} ${SF_SELECTED} mui nomui - mui: - SetOutPath "$INSTDIR\Contrib\Language files" - File "..\..\Contrib\Language files\*.nsh" - nomui: - -SectionEnd - -SectionGroup "Tools" SecTools - -Section "Zip2Exe" SecToolsZ2E - - SetDetailsPrint textonly - DetailPrint "Installing Tools | Zip2Exe..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Bin - File ..\..\Bin\zip2exe.exe - SetOutPath $INSTDIR\Contrib\zip2exe - File ..\..\Contrib\zip2exe\Base.nsh - File ..\..\Contrib\zip2exe\Modern.nsh - File ..\..\Contrib\zip2exe\Classic.nsh - -SectionEnd - -SectionGroupEnd - -SectionGroup "Plug-ins" SecPluginsPlugins - -Section "Banner plugin" SecPluginsBanner - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | Banner..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\Banner.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\Banner.dll - SetOutPath $INSTDIR\Docs\Banner - File ..\..\Docs\Banner\Readme.txt - SetOutPath $INSTDIR\Examples\Banner - File ..\..\Examples\Banner\Example.nsi -SectionEnd - -Section "Language DLL plugin" SecPluginsLangDLL - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | Language DLL..." - SetDetailsPrint listonly - - SectionIn 2 3 - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\LangDLL.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\LangDLL.dll -SectionEnd - -Section "nsExec plugin" SecPluginsnsExec - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | nsExec..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\nsExec.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\nsExec.dll - SetOutPath $INSTDIR\Docs\nsExec - File ..\..\Docs\nsExec\nsExec.txt - SetOutPath $INSTDIR\Examples\nsExec - File ..\..\Examples\nsExec\test.nsi -SectionEnd - -Section "Splash plugin" SecPluginsSplash - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | Splash..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\splash.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\splash.dll - SetOutPath $INSTDIR\Docs\Splash - File ..\..\Docs\Splash\splash.txt - SetOutPath $INSTDIR\Examples\Splash - File ..\..\Examples\Splash\Example.nsi -SectionEnd - -Section "AdvSplash plugin" SecPluginsSplashT - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | AdvSplash..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\advsplash.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\advsplash.dll - SetOutPath $INSTDIR\Docs\AdvSplash - File ..\..\Docs\AdvSplash\advsplash.txt - SetOutPath $INSTDIR\Examples\AdvSplash - File ..\..\Examples\AdvSplash\Example.nsi -SectionEnd - -Section "BgImage plugin" SecPluginsBgImage - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | BgImage..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\BgImage.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\BgImage.dll - SetOutPath $INSTDIR\Docs\BgImage - File ..\..\Docs\BgImage\BgImage.txt - SetOutPath $INSTDIR\Examples\BgImage - File ..\..\Examples\BgImage\Example.nsi -SectionEnd - -Section "InstallOptions plugin" SecPluginsIO - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | InstallOptions..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\InstallOptions.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\InstallOptions.dll - SetOutPath $INSTDIR\Docs\InstallOptions - File ..\..\Docs\InstallOptions\Readme.html - File ..\..\Docs\InstallOptions\Changelog.txt - SetOutPath $INSTDIR\Examples\InstallOptions - File ..\..\Examples\InstallOptions\test.ini - File ..\..\Examples\InstallOptions\test.nsi - File ..\..\Examples\InstallOptions\testimgs.ini - File ..\..\Examples\InstallOptions\testimgs.nsi - File ..\..\Examples\InstallOptions\testlink.ini - File ..\..\Examples\InstallOptions\testlink.nsi - File ..\..\Examples\InstallOptions\testnotify.ini - File ..\..\Examples\InstallOptions\testnotify.nsi -SectionEnd - -Section "Math plugin" SecPluginsMath - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | Math..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\Math.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\Math.dll - SetOutPath $INSTDIR\Docs\Math - File ..\..\Docs\Math\Math.txt - SetOutPath $INSTDIR\Examples\Math - File ..\..\Examples\Math\math.nsi - File ..\..\Examples\Math\mathtest.txt - File ..\..\Examples\Math\mathtest.nsi - File ..\..\Examples\Math\mathtest.ini - -SectionEnd - -Section "NSISdl plugin" SecPluginsNSISDL - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | NSISdl..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\nsisdl.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\nsisdl.dll - SetOutPath $INSTDIR\Docs\NSISdl - File ..\..\Docs\NSISdl\ReadMe.txt - File ..\..\Docs\NSISdl\License.txt -SectionEnd - -Section "System plugin" SecPluginsSystem - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | System..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\System.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\System.dll - SetOutPath $INSTDIR\Docs\System - File ..\..\Docs\System\System.html - File ..\..\Docs\System\WhatsNew.txt - SetOutPath $INSTDIR\Examples\System - File ..\..\Examples\System\Resource.dll - File ..\..\Examples\System\SysFunc.nsh - File ..\..\Examples\System\System.nsh - File ..\..\Examples\System\System.nsi -SectionEnd - -Section "nsDialogs plugin" SecPluginsDialogs - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | nsDialogs..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\nsDialogs.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\nsDialogs.dll - SetOutPath $INSTDIR\Examples\nsDialogs - File ..\..\Examples\nsDialogs\example.nsi - File ..\..\Examples\nsDialogs\InstallOptions.nsi - File ..\..\Examples\nsDialogs\timer.nsi - File ..\..\Examples\nsDialogs\welcome.nsi - SetOutPath $INSTDIR\Include - File ..\..\Include\nsDialogs.nsh - SetOutPath $INSTDIR\Docs\nsDialogs - File ..\..\Docs\nsDialogs\Readme.html - -SectionEnd - -Section "StartMenu plugin" SecPluginsStartMenu - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | StartMenu..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\StartMenu.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\StartMenu.dll - SetOutPath $INSTDIR\Docs\StartMenu - File ..\..\Docs\StartMenu\Readme.txt - SetOutPath $INSTDIR\Examples\StartMenu - File ..\..\Examples\StartMenu\Example.nsi -SectionEnd - -Section "UserInfo plugin" SecPluginsUserInfo - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | UserInfo..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\UserInfo.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\UserInfo.dll - SetOutPath $INSTDIR\Examples\UserInfo - File ..\..\Examples\UserInfo\UserInfo.nsi -SectionEnd - -Section "Dialer plugin" SecPluginsDialer - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | Dialer..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\Dialer.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\Dialer.dll - SetOutPath $INSTDIR\Docs\Dialer - File ..\..\Docs\Dialer\Dialer.txt -SectionEnd - -Section "VPatch plugin" SecPluginsVPatch - - SetDetailsPrint textonly - DetailPrint "Installing Plug-ins | VPatch..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File ..\..\Plugins\x86-ansi\VPatch.dll - SetOutPath $INSTDIR\Plugins\x86-unicode - File ..\..\Plugins\x86-unicode\VPatch.dll - SetOutPath $INSTDIR\Examples\VPatch - File ..\..\Examples\VPatch\example.nsi - File ..\..\Examples\VPatch\oldfile.txt - File ..\..\Examples\VPatch\newfile.txt - File ..\..\Examples\VPatch\patch.pat - SetOutPath $INSTDIR\Docs\VPatch - File ..\..\Docs\VPatch\Readme.html - SetOutPath $INSTDIR\Bin - File ..\..\Bin\GenPat.exe - SetOutPath $INSTDIR\Include - File ..\..\Include\VPatchLib.nsh -SectionEnd - -SectionGroupEnd - -Section -post - - ; When Modern UI is installed: - ; * Always install the English language file - ; * Always install default icons / bitmaps - - !insertmacro SectionFlagIsSet ${SecInterfacesModernUI} ${SF_SELECTED} mui nomui - - mui: - - SetDetailsPrint textonly - DetailPrint "Configuring Modern UI..." - SetDetailsPrint listonly - - !insertmacro SectionFlagIsSet ${SecLangFiles} ${SF_SELECTED} langfiles nolangfiles - - nolangfiles: - - SetOutPath "$INSTDIR\Contrib\Language files" - File "..\..\Contrib\Language files\English.nlf" - SetOutPath "$INSTDIR\Contrib\Language files" - File "..\..\Contrib\Language files\English.nsh" - - langfiles: - - !insertmacro SectionFlagIsSet ${SecGraphics} ${SF_SELECTED} graphics nographics - - nographics: - - SetOutPath $INSTDIR\Contrib\Graphics - SetOutPath $INSTDIR\Contrib\Graphics\Checks - File "..\..\Contrib\Graphics\Checks\modern.bmp" - SetOutPath $INSTDIR\Contrib\Graphics\Icons - File "..\..\Contrib\Graphics\Icons\modern-install.ico" - File "..\..\Contrib\Graphics\Icons\modern-uninstall.ico" - SetOutPath $INSTDIR\Contrib\Graphics\Header - File "..\..\Contrib\Graphics\Header\nsis.bmp" - SetOutPath $INSTDIR\Contrib\Graphics\Wizard - File "..\..\Contrib\Graphics\Wizard\win.bmp" - - graphics: - - nomui: - - SetDetailsPrint textonly - DetailPrint "Creating Registry Keys..." - SetDetailsPrint listonly - - SetOutPath $INSTDIR - - WriteRegStr HKLM "Software\NSIS" "" $INSTDIR -!ifdef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD - WriteRegDword HKLM "Software\NSIS" "VersionMajor" "${VER_MAJOR}" - WriteRegDword HKLM "Software\NSIS" "VersionMinor" "${VER_MINOR}" - WriteRegDword HKLM "Software\NSIS" "VersionRevision" "${VER_REVISION}" - WriteRegDword HKLM "Software\NSIS" "VersionBuild" "${VER_BUILD}" -!endif - - WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "UninstallString" "$INSTDIR\uninst-nsis.exe" - ;WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "QuietUninstallString" '"$INSTDIR\uninst-nsis.exe" /S' ; Ideally WACK would use this - WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "InstallLocation" "$INSTDIR" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "DisplayName" "Nullsoft Install System" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "DisplayIcon" "$INSTDIR\NSIS.exe,0" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "DisplayVersion" "${VERSION}" -!ifdef VER_MAJOR & VER_MINOR & VER_REVISION - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "VersionMajor" "${VER_MAJOR}" ; Required by WACK - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "VersionMinor" "${VER_MINOR}.${VER_REVISION}" ; Required by WACK -!endif - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "Publisher" "Nullsoft and Contributors" ; Required by WACK - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "URLInfoAbout" "http://nsis.sourceforge.net/" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "HelpLink" "http://nsis.sourceforge.net/Support" - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "NoModify" "1" - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "NoRepair" "1" - - SetOutPath "$INSTDIR" - File ..\..\uninst-nsis.exe - - SetDetailsPrint both - -SectionEnd - -SectionGroupEnd - -;-------------------------------- -; UMUI Sections - -SectionGroup /e "NSIS Ultra-Modern User Interface ${UMUI_VERSION}" SecUMUIG - -Section "NSIS Ultra-Modern User Interface Core Files (required)" SecUMUI - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI..." - SetDetailsPrint listonly - - SectionIn RO - - SectionIn 1 2 3 - - SetOutPath "$INSTDIR\" - !if ! /FileExists "..\..\NSISUMUI.exe" - !makensis '-v2 "NSISUMUIMenu.nsi" "-XOutFile ..\..\NSISUMUI.exe"' = 0 - !endif - File ..\..\NSISUMUI.exe - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\" - File "..\..\Contrib\UltraModernUI\UMUI.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Ini" - File "..\..\Contrib\UltraModernUI\Ini\*.ini" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Language files\" - File "..\..\Contrib\UltraModernUI\Language files\*.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File /r "..\..\Contrib\UltraModernUI\BGSkins\" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\blue.nsh" - File "..\..\Contrib\UltraModernUI\Skins\blue2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\blue\" - File "..\..\Contrib\UltraModernUI\Skins\blue\*.bmp" - - SetOutPath "$INSTDIR\Docs\UltraModernUI\" - File "..\..\Docs\UltraModernUI\*.*" - SetOutPath "$INSTDIR\Docs\UltraModernUI\images\" - File "..\..\Docs\UltraModernUI\images\*.png" - File "..\..\Docs\UltraModernUI\images\*.gif" - - SetOutPath "$INSTDIR\Examples\UltraModernUI\" - File "*.nsi" - File "*.ini" - File "*.txt" - - SetOutPath "$INSTDIR\Contrib\UIs\UltraModernUI\" - File "..\..\Contrib\UIs\UltraModernUI\*.exe" - - SetOutPath "$INSTDIR\Contrib\Graphics\UltraModernUI\" - File "..\..\Contrib\Graphics\UltraModernUI\*.*" - - SetOutPath "$INSTDIR\Include\" - File "..\..\Include\UMUI.nsh" - File "..\..\Include\MUIEx.nsh" - - - ;CreateShortCuts - ; only if all user is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL - SetShellVarContext all - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if current user is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT - SetShellVarContext current - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - - SetOutPath "$INSTDIR\" - CreateShortCut "$SMPROGRAMS\NSIS.lnk" "$INSTDIR\NSISUMUI.exe" - - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP - CreateShortCut "$DESKTOP\NSIS.lnk" "$INSTDIR\NSISUMUI.exe" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - - - ;Create uninstaller - WriteUninstaller "$INSTDIR\UninstallUMUI.exe" - - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayName" "$(^Name)" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayIcon" "$INSTDIR\UninstallUMUI.exe,0" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString" "$INSTDIR\UninstallUMUI.exe" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "Publisher" "SuperPat" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "HelpLink" "http://ultramodernui.sourceforge.net/" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "URLInfoAbout" "http://ultramodernui.sourceforge.net/" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "URLUpdateInfo" "http://ultramodernui.sourceforge.net/" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "ModifyPath" '"$INSTDIR\UninstallUMUI.exe" /modify' - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayVersion" "${UMUI_VERSION}" - -SectionEnd - -Section "Skins for Ultra-Modern UI" SecSkins - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Skins..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\brown.nsh" - File "..\..\Contrib\UltraModernUI\Skins\brown2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\brown\" - File "..\..\Contrib\UltraModernUI\Skins\brown\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\darkgreen.nsh" - File "..\..\Contrib\UltraModernUI\Skins\darkgreen2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen\" - File "..\..\Contrib\UltraModernUI\Skins\darkgreen\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\gray.nsh" - File "..\..\Contrib\UltraModernUI\Skins\gray2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\gray\" - File "..\..\Contrib\UltraModernUI\Skins\gray\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\green.nsh" - File "..\..\Contrib\UltraModernUI\Skins\green2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\green\" - File "..\..\Contrib\UltraModernUI\Skins\green\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\purple.nsh" - File "..\..\Contrib\UltraModernUI\Skins\purple2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\purple\" - File "..\..\Contrib\UltraModernUI\Skins\purple\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\red.nsh" - File "..\..\Contrib\UltraModernUI\Skins\red2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\red\" - File "..\..\Contrib\UltraModernUI\Skins\red\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftBlue.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue\" - File "..\..\Contrib\UltraModernUI\Skins\SoftBlue\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftBrown.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown\" - File "..\..\Contrib\UltraModernUI\Skins\SoftBrown\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftGray.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray\" - File "..\..\Contrib\UltraModernUI\Skins\SoftGray\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftGreen.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen\" - File "..\..\Contrib\UltraModernUI\Skins\SoftGreen\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftPurple.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple\" - File "..\..\Contrib\UltraModernUI\Skins\SoftPurple\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftRed.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed\" - File "..\..\Contrib\UltraModernUI\Skins\SoftRed\*.bmp" - -SectionEnd - -Section "BackGround Skins for Ultra-Modern UI" SecBGSkins - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | BackGround Skins..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\blue.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\blue2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue\" - File "..\..\Contrib\UltraModernUI\BGSkins\blue\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\brown.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\brown2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown\" - File "..\..\Contrib\UltraModernUI\BGSkins\brown\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen\" - File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\gray.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\gray2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray\" - File "..\..\Contrib\UltraModernUI\BGSkins\gray\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\green.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\green2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\green\" - File "..\..\Contrib\UltraModernUI\BGSkins\green\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\purple.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\purple2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple\" - File "..\..\Contrib\UltraModernUI\BGSkins\purple\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\red.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\red2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\red\" - File "..\..\Contrib\UltraModernUI\BGSkins\red\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftBlue.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftBlue\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftBrown.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftBrown\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftGray.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftGray\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftGreen.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftGreen\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftPurple.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftPurple\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftRed.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftRed\*.bmp" - -SectionEnd - - -SectionGroup /e "Plugins" SecGroupPlugins - - Section "SkinnedControls plugin version 1.4" SecSkinnedControls - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | SkinnedControls..." - SetDetailsPrint listonly - - SectionIn RO - - SectionIn 1 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File "..\..\Plugins\x86-ansi\SkinnedControls.dll" - - SetOutPath $INSTDIR\Plugins\x86-unicode - File "..\..\Plugins\x86-unicode\SkinnedControls.dll" - - SetOutPath $INSTDIR\Examples\SkinnedControls - File "..\SkinnedControls\*.nsi" - - SetOutPath $INSTDIR\Contrib\SkinnedControls\skins - File "..\..\Contrib\SkinnedControls\skins\*.bmp" - - SetOutPath $INSTDIR\Contrib\UIs - File "..\..\Contrib\UIs\modern_sb.exe" - File "..\..\Contrib\UIs\default_sb.exe" - - SetOutPath $INSTDIR\Docs\SkinnedControls - File "..\..\Docs\SkinnedControls\*.*" - SetOutPath "$INSTDIR\Docs\SkinnedControls\images\" - File "..\..\Docs\SkinnedControls\images\*.png" - File "..\..\Docs\SkinnedControls\images\*.gif" - - SectionEnd - - Section "SkinnedControls plugin Sources Code" SecSkinnedControlsSources - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | SkinnedControls Soucres Code..." - SetDetailsPrint listonly - - SectionIn 3 - - SetOutPath $INSTDIR\Contrib\SkinnedControls - File "..\..\Contrib\SkinnedControls\*.h" - File "..\..\Contrib\SkinnedControls\*.c" - File "..\..\Contrib\SkinnedControls\SkinnedControls.sln" - File "..\..\Contrib\SkinnedControls\SkinnedControls.vcproj" - SetOutPath $INSTDIR\Contrib\SkinnedControls\coolsb - File "..\..\Contrib\SkinnedControls\coolsb\*.h" - File "..\..\Contrib\SkinnedControls\coolsb\*.c" - File "..\..\Contrib\SkinnedControls\coolsb\detours.lib" - File "..\..\Contrib\SkinnedControls\coolsb\coolsb.vcproj" - - SectionEnd - - - Section "InstallOptionsEx plugin version 2.4.5 beta 3" SecInstallOptionsEx - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | InstallOptionsEx..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File "..\..\Plugins\x86-ansi\InstallOptionsEx.dll" - - SetOutPath $INSTDIR\Plugins\x86-unicode - File "..\..\Plugins\x86-unicode\InstallOptionsEx.dll" - - SetOutPath $INSTDIR\Examples\InstallOptionsEx - File "..\InstallOptionsEx\*.nsi" - File "..\InstallOptionsEx\*.ini" - - SetOutPath $INSTDIR\Docs\InstallOptionsEx - File "..\..\Docs\InstallOptionsEx\*.*" - - SectionEnd - - Section "InstallOptionsEx plugin Sources Code" SecInstallOptionsExSources - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | InstallOptionsEx Soucres Code..." - SetDetailsPrint listonly - - SectionIn 3 - - SetOutPath $INSTDIR\Contrib\InstallOptionsEx - File "..\..\Contrib\InstallOptionsEx\*.cpp" - File "..\..\Contrib\InstallOptionsEx\*.c" - File "..\..\Contrib\InstallOptionsEx\*.h" - File "..\..\Contrib\InstallOptionsEx\ioptdll.rc" - File "..\..\Contrib\InstallOptionsEx\io.sln" - File "..\..\Contrib\InstallOptionsEx\io.vcproj" - SetOutPath $INSTDIR\Contrib\InstallOptionsEx\Controls - File "..\..\Contrib\InstallOptionsEx\Controls\*.h" - - SectionEnd - - - Section "nsArray plugin version 1.1.1.7" SecnsArray - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | nsArray..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File "..\..\Plugins\x86-ansi\nsArray.dll" - - SetOutPath $INSTDIR\Plugins\x86-unicode - File "..\..\Plugins\x86-unicode\nsArray.dll" - - SetOutPath $INSTDIR\Include - File "..\..\Include\nsArray.nsh" - - SetOutPath $INSTDIR\Docs\nsArray - File "..\..\Docs\nsArray\*.*" - - SetOutPath $INSTDIR\Examples\nsArray - File "..\nsArray\*.nsi" - - SectionEnd - - Section "nsArray plugin Sources Code" SecnsArraySources - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | nsArray Soucres Code..." - SetDetailsPrint listonly - - SectionIn 3 - - SetOutPath $INSTDIR\Contrib\nsArray - File "..\..\Contrib\nsArray\*.*" - - SectionEnd - -SectionGroupEnd - -SectionGroupEnd - - -;-------------------------------- -;Uninstall Section(s) - -!macro removeUMUIfiles - - ;uninstall SkinnedControls Plugin - Delete "$INSTDIR\Plugins\SkinnedControls.dll" - Delete "$INSTDIR\Plugins\x86-ansi\SkinnedControls.dll" - Delete "$INSTDIR\Plugins\x86-unicode\SkinnedControls.dll" - Delete "$INSTDIR\Contrib\UIs\modern_sb.exe" - Delete "$INSTDIR\Contrib\UIs\default_sb.exe" - RMDir /r "$INSTDIR\Contrib\SkinnedControls" - Delete "$INSTDIR\Docs\SkinnedControls\*.*" - RMDir "$INSTDIR\Docs\SkinnedControls" - Delete "$INSTDIR\Examples\SkinnedControls\*.nsi" - RMDir "$INSTDIR\Examples\SkinnedControls" - - ;uninstall InstallOptionsEx Plugin - Delete "$INSTDIR\Plugins\InstallOptionsEx*.dll" - Delete "$INSTDIR\Plugins\x86-ansi\InstallOptionsEx.dll" - Delete "$INSTDIR\Plugins\x86-unicode\InstallOptionsEx.dll" - RMDir /r "$INSTDIR\Contrib\InstallOptionsEx" - Delete "$INSTDIR\Docs\InstallOptionsEx\*.*" - RMDir "$INSTDIR\Docs\InstallOptionsEx" - Delete "$INSTDIR\Examples\InstallOptionsEx\*.*" - RMDir "$INSTDIR\Examples\InstallOptionsEx" - - ;uninstall nsArray Plugin - Delete "$INSTDIR\Plugins\x86-ansi\nsArray.dll" - Delete "$INSTDIR\Plugins\x86-unicode\nsArray.dll" - Delete "$INSTDIR\Include\nsArray.nsh" - Delete "$INSTDIR\Contrib\nsArray\*.*" - RMDir "$INSTDIR\Contrib\nsArray" - Delete "$INSTDIR\Docs\nsArray\*.*" - RMDir "$INSTDIR\Docs\nsArray" - Delete "$INSTDIR\Examples\nsArray\*.nsi" - RMDir "$INSTDIR\Examples\nsArray" - - ;uninstall NSISArray Plugin - IfFileExists $INSTDIR\Plugins\NSISArray.dll "" noNSISArray - Delete "$INSTDIR\Plugins\NSISArray*.dll" - Delete "$INSTDIR\Include\NSISArray.nsh" - Delete "$INSTDIR\Contrib\NSISArray\*.*" - RMDir "$INSTDIR\Contrib\NSISArray" - Delete "$INSTDIR\Docs\NSISArray\*.*" - RMDir "$INSTDIR\Docs\NSISArray" - Delete "$INSTDIR\Examples\NSISArray\*.nsi" - RMDir "$INSTDIR\Examples\NSISArray" - noNSISArray: - - Delete "$INSTDIR\Include\UMUI.nsh" - Delete "$INSTDIR\Include\MUIEx.nsh" - RMDir "$INSTDIR\Include" - - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AdditionalTasks.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternativeStartMenu.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternativeStartMenuApplication.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Confirm.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Information.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\ioSpecial.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Maintenance.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\MaintenanceSetupType.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\MaintenanceUpdateSetupType.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\SerialNumber.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini" - RMDir "$INSTDIR\Contrib\UltraModernUI\Ini" - - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\green" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\red" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\green2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\green.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\red2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\red.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed.nsh" - RMDir "$INSTDIR\Contrib\UltraModernUI\BGSkins" - - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\blue" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\brown" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\gray" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\green" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\purple" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\red" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\blue2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\blue.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\brown2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\brown.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\gray2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\gray.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\green2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\green.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\purple2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\purple.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\red2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\red.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed.nsh" - RMDir "$INSTDIR\Contrib\UltraModernUI\Skins" - - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Language files" - - Delete "$INSTDIR\Contrib\UltraModernUI\UMUI.nsh" - RMDir "$INSTDIR\Contrib\UltraModernUI\" - RMDir "$INSTDIR\Contrib" - - RMDir /r "$INSTDIR\Docs\UltraModernUI\" - RMDir "$INSTDIR\Docs" - - RMDir /r "$INSTDIR\Examples\UltraModernUI\" - RMDir "$INSTDIR\Examples" - - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_bigdesc.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_headerbgimage.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_sb.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_bigdesc.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_nodesc.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_noleftimage.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_sb.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_small.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_small_sb.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_smalldesc.exe" - RMDir "$INSTDIR\Contrib\UIs\UltraModernUI\" - RMDir "$INSTDIR\Contrib\UIs" - - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Complete.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\CompleteEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Continue.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\ContinueEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Custom.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\CustomEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\HeaderBG.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Minimal.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\MinimalEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Modify.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\ModifyEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Remove.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\RemoveEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Repair.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\RepairEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Standard.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\StandardEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Icon2.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Icon.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\install.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\installEx.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\UnIcon2.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\UnIcon.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\uninstall.ico" - RMDir "$INSTDIR\Contrib\Graphics\UltraModernUI\" - RMDir "$INSTDIR\Contrib\Graphics" - - Delete "$INSTDIR\NSISUMUI.exe" - Delete "$INSTDIR\UninstallUMUI.exe" - -!macroend - - -Section Uninstall - - SetDetailsPrint textonly - DetailPrint "Uninstalling NSIS and Ultra-Modern UI..." - SetDetailsPrint listonly - - IfFileExists $INSTDIR\makensis.exe nsis_installed - MessageBox MB_YESNO "It does not appear that NSIS is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES nsis_installed - Abort "Uninstall aborted by user" - nsis_installed: - - !insertmacro removeUMUIfiles - - Delete "$SMPROGRAMS\NSIS.lnk" - Delete "$DESKTOP\NSIS.lnk" - - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" - - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_SetupType" ;"${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_InstType" ;"${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_Components" ;"${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_UNINSTALLPATH_REGISTRY_VALUENAME}" - DeleteRegKey /ifempty ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - - - SetDetailsPrint textonly - DetailPrint "Uninstalling NSIS Development Shell Extensions..." - SetDetailsPrint listonly - - SetDetailsPrint textonly - DetailPrint "Deleting Registry Keys..." - SetDetailsPrint listonly - - ReadRegStr $R0 HKCR ".nsi" "" - StrCmp $R0 "NSIS.Script" 0 +2 - DeleteRegKey HKCR ".nsi" - - ReadRegStr $R0 HKCR ".nsh" "" - StrCmp $R0 "NSIS.Header" 0 +2 - DeleteRegKey HKCR ".nsh" - - DeleteRegKey HKCR "NSIS.Script" - DeleteRegKey HKCR "NSIS.Header" - - System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' - - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" - DeleteRegKey HKLM "Software\NSIS" - - SetDetailsPrint textonly - DetailPrint "Deleting Files..." - SetDetailsPrint listonly - - Delete $INSTDIR\makensis.exe - Delete $INSTDIR\makensisw.exe - Delete $INSTDIR\NSIS.exe - Delete $INSTDIR\NSIS.exe.manifest - Delete $INSTDIR\license.txt - Delete $INSTDIR\COPYING - Delete $INSTDIR\uninst-nsis.exe - Delete $INSTDIR\nsisconf.nsi - Delete $INSTDIR\nsisconf.nsh - Delete $INSTDIR\NSIS.chm - RMDir /r $INSTDIR\Bin - RMDir /r $INSTDIR\Contrib - RMDir /r $INSTDIR\Docs - RMDir /r $INSTDIR\Examples - RMDir /r $INSTDIR\Include - RMDir /r $INSTDIR\Menu - RMDir /r $INSTDIR\Plugins - RMDir /r $INSTDIR\Stubs - RMDir /r $INSTDIR - - SetDetailsPrint both - -SectionEnd - - -;-------------------------------- -;Installer Sections Declaration dans Description - -!insertmacro UMUI_DECLARECOMPONENTS_BEGIN - !insertmacro UMUI_COMPONENT SecNSIS - !insertmacro UMUI_COMPONENT SecCore - !insertmacro UMUI_COMPONENT SecExample - !insertmacro UMUI_COMPONENT SecInterfaces - !insertmacro UMUI_COMPONENT SecInterfacesModernUI - !insertmacro UMUI_COMPONENT SecInterfacesDefaultUI - !insertmacro UMUI_COMPONENT SecInterfacesTinyUI - !insertmacro UMUI_COMPONENT SecTools - !insertmacro UMUI_COMPONENT SecToolsZ2E - !insertmacro UMUI_COMPONENT SecGraphics - !insertmacro UMUI_COMPONENT SecLangFiles - !insertmacro UMUI_COMPONENT SecPluginsPlugins - !insertmacro UMUI_COMPONENT SecPluginsBanner - !insertmacro UMUI_COMPONENT SecPluginsLangDLL - !insertmacro UMUI_COMPONENT SecPluginsnsExec - !insertmacro UMUI_COMPONENT SecPluginsSplash - !insertmacro UMUI_COMPONENT SecPluginsSplashT - !insertmacro UMUI_COMPONENT SecPluginsSystem - !insertmacro UMUI_COMPONENT SecPluginsMath - !insertmacro UMUI_COMPONENT SecPluginsDialer - !insertmacro UMUI_COMPONENT SecPluginsIO - !insertmacro UMUI_COMPONENT SecPluginsDialogs - !insertmacro UMUI_COMPONENT SecPluginsStartMenu - !insertmacro UMUI_COMPONENT SecPluginsBgImage - !insertmacro UMUI_COMPONENT SecPluginsUserInfo - !insertmacro UMUI_COMPONENT SecPluginsNSISDL - !insertmacro UMUI_COMPONENT SecPluginsVPatch - - !insertmacro UMUI_COMPONENT SecUMUI - !insertmacro UMUI_COMPONENT SecSkins - !insertmacro UMUI_COMPONENT SecBGSkins - !insertmacro UMUI_COMPONENT SecSkinnedControls - !insertmacro UMUI_COMPONENT SecSkinnedControlsSources - !insertmacro UMUI_COMPONENT SecInstallOptionsEx - !insertmacro UMUI_COMPONENT SecInstallOptionsExSources - !insertmacro UMUI_COMPONENT SecnsArray - !insertmacro UMUI_COMPONENT SecnsArraySources -!insertmacro UMUI_DECLARECOMPONENTS_END - -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecNSIS} "The NSIS package version ${VER_MAJOR}.${VER_MINOR}" - !insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "The core files required to use NSIS (compiler etc.)" - !insertmacro MUI_DESCRIPTION_TEXT ${SecExample} "Example installation scripts that show you how to use NSIS" - !insertmacro MUI_DESCRIPTION_TEXT ${SecInterfaces} "User interface designs that can be used to change the installer look and feel" - !insertmacro MUI_DESCRIPTION_TEXT ${SecInterfacesModernUI} "A modern user interface like the wizards of recent Windows versions" - !insertmacro MUI_DESCRIPTION_TEXT ${SecInterfacesDefaultUI} "The default NSIS user interface which you can customize to make your own UI" - !insertmacro MUI_DESCRIPTION_TEXT ${SecInterfacesTinyUI} "A tiny version of the default user interface" - !insertmacro MUI_DESCRIPTION_TEXT ${SecTools} "Tools that help you with NSIS development" - !insertmacro MUI_DESCRIPTION_TEXT ${SecToolsZ2E} "A utility that converts a ZIP file to a NSIS installer" - !insertmacro MUI_DESCRIPTION_TEXT ${SecGraphics} "Icons, checkbox images and other graphics" - !insertmacro MUI_DESCRIPTION_TEXT ${SecLangFiles} "Language files used to support multiple languages in an installer" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsPlugins} "Useful plugins that extend NSIS's functionality" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsBanner} "Plugin that lets you show a banner before installation starts" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsLangDLL} "Plugin that lets you add a language select dialog to your installer" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsnsExec} "Plugin that executes console programs and prints its output in the NSIS log window or hides it" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsSplash} "Splash screen add-on that lets you add a splash screen to an installer" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsSplashT} "Splash screen add-on with transparency support that lets you add a splash screen to an installer" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsSystem} "Plugin that lets you call Win32 API or external DLLs" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsMath} "Plugin that lets you evaluate complicated mathematical expressions" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsDialer} "Plugin that provides internet connection functions" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsIO} "Plugin that lets you add custom pages to an installer" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsDialogs} "Plugin that lets you add custom pages to an installer" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsStartMenu} "Plugin that lets the user select the start menu folder" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsBgImage} "Plugin that lets you show a persistent background image plugin and play sounds" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsUserInfo} "Plugin that that gives you the user name and the user account type" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsNSISDL} "Plugin that lets you create a web based installer" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsVPatch} "Plugin that lets you create patches to upgrade older files" - - !insertmacro MUI_DESCRIPTION_TEXT ${SecUMUI} "The Utra-Modern User Interface for NSIS." - !insertmacro MUI_DESCRIPTION_TEXT ${SecSkins} "A lot of skins for the Utra-Modern User Interface." - !insertmacro MUI_DESCRIPTION_TEXT ${SecBGSkins} "A lot of background skins for the Utra-Modern User Interface." - !insertmacro MUI_DESCRIPTION_TEXT ${SecGroupPlugins} "Install very useful NSIS plugins used by Ultra-Modern UI to extend the possibilities of NSIS." - !insertmacro MUI_DESCRIPTION_TEXT ${SecSkinnedControls} "This NSIS plugin, writing by SuperPat, allow you to skin all buttons and scrollbars of your installer.$\n$\rIt's used by default with the UltraModern style." - !insertmacro MUI_DESCRIPTION_TEXT ${SecSkinnedControlsSources} "The Sources code of the SkinnedControls plugin." - !insertmacro MUI_DESCRIPTION_TEXT ${SecInstallOptionsEx} "This NSIS plugin, writing by deguix and SuperPat is an expanded version of the original InstallOptions plugin containing a lot of new features.$\nThis plugin is supported natively by Ultra-Modern UI." - !insertmacro MUI_DESCRIPTION_TEXT ${SecInstallOptionsExSources} "The Sources code of the InstallOptionsEx plugin." - !insertmacro MUI_DESCRIPTION_TEXT ${SecnsArray} "This NSIS plugin, writing by Afrow UK, add the support of the array in NSIS. It comes with plenty of functions for managing your arrays.$\nThis plugin is used with the AlternativeStartMenu and MultiLanguages pages of Ultra-Modern UI." - !insertmacro MUI_DESCRIPTION_TEXT ${SecnsArraySources} "The Sources code of the nsArray plugin." -!insertmacro MUI_FUNCTION_DESCRIPTION_END - - -;-------------------------------- -; Pages functions - -Function addtasks_function - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK DESKTOP 1 "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LINE - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" - - UserInfo::GetAccountType - Pop $R0 - StrCmp $R0 "Guest" 0 notLimited - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - Goto endShellVarContext - notLimited: - !insertmacro UMUI_GETSHELLVARCONTEXT - Pop $R0 - StrCmp $R0 "current" 0 allShellVarContext - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 0 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - Goto endShellVarContext - allShellVarContext: - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 0 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - endShellVarContext: - ClearErrors - -FunctionEnd - -!macro confirm_addline section - - SectionGetFlags ${Sec${section}} $1 - IntOp $1 $1 & ${SF_SELECTED} - IntCmp $1 ${SF_SELECTED} 0 n${section} n${section} - SectionGetText ${Sec${section}} $1 - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " - $1" - n${section}: - -!macroend - -Function confirm_function - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - ;For the setuptype page - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SETUPTYPE_TITLE):" - !insertmacro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT - Pop $R0 - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $R0" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_COMPNENTS)" - - !insertmacro confirm_addline NSIS - !insertmacro confirm_addline Core - !insertmacro confirm_addline Example - !insertmacro confirm_addline Interfaces - !insertmacro confirm_addline InterfacesModernUI - !insertmacro confirm_addline InterfacesDefaultUI - !insertmacro confirm_addline InterfacesTinyUI - !insertmacro confirm_addline Tools - !insertmacro confirm_addline ToolsZ2E - !insertmacro confirm_addline Graphics - !insertmacro confirm_addline LangFiles - !insertmacro confirm_addline PluginsBanner - !insertmacro confirm_addline PluginsLangDLL - !insertmacro confirm_addline PluginsnsExec - !insertmacro confirm_addline PluginsSplash - !insertmacro confirm_addline PluginsSplashT - !insertmacro confirm_addline PluginsSystem - !insertmacro confirm_addline PluginsMath - !insertmacro confirm_addline PluginsDialer - !insertmacro confirm_addline PluginsIO - !insertmacro confirm_addline PluginsDialogs - !insertmacro confirm_addline PluginsStartMenu - !insertmacro confirm_addline PluginsBgImage - !insertmacro confirm_addline PluginsUserInfo - !insertmacro confirm_addline PluginsNSISDL - !insertmacro confirm_addline PluginsVPatch - - !insertmacro confirm_addline UMUI - !insertmacro confirm_addline Skins - !insertmacro confirm_addline BGSkins - !insertmacro confirm_addline SkinnedControls - !insertmacro confirm_addline SkinnedControlsSources - !insertmacro confirm_addline InstallOptionsEx - !insertmacro confirm_addline InstallOptionsExSources - !insertmacro confirm_addline nsArray - !insertmacro confirm_addline nsArraySources - - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_ADDITIONALTASKS_TITLE):" - ;Only if one at least of additional icon check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;ShellVarContext - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT)" - ; only if for all user radio is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if for current user is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - -FunctionEnd - -Function preuninstall_function - - IfFileExists $INSTDIR\makensis.exe nsis_installed - MessageBox MB_YESNO "It does not appear that NSIS is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES nsis_installed - Abort "Install aborted by user" - nsis_installed: - - SetDetailsPrint textonly - DetailPrint "Uninstalling NSIS and Ultra-Modern UI..." - SetDetailsPrint listonly - - !insertmacro removeUMUIfiles - - Delete "$SMPROGRAMS\NSIS.lnk" - Delete "$DESKTOP\NSIS.lnk" - - ClearErrors - ReadRegStr $R0 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_StartMenuFolder" - IfErrors checkNext 0 - StrCpy $R1 $R0 "" -8 ; copy last height chars - StrCmpS $R1 "\Contrib" 0 removeShortcuts - StrCpy $R0 $R0 -8 ; remove \Contrib - Goto removeShortcuts - checkNext: - ReadRegStr $R0 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "StartMenuFolder" - IfErrors noStartMenu removeShortcuts - removeShortcuts: - SetShellVarContext all - Delete "$SMPROGRAMS\$R0\Contrib\zip2exe (Create SFX).lnk" - Delete "$SMPROGRAMS\$R0\Contrib\AdvSplash Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Banner Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\BgImage Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\MakeNSISw Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Math Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Modern UI 2 Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Modern UI Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\nsDialogs Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\nsExec Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\NSISdl Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Splash Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\StartMenu Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\System Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\VPatch Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\NSISArray Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\UltraModernUI Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\SkinnedControls Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\nsArray Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\InstallOptionsEx Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Uninstall UltraModernUI.lnk" - RMDir "$SMPROGRAMS\$R0\Contrib" - Delete "$SMPROGRAMS\$R0\Uninstall NSIS.lnk" - Delete "$SMPROGRAMS\$R0\NSIS Menu.lnk" - Delete "$SMPROGRAMS\$R0\NSIS Examples Directory.lnk" - Delete "$SMPROGRAMS\$R0\NSIS Documentation.lnk" - Delete "$SMPROGRAMS\$R0\MakeNSISW (Compiler GUI).lnk" - Delete "$SMPROGRAMS\$R0\NSIS Site.url" - Delete "$SMPROGRAMS\$R0\Uninstall UltraModernUI.lnk" - Delete "$SMPROGRAMS\$R0\NSIS.lnk" - RMDir "$SMPROGRAMS\$R0" - - SetShellVarContext current - Delete "$SMPROGRAMS\$R0\Contrib\zip2exe (Create SFX).lnk" - Delete "$SMPROGRAMS\$R0\Contrib\AdvSplash Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Banner Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\BgImage Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\MakeNSISw Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Math Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Modern UI 2 Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Modern UI Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\nsDialogs Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\nsExec Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\NSISdl Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Splash Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\StartMenu Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\System Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\VPatch Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\NSISArray Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\UltraModernUI Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\SkinnedControls Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\nsArray Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\InstallOptionsEx Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Uninstall UltraModernUI.lnk" - RMDir "$SMPROGRAMS\$R0\Contrib" - Delete "$SMPROGRAMS\$R0\Uninstall NSIS.lnk" - Delete "$SMPROGRAMS\$R0\NSIS Menu.lnk" - Delete "$SMPROGRAMS\$R0\NSIS Examples Directory.lnk" - Delete "$SMPROGRAMS\$R0\NSIS Documentation.lnk" - Delete "$SMPROGRAMS\$R0\MakeNSISW (Compiler GUI).lnk" - Delete "$SMPROGRAMS\$R0\NSIS Site.url" - Delete "$SMPROGRAMS\$R0\Uninstall UltraModernUI.lnk" - Delete "$SMPROGRAMS\$R0\NSIS.lnk" - RMDir "$SMPROGRAMS\$R0" - noStartMenu: - - - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" - - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_SetupType" ;"${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_InstType" ;"${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_Components" ;"${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_UNINSTALLPATH_REGISTRY_VALUENAME}" - ; No more used registry keys - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_StartMenuFolder" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "StartMenuFolder" - - - ReadRegStr $R0 HKCR ".nsi" "" - StrCmp $R0 "NSIS.Script" 0 +2 - DeleteRegKey HKCR ".nsi" - - ReadRegStr $R0 HKCR ".nsh" "" - StrCmp $R0 "NSIS.Header" 0 +2 - DeleteRegKey HKCR ".nsh" - - DeleteRegKey HKCR "NSIS.Script" - DeleteRegKey HKCR "NSIS.Header" - - System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' - - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" - - Delete $INSTDIR\makensis.exe - Delete $INSTDIR\makensisw.exe - Delete $INSTDIR\NSIS.exe - Delete $INSTDIR\NSIS.exe.manifest - Delete $INSTDIR\license.txt - Delete $INSTDIR\COPYING - Delete $INSTDIR\uninst-nsis.exe - Delete $INSTDIR\NSIS.chm - - RMDir /r $INSTDIR\Stubs - - Delete $INSTDIR\Include\WinMessages.nsh - Delete $INSTDIR\Include\Sections.nsh - Delete $INSTDIR\Include\Library.nsh - Delete $INSTDIR\Include\UpgradeDLL.nsh - Delete $INSTDIR\Include\LogicLib.nsh - Delete $INSTDIR\Include\StrFunc.nsh - Delete $INSTDIR\Include\Colors.nsh - Delete $INSTDIR\Include\FileFunc.nsh - Delete $INSTDIR\Include\TextFunc.nsh - Delete $INSTDIR\Include\WordFunc.nsh - Delete $INSTDIR\Include\WinVer.nsh - Delete $INSTDIR\Include\x64.nsh - Delete $INSTDIR\Include\Memento.nsh - Delete $INSTDIR\Include\LangFile.nsh - Delete $INSTDIR\Include\InstallOptions.nsh - - RMDir /r $INSTDIR\Docs\StrFunc - RMDir /r $INSTDIR\Docs\makensisw - RMDir /r $INSTDIR\Menu - - RMDir /r $INSTDIR\Bin - - Delete $INSTDIR\Examples\makensis.nsi - Delete $INSTDIR\Examples\example1.nsi - Delete $INSTDIR\Examples\example2.nsi - Delete $INSTDIR\Examples\viewhtml.nsi - Delete $INSTDIR\Examples\waplugin.nsi - Delete $INSTDIR\Examples\bigtest.nsi - Delete $INSTDIR\Examples\primes.nsi - Delete $INSTDIR\Examples\rtest.nsi - Delete $INSTDIR\Examples\gfx.nsi - Delete $INSTDIR\Examples\one-section.nsi - Delete $INSTDIR\Examples\languages.nsi - Delete $INSTDIR\Examples\Library.nsi - Delete $INSTDIR\Examples\VersionInfo.nsi - Delete $INSTDIR\Examples\UserVars.nsi - Delete $INSTDIR\Examples\LogicLib.nsi - Delete $INSTDIR\Examples\silent.nsi - Delete $INSTDIR\Examples\StrFunc.nsi - Delete $INSTDIR\Examples\FileFunc.nsi - Delete $INSTDIR\Examples\FileFunc.ini - Delete $INSTDIR\Examples\FileFuncTest.nsi - Delete $INSTDIR\Examples\TextFunc.nsi - Delete $INSTDIR\Examples\TextFunc.ini - Delete $INSTDIR\Examples\TextFuncTest.nsi - Delete $INSTDIR\Examples\WordFunc.nsi - Delete $INSTDIR\Examples\WordFunc.ini - Delete $INSTDIR\Examples\WordFuncTest.nsi - - RMDir /r "$INSTDIR\Examples\Modern UI" - RMDir /r "$INSTDIR\Contrib\Modern UI" - RMDir /r "$INSTDIR\Docs\Modern UI" - Delete $INSTDIR\Include\MUI.nsh - - RMDir /r "$INSTDIR\Examples\Modern UI 2" - RMDir /r "$INSTDIR\Contrib\Modern UI 2" - RMDir /r "$INSTDIR\Docs\Modern UI 2" - Delete $INSTDIR\Include\MUI2.nsh - - Delete $INSTDIR\Contrib\UIs\default.exe - Delete $INSTDIR\Contrib\UIs\modern.exe - Delete $INSTDIR\Contrib\UIs\modern_headerbmp.exe - Delete $INSTDIR\Contrib\UIs\modern_headerbmpr.exe - Delete $INSTDIR\Contrib\UIs\modern_nodesc.exe - Delete $INSTDIR\Contrib\UIs\modern_smalldesc.exe - Delete $INSTDIR\Contrib\UIs\sdbarker_tiny.exe - - RMDir /r $INSTDIR\Contrib\Graphics - - RMDir /r "$INSTDIR\Contrib\Language files\" - - RMDir /r $INSTDIR\Contrib\zip2exe - - Delete $INSTDIR\Plugins\Banner.dll - Delete $INSTDIR\Plugins\x86-ansi\Banner.dll - Delete $INSTDIR\Plugins\x86-unicode\Banner.dll - RMDir /r "$INSTDIR\Docs\Banner\" - RMDir /r "$INSTDIR\Examples\Banner\" - - Delete $INSTDIR\Plugins\TypeLib.dll - Delete $INSTDIR\Plugins\x86-ansi\TypeLib.dll - Delete $INSTDIR\Plugins\x86-unicode\TypeLib.dll - - Delete $INSTDIR\Plugins\LangDLL.dll - Delete $INSTDIR\Plugins\x86-ansi\LangDLL.dll - Delete $INSTDIR\Plugins\x86-unicode\LangDLL.dll - - Delete $INSTDIR\Plugins\nsExec.dll - Delete $INSTDIR\Plugins\x86-ansi\nsExec.dll - Delete $INSTDIR\Plugins\x86-unicode\nsExec.dll - RMDir /r $INSTDIR\Docs\nsExec - RMDir /r $INSTDIR\Examples\nsExec - - Delete $INSTDIR\Plugins\splash.dll - Delete $INSTDIR\Plugins\x86-ansi\splash.dll - Delete $INSTDIR\Plugins\x86-unicode\splash.dll - RMDir /r $INSTDIR\Docs\Splash - RMDir /r $INSTDIR\Examples\Splash - - Delete $INSTDIR\Plugins\advsplash.dll - Delete $INSTDIR\Plugins\x86-ansi\advsplash.dll - Delete $INSTDIR\Plugins\x86-unicode\advsplash.dll - RMDir /r $INSTDIR\Docs\AdvSplash - RMDir /r $INSTDIR\Examples\AdvSplash - - Delete $INSTDIR\Plugins\BgImage.dll - Delete $INSTDIR\Plugins\x86-ansi\BgImage.dll - Delete $INSTDIR\Plugins\x86-unicode\BgImage.dll - RMDir /r $INSTDIR\Docs\BgImage - RMDir /r $INSTDIR\Examples\BgImage - - Delete $INSTDIR\Plugins\InstallOptions.dll - Delete $INSTDIR\Plugins\x86-ansi\InstallOptions.dll - Delete $INSTDIR\Plugins\x86-unicode\InstallOptions.dll - RMDir /r $INSTDIR\Docs\InstallOptions - RMDir /r $INSTDIR\Examples\InstallOptions - - Delete $INSTDIR\Plugins\Math.dll - Delete $INSTDIR\Plugins\x86-ansi\Math.dll - Delete $INSTDIR\Plugins\x86-unicode\Math.dll - RMDir /r $INSTDIR\Docs\Math - RMDir /r $INSTDIR\Examples\Math - - Delete $INSTDIR\Plugins\nsisdl.dll - Delete $INSTDIR\Plugins\x86-ansi\nsisdl.dll - Delete $INSTDIR\Plugins\x86-unicode\nsisdl.dll - RMDir /r $INSTDIR\Docs\NSISdl - - Delete $INSTDIR\Plugins\System.dll - Delete $INSTDIR\Plugins\x86-ansi\System.dll - Delete $INSTDIR\Plugins\x86-unicode\System.dll - RMDir /r $INSTDIR\Docs\System - RMDir /r $INSTDIR\Examples\System - - Delete $INSTDIR\Plugins\nsDialogs.dll - Delete $INSTDIR\Plugins\x86-ansi\nsDialogs.dll - Delete $INSTDIR\Plugins\x86-unicode\nsDialogs.dll - RMDir /r $INSTDIR\Examples\nsDialogs - Delete $INSTDIR\Include\nsDialogs.nsh - RMDir /r $INSTDIR\Docs\nsDialogs - - Delete $INSTDIR\Plugins\StartMenu.dll - Delete $INSTDIR\Plugins\x86-ansi\StartMenu.dll - Delete $INSTDIR\Plugins\x86-unicode\StartMenu.dll - RMDir /r $INSTDIR\Docs\StartMenu - RMDir /r $INSTDIR\Examples\StartMenu - - Delete $INSTDIR\Plugins\UserInfo.dll - Delete $INSTDIR\Plugins\x86-ansi\UserInfo.dll - Delete $INSTDIR\Plugins\x86-unicode\UserInfo.dll - RMDir /r $INSTDIR\Examples - - Delete $INSTDIR\Plugins\Dialer.dll - Delete $INSTDIR\Plugins\x86-ansi\Dialer.dll - Delete $INSTDIR\Plugins\x86-unicode\Dialer.dll - RMDir /r $INSTDIR\Docs\Dialer - - Delete $INSTDIR\Plugins\VPatch.dll - Delete $INSTDIR\Plugins\x86-ansi\VPatch.dll - Delete $INSTDIR\Plugins\x86-unicode\VPatch.dll - RMDir /r $INSTDIR\Examples\VPatch - RMDir /r $INSTDIR\Docs\VPatch - Delete $INSTDIR\Include\VPatchLib.nsh - - RMDir "$INSTDIR" - - SetDetailsPrint both - -FunctionEnd - - -;-------------------------------- -;Init Functions - -Function .onInit - - !insertmacro UMUI_MULTILANG_GET - - ; Change default InstallDir to C:\ProgramData on Windows Vista and more - ClearErrors - IfFileExists $INSTDIR endCheckVersion 0 - ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion - IfErrors endCheckVersion 0 ; If not WinNT - IntCmp $0 6 0 endCheckVersion 0 ; If version >= 6 - SetShellVarContext all - StrCpy $INSTDIR "$APPDATA\NSIS" - endCheckVersion: - -FunctionEnd - -Function un.onInit - - !insertmacro UMUI_MULTILANG_GET - +; o-----------------------------------------------o +; | NSIS 3.05 + Ultra-Modern User Interface 2.0b6 | +; (-----------------------------------------------) +; | Installer script. | +; | Written by SyperPat | +; o-----------------------------------------------o + +;-------------------------------- +;General + + !define /date NOW "%Y-%m-%d" + !define NAME "UltraModernUI" + + !define UMUI_VERSION "2.0b6" + !define UMUI_VERBUILD "2.0_${NOW}" + + !define VER_MAJOR 3 + !define VER_MINOR 05 + !define VER_REVISION 0 + !define VER_BUILD 0 + !define VER_REV_STR "" + + !define VERSION "${VER_MAJOR}.${VER_MINOR}${VER_REV_STR}" + !if "${NSIS_VERSION}" != "v${VERSION}" + !error "VER_MAJOR, VER_MINOR and VER_REV_STR defines does not match the current NSIS version: ${NSIS_VERSION}" + !endif + + !define /date VERIPV "200.%Y.%m.%d" + VIProductVersion "${VERIPV}" + VIAddVersionKey ProductName "NSIS (Nullsoft Scriptable Install System) with the Ultra-Modern User Interface." + VIAddVersionKey ProductVersion "${UMUI_VERSION}" + VIAddVersionKey Comments "This package also include some plugins used by UMUI to extend the possibilities of NSIS." + VIAddVersionKey LegalTrademarks "NSIS and Ultra-Modern UI are released under the zlib/libpng license: http://nsis.sf.net/License" + VIAddVersionKey LegalCopyright "Copyright Š2005-2019 SuperPat" + VIAddVersionKey FileDescription "NSIS (Nullsoft Scriptable Install System) with the Ultra-Modern User Interface." + VIAddVersionKey FileVersion "${UMUI_VERBUILD}" + + +;-------------------------------- +;Configuration + + ; The name of the installer + Name "NSIS ${VERSION} and Ultra-Modern UI ${UMUI_VERSION}" + + ; The file to write + OutFile "NSIS_${VERSION}_UltraModernUI_${UMUI_VERSION}.exe" + + SetCompressor /FINAL /SOLID lzma + + ;Generate unicode installer + Unicode True + + ;Windows vista compatibility + RequestExecutionLevel admin + + BrandingText "$(^NameDA)" + + ;Default installation folder + InstallDir "$PROGRAMFILES\NSIS" + + +;-------------------------------- +;Include Ultra-Modern UI between others + + !include "UMUI.nsh" + !include "Sections.nsh" + +;-------------------------------- +;Definitions + + !define SHCNE_ASSOCCHANGED 0x8000000 + !define SHCNF_IDLIST 0 + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "blue" + + !define UMUI_USE_INSTALLOPTIONSEX + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + + !define UMUI_USE_ALTERNATE_PAGE ; For Welcome finish abort pages + !define UMUI_USE_UNALTERNATE_PAGE + + !define MUI_COMPONENTSPAGE_SMALLDESC + + !define UMUI_DEFAULT_SHELLVARCONTEXT all + + !define UMUI_ENABLE_DESCRIPTION_TEXT + +;-------------------------------- +;Registry Settings + + !define UMUI_PARAMS_REGISTRY_ROOT HKLM + !define UMUI_PARAMS_REGISTRY_KEY "Software\NSIS" + + !define UMUI_LANGUAGE_REGISTRY_VALUENAME "UMUI_InstallerLanguage" + !define UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME "UMUI_ShellVarContext" + + !define UMUI_UNINSTALLPATH_REGISTRY_VALUENAME "UMUI_UninstallPath" + !define UMUI_UNINSTALL_FULLPATH "$INSTDIR\UninstallUMUI.exe" + !define UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME "UMUI_InstallPath" + + !define UMUI_VERSION_REGISTRY_VALUENAME "UMUI_Version" + !define UMUI_VERBUILD_REGISTRY_VALUENAME "UMUI_VerBuild" + + !define UMUI_PREUNINSTALL_FUNCTION preuninstall_function + + InstallDirRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "" + +;-------------------------------- +;Reserve Files + + !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS + + +;-------------------------------- +;Pages + + !insertmacro UMUI_PAGE_MULTILANGUAGE + + !define UMUI_MAINTENANCEPAGE_MODIFY + !define UMUI_MAINTENANCEPAGE_REPAIR + !define UMUI_MAINTENANCEPAGE_REMOVE + !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP + !insertmacro UMUI_PAGE_MAINTENANCE + + !define UMUI_UPDATEPAGE_REMOVE + !define UMUI_UPDATEPAGE_CONTINUE_SETUP + !insertmacro UMUI_PAGE_UPDATE + + !define UMUI_WELCOMEPAGE_ALTERNATIVETEXT + !insertmacro MUI_PAGE_WELCOME + + !define MUI_LICENSEPAGE_CHECKBOX + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + + !define UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT + !insertmacro UMUI_PAGE_INFORMATION "${NSISDIR}\Docs\UltraModernUI\ReadMe.rtf" + + !define UMUI_SETUPTYPEPAGE_MINIMAL "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" + !define UMUI_SETUPTYPEPAGE_STANDARD "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" + !define UMUI_SETUPTYPEPAGE_COMPLETE "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" + !define UMUI_SETUPTYPEPAGE_DEFAULTCHOICE ${UMUI_COMPLETE} + !define UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME "UMUI_SetupType" + !insertmacro UMUI_PAGE_SETUPTYPE + + !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME "UMUI_InstType" + !define UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME "UMUI_Components" + !insertmacro MUI_PAGE_COMPONENTS + + !insertmacro MUI_PAGE_DIRECTORY + + !define UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME "UMUI_Tasks" + !insertmacro UMUI_PAGE_ADDITIONALTASKS addtasks_function + + !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function + !insertmacro UMUI_PAGE_CONFIRM + + !insertmacro MUI_PAGE_INSTFILES + + !define MUI_FINISHPAGE_SHOWREADME "${NSISDIR}\Docs\UltraModernUI\Readme.html" + !define MUI_FINISHPAGE_LINK "Ultra-Modern UI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_PAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "Ultra-Modern UI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_PAGE_ABORT + + + !insertmacro UMUI_UNPAGE_MULTILANGUAGE + + !define UMUI_MAINTENANCEPAGE_MODIFY + !define UMUI_MAINTENANCEPAGE_REPAIR + !define UMUI_MAINTENANCEPAGE_REMOVE + !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP + !insertmacro UMUI_UNPAGE_MAINTENANCE + + !insertmacro MUI_UNPAGE_WELCOME + + !insertmacro MUI_UNPAGE_CONFIRM + + !insertmacro MUI_UNPAGE_INSTFILES + + !define MUI_FINISHPAGE_LINK "Ultra-Modern UI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_UNPAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "Ultra-Modern UI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_UNPAGE_ABORT + + +;-------------------------------- +;Languages + +; first language is the default language if the system language is not in this list + !insertmacro MUI_LANGUAGE "English" + +; Other UMUI translated languages + !insertmacro MUI_LANGUAGE "Bulgarian" + !insertmacro MUI_LANGUAGE "Czech" + !insertmacro MUI_LANGUAGE "French" + !insertmacro MUI_LANGUAGE "German" + !insertmacro MUI_LANGUAGE "Greek" + !insertmacro MUI_LANGUAGE "Hungarian" + !insertmacro MUI_LANGUAGE "Italian" + !insertmacro MUI_LANGUAGE "Japanese" + !insertmacro MUI_LANGUAGE "Lithuanian" + !insertmacro MUI_LANGUAGE "Polish" + !insertmacro MUI_LANGUAGE "Russian" + !insertmacro MUI_LANGUAGE "Slovenian" + !insertmacro MUI_LANGUAGE "Spanish" + !insertmacro MUI_LANGUAGE "Turkish" +; Other UMUI partially translated language + !insertmacro MUI_LANGUAGE "PortugueseBR" + +; Other untranslated languages but usable even so. + !insertmacro MUI_LANGUAGE "SpanishInternational" + !insertmacro MUI_LANGUAGE "SimpChinese" + !insertmacro MUI_LANGUAGE "TradChinese" + !insertmacro MUI_LANGUAGE "Korean" + !insertmacro MUI_LANGUAGE "Dutch" + !insertmacro MUI_LANGUAGE "Danish" + !insertmacro MUI_LANGUAGE "Swedish" + !insertmacro MUI_LANGUAGE "Norwegian" + !insertmacro MUI_LANGUAGE "NorwegianNynorsk" + !insertmacro MUI_LANGUAGE "Finnish" + !insertmacro MUI_LANGUAGE "Portuguese" + !insertmacro MUI_LANGUAGE "Ukrainian" + !insertmacro MUI_LANGUAGE "Slovak" + !insertmacro MUI_LANGUAGE "Croatian" + !insertmacro MUI_LANGUAGE "Thai" + !insertmacro MUI_LANGUAGE "Romanian" + !insertmacro MUI_LANGUAGE "Latvian" + !insertmacro MUI_LANGUAGE "Macedonian" + !insertmacro MUI_LANGUAGE "Estonian" + !insertmacro MUI_LANGUAGE "Serbian" + !insertmacro MUI_LANGUAGE "SerbianLatin" + !insertmacro MUI_LANGUAGE "Arabic" + !insertmacro MUI_LANGUAGE "Farsi" + !insertmacro MUI_LANGUAGE "Hebrew" + !insertmacro MUI_LANGUAGE "Indonesian" + !insertmacro MUI_LANGUAGE "Mongolian" + !insertmacro MUI_LANGUAGE "Luxembourgish" + !insertmacro MUI_LANGUAGE "Albanian" + !insertmacro MUI_LANGUAGE "Breton" + !insertmacro MUI_LANGUAGE "Belarusian" + !insertmacro MUI_LANGUAGE "Icelandic" + !insertmacro MUI_LANGUAGE "Malay" + !insertmacro MUI_LANGUAGE "Bosnian" + !insertmacro MUI_LANGUAGE "Kurdish" + !insertmacro MUI_LANGUAGE "Irish" + !insertmacro MUI_LANGUAGE "Uzbek" + !insertmacro MUI_LANGUAGE "Galician" + !insertmacro MUI_LANGUAGE "Afrikaans" + !insertmacro MUI_LANGUAGE "Catalan" + !insertmacro MUI_LANGUAGE "Esperanto" + !insertmacro MUI_LANGUAGE "Asturian" + !insertmacro MUI_LANGUAGE "Basque" + !insertmacro MUI_LANGUAGE "Pashto" + !insertmacro MUI_LANGUAGE "ScotsGaelic" + !insertmacro MUI_LANGUAGE "Vietnamese" + !insertmacro MUI_LANGUAGE "Welsh" + !insertmacro MUI_LANGUAGE "Corsican" + !insertmacro MUI_LANGUAGE "Tatar" + +; Other unicode only untranslated languages but usable even so. + !insertmacro MUI_LANGUAGE "Armenian" + !insertmacro MUI_LANGUAGE "Georgian" + !insertmacro MUI_LANGUAGE "Hindi" + + +;-------------------------------- +;Installer Types + +InstType "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" +InstType "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" +InstType "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" + + +;-------------------------------- +;Installer Sections + +SectionGroup /e "NSIS ${VERSION}" SecNSIS + +!macro InstallStub stub + File ..\..\Stubs\${stub}-x86-ansi + File ..\..\Stubs\${stub}-x86-unicode +!macroend + +Section "NSIS Core Files (required)" SecCore + + SetDetailsPrint textonly + DetailPrint "Installing NSIS Core Files..." + SetDetailsPrint listonly + + SectionIn 1 2 3 RO + SetOutPath $INSTDIR + RMDir /r $SMPROGRAMS\NSIS + + IfFileExists $INSTDIR\nsisconf.nsi "" +2 + Rename $INSTDIR\nsisconf.nsi $INSTDIR\nsisconf.nsh + SetOverwrite off + File ..\..\nsisconf.nsh + + SetOverwrite on + File ..\..\makensis.exe + File ..\..\makensisw.exe + File ..\..\COPYING + File ..\..\NSIS.chm + !pragma verifychm "..\..\NSIS.chm" + !if /FileExists "..\..\NSIS.exe" + !if /FileExists "..\..\NSIS.exe.manifest" + File "..\..\NSIS.exe.manifest" + !endif + !else + !makensis '-v2 "..\NSISMenu.nsi" "-XOutFile ..\..\NSIS.exe"' = 0 + !endif + File ..\..\NSIS.exe + + SetOutPath $INSTDIR\Bin + File ..\..\Bin\makensis.exe + !if /FileExists "..\..\Bin\zlib1.dll" + File ..\..\Bin\zlib1.dll + !else + File ..\..\Bin\zlib.dll + !endif + + SetOutPath $INSTDIR\Stubs + File ..\..\Stubs\uninst + !insertmacro InstallStub bzip2 + !insertmacro InstallStub bzip2_solid + !insertmacro InstallStub lzma + !insertmacro InstallStub lzma_solid + !insertmacro InstallStub zlib + !insertmacro InstallStub zlib_solid + + + SetOutPath $INSTDIR\Include + File ..\..\Include\WinMessages.nsh + File ..\..\Include\Sections.nsh + File ..\..\Include\Library.nsh + File ..\..\Include\UpgradeDLL.nsh + File ..\..\Include\LogicLib.nsh + File ..\..\Include\StrFunc.nsh + File ..\..\Include\Colors.nsh + File ..\..\Include\FileFunc.nsh + File ..\..\Include\TextFunc.nsh + File ..\..\Include\WordFunc.nsh + File ..\..\Include\WinVer.nsh + File ..\..\Include\x64.nsh + File ..\..\Include\Memento.nsh + File ..\..\Include\LangFile.nsh + File ..\..\Include\InstallOptions.nsh + File ..\..\Include\MultiUser.nsh + File ..\..\Include\VB6RunTime.nsh + File ..\..\Include\Util.nsh + File ..\..\Include\WinCore.nsh + + SetOutPath $INSTDIR\Include\Win + File ..\..\Include\Win\WinDef.nsh + File ..\..\Include\Win\WinError.nsh + File ..\..\Include\Win\WinNT.nsh + File ..\..\Include\Win\WinUser.nsh + File ..\..\Include\Win\Propkey.nsh + + SetOutPath $INSTDIR\Docs\StrFunc + File ..\..\Docs\StrFunc\StrFunc.txt + + SetOutPath $INSTDIR\Docs\MultiUser + File ..\..\Docs\MultiUser\Readme.html + + SetOutPath $INSTDIR\Docs\makensisw + File ..\..\Docs\makensisw\*.txt + + !if /FileExists "..\..\Menu\index.html" + SetOutPath $INSTDIR\Menu + File ..\..\Menu\*.html + SetOutPath $INSTDIR\Menu\images + File ..\..\Menu\images\header.gif + File ..\..\Menu\images\line.gif + File ..\..\Menu\images\site.gif + !endif + + Delete $INSTDIR\makensis.htm + Delete $INSTDIR\Docs\*.html + Delete $INSTDIR\Docs\style.css + RMDir $INSTDIR\Docs + + SetOutPath $INSTDIR\Bin + !if /FileExists "..\..\Bin\LibraryLocal.exe" + File ..\..\Bin\LibraryLocal.exe + !endif + !if /FileExists "..\..\Bin\RegTool-x86.bin" + File ..\..\Bin\RegTool-x86.bin + !else + File ..\..\Bin\RegTool.bin + !endif + + CreateDirectory $INSTDIR\Plugins\x86-ansi + CreateDirectory $INSTDIR\Plugins\x86-unicode + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\TypeLib.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\TypeLib.dll + + ReadRegStr $R0 HKCR ".nsi" "" + StrCmp $R0 "NSISFile" 0 +2 + DeleteRegKey HKCR "NSISFile" + + WriteRegStr HKCR ".nsi" "" "NSIS.Script" + WriteRegStr HKCR "NSIS.Script" "" "NSIS Script File" + WriteRegStr HKCR "NSIS.Script\DefaultIcon" "" "$INSTDIR\makensisw.exe,1" + ReadRegStr $R0 HKCR "NSIS.Script\shell\open\command" "" + StrCmp $R0 "" 0 no_nsiopen + WriteRegStr HKCR "NSIS.Script\shell" "" "open" + WriteRegStr HKCR "NSIS.Script\shell\open\command" "" 'notepad.exe "%1"' + no_nsiopen: + WriteRegStr HKCR "NSIS.Script\shell\compile" "" "Compile NSIS Script" + WriteRegStr HKCR "NSIS.Script\shell\compile\command" "" '"$INSTDIR\makensisw.exe" "%1"' + WriteRegStr HKCR "NSIS.Script\shell\compile-compressor" "" "Compile NSIS Script (Choose Compressor)" + WriteRegStr HKCR "NSIS.Script\shell\compile-compressor\command" "" '"$INSTDIR\makensisw.exe" /ChooseCompressor "%1"' + + ReadRegStr $R0 HKCR ".nsh" "" + StrCmp $R0 "NSHFile" 0 +2 + DeleteRegKey HKCR "NSHFile" + + WriteRegStr HKCR ".nsh" "" "NSIS.Header" + WriteRegStr HKCR "NSIS.Header" "" "NSIS Header File" + WriteRegStr HKCR "NSIS.Header\DefaultIcon" "" "$INSTDIR\makensisw.exe,1" + ReadRegStr $R0 HKCR "NSIS.Header\shell\open\command" "" + StrCmp $R0 "" 0 no_nshopen + WriteRegStr HKCR "NSIS.Header\shell" "" "open" + WriteRegStr HKCR "NSIS.Header\shell\open\command" "" 'notepad.exe "%1"' + no_nshopen: + + System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' + +SectionEnd + +Section "Script Examples" SecExample + + SetDetailsPrint textonly + DetailPrint "Installing Script Examples..." + SetDetailsPrint listonly + + SectionIn 2 3 + SetOutPath $INSTDIR\Examples + File ..\..\Examples\makensis.nsi + File ..\..\Examples\example1.nsi + File ..\..\Examples\example2.nsi + File ..\..\Examples\viewhtml.nsi + File ..\..\Examples\waplugin.nsi + File ..\..\Examples\bigtest.nsi + File ..\..\Examples\primes.nsi + File ..\..\Examples\rtest.nsi + File ..\..\Examples\gfx.nsi + File ..\..\Examples\one-section.nsi + File ..\..\Examples\languages.nsi + File ..\..\Examples\Library.nsi + File ..\..\Examples\VersionInfo.nsi + File ..\..\Examples\UserVars.nsi + File ..\..\Examples\LogicLib.nsi + File ..\..\Examples\silent.nsi + File ..\..\Examples\StrFunc.nsi + File ..\..\Examples\FileFunc.nsi + File ..\..\Examples\FileFunc.ini + File ..\..\Examples\FileFuncTest.nsi + File ..\..\Examples\TextFunc.nsi + File ..\..\Examples\TextFunc.ini + File ..\..\Examples\TextFuncTest.nsi + File ..\..\Examples\WordFunc.nsi + File ..\..\Examples\WordFunc.ini + File ..\..\Examples\WordFuncTest.nsi + File ..\..\Examples\Memento.nsi + File /nonfatal ..\..\Examples\unicode.nsi + File /nonfatal ..\..\Examples\NSISMenu.nsi + + SetOutPath $INSTDIR\Examples\Plugin + File ..\..\Examples\Plugin\exdll.c + File ..\..\Examples\Plugin\exdll.dpr + File ..\..\Examples\Plugin\exdll.dsp + File ..\..\Examples\Plugin\exdll.dsw + File ..\..\Examples\Plugin\exdll_with_unit.dpr + File ..\..\Examples\Plugin\exdll-vs2008.sln + File ..\..\Examples\Plugin\exdll-vs2008.vcproj + File ..\..\Examples\Plugin\extdll.inc + File ..\..\Examples\Plugin\nsis.pas + + SetOutPath $INSTDIR\Examples\Plugin\nsis + File ..\..\Examples\Plugin\nsis\pluginapi.h + File /nonfatal ..\..\Examples\Plugin\nsis\pluginapi*.lib + File ..\..\Examples\Plugin\nsis\api.h + File ..\..\Examples\Plugin\nsis\nsis_tchar.h + +SectionEnd + +SectionGroup "User Interfaces" SecInterfaces + +Section "Modern User Interface" SecInterfacesModernUI + + SetDetailsPrint textonly + DetailPrint "Installing User Interfaces | Modern User Interface..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath "$INSTDIR\Examples\Modern UI" + File "..\..\Examples\Modern UI\Basic.nsi" + File "..\..\Examples\Modern UI\HeaderBitmap.nsi" + File "..\..\Examples\Modern UI\MultiLanguage.nsi" + File "..\..\Examples\Modern UI\StartMenu.nsi" + File "..\..\Examples\Modern UI\WelcomeFinish.nsi" + + SetOutPath "$INSTDIR\Contrib\Modern UI" + File "..\..\Contrib\Modern UI\System.nsh" + File "..\..\Contrib\Modern UI\ioSpecial.ini" + + SetOutPath "$INSTDIR\Docs\Modern UI" + File "..\..\Docs\Modern UI\Readme.html" + File "..\..\Docs\Modern UI\Changelog.txt" + File "..\..\Docs\Modern UI\License.txt" + + SetOutPath "$INSTDIR\Docs\Modern UI\images" + File "..\..\Docs\Modern UI\images\header.gif" + File "..\..\Docs\Modern UI\images\screen1.png" + File "..\..\Docs\Modern UI\images\screen2.png" + File "..\..\Docs\Modern UI\images\open.gif" + File "..\..\Docs\Modern UI\images\closed.gif" + + SetOutPath $INSTDIR\Contrib\UIs + File "..\..\Contrib\UIs\modern.exe" + File "..\..\Contrib\UIs\modern_headerbmp.exe" + File "..\..\Contrib\UIs\modern_headerbmpr.exe" + File "..\..\Contrib\UIs\modern_nodesc.exe" + File "..\..\Contrib\UIs\modern_smalldesc.exe" + + SetOutPath $INSTDIR\Include + File "..\..\Include\MUI.nsh" + + SetOutPath "$INSTDIR\Contrib\Modern UI 2" + File "..\..\Contrib\Modern UI 2\Deprecated.nsh" + File "..\..\Contrib\Modern UI 2\Interface.nsh" + File "..\..\Contrib\Modern UI 2\Localization.nsh" + File "..\..\Contrib\Modern UI 2\MUI2.nsh" + File "..\..\Contrib\Modern UI 2\Pages.nsh" + + SetOutPath "$INSTDIR\Contrib\Modern UI 2\Pages" + File "..\..\Contrib\Modern UI 2\Pages\Components.nsh" + File "..\..\Contrib\Modern UI 2\Pages\Directory.nsh" + File "..\..\Contrib\Modern UI 2\Pages\Finish.nsh" + File "..\..\Contrib\Modern UI 2\Pages\InstallFiles.nsh" + File "..\..\Contrib\Modern UI 2\Pages\License.nsh" + File "..\..\Contrib\Modern UI 2\Pages\StartMenu.nsh" + File "..\..\Contrib\Modern UI 2\Pages\UninstallConfirm.nsh" + File "..\..\Contrib\Modern UI 2\Pages\Welcome.nsh" + + SetOutPath "$INSTDIR\Docs\Modern UI 2" + File "..\..\Docs\Modern UI 2\Readme.html" + File "..\..\Docs\Modern UI 2\License.txt" + + SetOutPath "$INSTDIR\Docs\Modern UI 2\images" + File "..\..\Docs\Modern UI 2\images\header.gif" + File "..\..\Docs\Modern UI 2\images\screen1.png" + File "..\..\Docs\Modern UI 2\images\screen2.png" + File "..\..\Docs\Modern UI 2\images\open.gif" + File "..\..\Docs\Modern UI 2\images\closed.gif" + + SetOutPath $INSTDIR\Include + File "..\..\Include\MUI2.nsh" + +SectionEnd + +Section "Default User Interface" SecInterfacesDefaultUI + + SetDetailsPrint textonly + DetailPrint "Installing User Interfaces | Default User Interface..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath "$INSTDIR\Contrib\UIs" + File "..\..\Contrib\UIs\default.exe" + +SectionEnd + +Section "Tiny User Interface" SecInterfacesTinyUI + + SetDetailsPrint textonly + DetailPrint "Installing User Interfaces | Tiny User Interface..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath "$INSTDIR\Contrib\UIs" + File "..\..\Contrib\UIs\sdbarker_tiny.exe" + +SectionEnd + +SectionGroupEnd + +Section "Graphics" SecGraphics + + SetDetailsPrint textonly + DetailPrint "Installing Graphics..." + SetDetailsPrint listonly + + SectionIn 2 3 + + RMDir $INSTDIR\Contrib\Icons + SetOutPath $INSTDIR\Contrib\Graphics + File /r "..\..\Contrib\Graphics\*.ico" + File /r "..\..\Contrib\Graphics\*.bmp" +SectionEnd + +Section "Language Files" SecLangFiles + + SetDetailsPrint textonly + DetailPrint "Installing Language Files..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath "$INSTDIR\Contrib\Language files" + File "..\..\Contrib\Language files\*.nlf" + + SetOutPath $INSTDIR\Bin + File ..\..\Bin\MakeLangID.exe + + !insertmacro SectionFlagIsSet ${SecInterfacesModernUI} ${SF_SELECTED} mui nomui + mui: + SetOutPath "$INSTDIR\Contrib\Language files" + File "..\..\Contrib\Language files\*.nsh" + nomui: + +SectionEnd + +SectionGroup "Tools" SecTools + +Section "Zip2Exe" SecToolsZ2E + + SetDetailsPrint textonly + DetailPrint "Installing Tools | Zip2Exe..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Bin + File ..\..\Bin\zip2exe.exe + SetOutPath $INSTDIR\Contrib\zip2exe + File ..\..\Contrib\zip2exe\Base.nsh + File ..\..\Contrib\zip2exe\Modern.nsh + File ..\..\Contrib\zip2exe\Classic.nsh + +SectionEnd + +SectionGroupEnd + +SectionGroup "Plug-ins" SecPluginsPlugins + +Section "Banner plugin" SecPluginsBanner + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | Banner..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\Banner.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\Banner.dll + SetOutPath $INSTDIR\Docs\Banner + File ..\..\Docs\Banner\Readme.txt + SetOutPath $INSTDIR\Examples\Banner + File ..\..\Examples\Banner\Example.nsi +SectionEnd + +Section "Language DLL plugin" SecPluginsLangDLL + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | Language DLL..." + SetDetailsPrint listonly + + SectionIn 2 3 + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\LangDLL.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\LangDLL.dll +SectionEnd + +Section "nsExec plugin" SecPluginsnsExec + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | nsExec..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\nsExec.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\nsExec.dll + SetOutPath $INSTDIR\Docs\nsExec + File ..\..\Docs\nsExec\nsExec.txt + SetOutPath $INSTDIR\Examples\nsExec + File ..\..\Examples\nsExec\test.nsi +SectionEnd + +Section "Splash plugin" SecPluginsSplash + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | Splash..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\splash.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\splash.dll + SetOutPath $INSTDIR\Docs\Splash + File ..\..\Docs\Splash\splash.txt + SetOutPath $INSTDIR\Examples\Splash + File ..\..\Examples\Splash\Example.nsi +SectionEnd + +Section "AdvSplash plugin" SecPluginsSplashT + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | AdvSplash..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\advsplash.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\advsplash.dll + SetOutPath $INSTDIR\Docs\AdvSplash + File ..\..\Docs\AdvSplash\advsplash.txt + SetOutPath $INSTDIR\Examples\AdvSplash + File ..\..\Examples\AdvSplash\Example.nsi +SectionEnd + +Section "BgImage plugin" SecPluginsBgImage + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | BgImage..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\BgImage.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\BgImage.dll + SetOutPath $INSTDIR\Docs\BgImage + File ..\..\Docs\BgImage\BgImage.txt + SetOutPath $INSTDIR\Examples\BgImage + File ..\..\Examples\BgImage\Example.nsi +SectionEnd + +Section "InstallOptions plugin" SecPluginsIO + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | InstallOptions..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\InstallOptions.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\InstallOptions.dll + SetOutPath $INSTDIR\Docs\InstallOptions + File ..\..\Docs\InstallOptions\Readme.html + File ..\..\Docs\InstallOptions\Changelog.txt + SetOutPath $INSTDIR\Examples\InstallOptions + File ..\..\Examples\InstallOptions\test.ini + File ..\..\Examples\InstallOptions\test.nsi + File ..\..\Examples\InstallOptions\testimgs.ini + File ..\..\Examples\InstallOptions\testimgs.nsi + File ..\..\Examples\InstallOptions\testlink.ini + File ..\..\Examples\InstallOptions\testlink.nsi + File ..\..\Examples\InstallOptions\testnotify.ini + File ..\..\Examples\InstallOptions\testnotify.nsi +SectionEnd + +Section "Math plugin" SecPluginsMath + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | Math..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\Math.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\Math.dll + SetOutPath $INSTDIR\Docs\Math + File ..\..\Docs\Math\Math.txt + SetOutPath $INSTDIR\Examples\Math + File ..\..\Examples\Math\math.nsi + File ..\..\Examples\Math\mathtest.txt + File ..\..\Examples\Math\mathtest.nsi + File ..\..\Examples\Math\mathtest.ini + +SectionEnd + +Section "NSISdl plugin" SecPluginsNSISDL + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | NSISdl..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\nsisdl.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\nsisdl.dll + SetOutPath $INSTDIR\Docs\NSISdl + File ..\..\Docs\NSISdl\ReadMe.txt + File ..\..\Docs\NSISdl\License.txt +SectionEnd + +Section "System plugin" SecPluginsSystem + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | System..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\System.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\System.dll + SetOutPath $INSTDIR\Docs\System + File ..\..\Docs\System\System.html + File ..\..\Docs\System\WhatsNew.txt + SetOutPath $INSTDIR\Examples\System + File ..\..\Examples\System\Resource.dll + File ..\..\Examples\System\SysFunc.nsh + File ..\..\Examples\System\System.nsh + File ..\..\Examples\System\System.nsi +SectionEnd + +Section "nsDialogs plugin" SecPluginsDialogs + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | nsDialogs..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\nsDialogs.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\nsDialogs.dll + SetOutPath $INSTDIR\Examples\nsDialogs + File ..\..\Examples\nsDialogs\example.nsi + File ..\..\Examples\nsDialogs\InstallOptions.nsi + File ..\..\Examples\nsDialogs\timer.nsi + File ..\..\Examples\nsDialogs\welcome.nsi + SetOutPath $INSTDIR\Include + File ..\..\Include\nsDialogs.nsh + SetOutPath $INSTDIR\Docs\nsDialogs + File ..\..\Docs\nsDialogs\Readme.html + +SectionEnd + +Section "StartMenu plugin" SecPluginsStartMenu + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | StartMenu..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\StartMenu.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\StartMenu.dll + SetOutPath $INSTDIR\Docs\StartMenu + File ..\..\Docs\StartMenu\Readme.txt + SetOutPath $INSTDIR\Examples\StartMenu + File ..\..\Examples\StartMenu\Example.nsi +SectionEnd + +Section "UserInfo plugin" SecPluginsUserInfo + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | UserInfo..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\UserInfo.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\UserInfo.dll + SetOutPath $INSTDIR\Examples\UserInfo + File ..\..\Examples\UserInfo\UserInfo.nsi +SectionEnd + +Section "Dialer plugin" SecPluginsDialer + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | Dialer..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\Dialer.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\Dialer.dll + SetOutPath $INSTDIR\Docs\Dialer + File ..\..\Docs\Dialer\Dialer.txt +SectionEnd + +Section "VPatch plugin" SecPluginsVPatch + + SetDetailsPrint textonly + DetailPrint "Installing Plug-ins | VPatch..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File ..\..\Plugins\x86-ansi\VPatch.dll + SetOutPath $INSTDIR\Plugins\x86-unicode + File ..\..\Plugins\x86-unicode\VPatch.dll + SetOutPath $INSTDIR\Examples\VPatch + File ..\..\Examples\VPatch\example.nsi + File ..\..\Examples\VPatch\oldfile.txt + File ..\..\Examples\VPatch\newfile.txt + File ..\..\Examples\VPatch\patch.pat + SetOutPath $INSTDIR\Docs\VPatch + File ..\..\Docs\VPatch\Readme.html + SetOutPath $INSTDIR\Bin + File ..\..\Bin\GenPat.exe + SetOutPath $INSTDIR\Include + File ..\..\Include\VPatchLib.nsh +SectionEnd + +SectionGroupEnd + +Section -post + + ; When Modern UI is installed: + ; * Always install the English language file + ; * Always install default icons / bitmaps + + !insertmacro SectionFlagIsSet ${SecInterfacesModernUI} ${SF_SELECTED} mui nomui + + mui: + + SetDetailsPrint textonly + DetailPrint "Configuring Modern UI..." + SetDetailsPrint listonly + + !insertmacro SectionFlagIsSet ${SecLangFiles} ${SF_SELECTED} langfiles nolangfiles + + nolangfiles: + + SetOutPath "$INSTDIR\Contrib\Language files" + File "..\..\Contrib\Language files\English.nlf" + SetOutPath "$INSTDIR\Contrib\Language files" + File "..\..\Contrib\Language files\English.nsh" + + langfiles: + + !insertmacro SectionFlagIsSet ${SecGraphics} ${SF_SELECTED} graphics nographics + + nographics: + + SetOutPath $INSTDIR\Contrib\Graphics + SetOutPath $INSTDIR\Contrib\Graphics\Checks + File "..\..\Contrib\Graphics\Checks\modern.bmp" + SetOutPath $INSTDIR\Contrib\Graphics\Icons + File "..\..\Contrib\Graphics\Icons\modern-install.ico" + File "..\..\Contrib\Graphics\Icons\modern-uninstall.ico" + SetOutPath $INSTDIR\Contrib\Graphics\Header + File "..\..\Contrib\Graphics\Header\nsis.bmp" + SetOutPath $INSTDIR\Contrib\Graphics\Wizard + File "..\..\Contrib\Graphics\Wizard\win.bmp" + + graphics: + + nomui: + + SetDetailsPrint textonly + DetailPrint "Creating Registry Keys..." + SetDetailsPrint listonly + + SetOutPath $INSTDIR + + WriteRegStr HKLM "Software\NSIS" "" $INSTDIR +!ifdef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD + WriteRegDword HKLM "Software\NSIS" "VersionMajor" "${VER_MAJOR}" + WriteRegDword HKLM "Software\NSIS" "VersionMinor" "${VER_MINOR}" + WriteRegDword HKLM "Software\NSIS" "VersionRevision" "${VER_REVISION}" + WriteRegDword HKLM "Software\NSIS" "VersionBuild" "${VER_BUILD}" +!endif + + WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "UninstallString" "$INSTDIR\uninst-nsis.exe" + ;WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "QuietUninstallString" '"$INSTDIR\uninst-nsis.exe" /S' ; Ideally WACK would use this + WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "InstallLocation" "$INSTDIR" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "DisplayName" "Nullsoft Install System" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "DisplayIcon" "$INSTDIR\NSIS.exe,0" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "DisplayVersion" "${VERSION}" +!ifdef VER_MAJOR & VER_MINOR & VER_REVISION + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "VersionMajor" "${VER_MAJOR}" ; Required by WACK + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "VersionMinor" "${VER_MINOR}.${VER_REVISION}" ; Required by WACK +!endif + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "Publisher" "Nullsoft and Contributors" ; Required by WACK + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "URLInfoAbout" "http://nsis.sourceforge.net/" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "HelpLink" "http://nsis.sourceforge.net/Support" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "NoModify" "1" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "NoRepair" "1" + + SetOutPath "$INSTDIR" + File ..\..\uninst-nsis.exe + + SetDetailsPrint both + +SectionEnd + +SectionGroupEnd + +;-------------------------------- +; UMUI Sections + +SectionGroup /e "NSIS Ultra-Modern User Interface ${UMUI_VERSION}" SecUMUIG + +Section "NSIS Ultra-Modern User Interface Core Files (required)" SecUMUI + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI..." + SetDetailsPrint listonly + + SectionIn RO + + SectionIn 1 2 3 + + SetOutPath "$INSTDIR\" + !if ! /FileExists "..\..\NSISUMUI.exe" + !makensis '-v2 "NSISUMUIMenu.nsi" "-XOutFile ..\..\NSISUMUI.exe"' = 0 + !endif + File ..\..\NSISUMUI.exe + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\" + File "..\..\Contrib\UltraModernUI\UMUI.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Ini" + File "..\..\Contrib\UltraModernUI\Ini\*.ini" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Language files\" + File "..\..\Contrib\UltraModernUI\Language files\*.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File /r "..\..\Contrib\UltraModernUI\BGSkins\" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\blue.nsh" + File "..\..\Contrib\UltraModernUI\Skins\blue2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\blue\" + File "..\..\Contrib\UltraModernUI\Skins\blue\*.bmp" + + SetOutPath "$INSTDIR\Docs\UltraModernUI\" + File "..\..\Docs\UltraModernUI\*.*" + SetOutPath "$INSTDIR\Docs\UltraModernUI\images\" + File "..\..\Docs\UltraModernUI\images\*.png" + File "..\..\Docs\UltraModernUI\images\*.gif" + + SetOutPath "$INSTDIR\Examples\UltraModernUI\" + File "*.nsi" + File "*.ini" + File "*.txt" + + SetOutPath "$INSTDIR\Contrib\UIs\UltraModernUI\" + File "..\..\Contrib\UIs\UltraModernUI\*.exe" + + SetOutPath "$INSTDIR\Contrib\Graphics\UltraModernUI\" + File "..\..\Contrib\Graphics\UltraModernUI\*.*" + + SetOutPath "$INSTDIR\Include\" + File "..\..\Include\UMUI.nsh" + File "..\..\Include\MUIEx.nsh" + + + ;CreateShortCuts + ; only if all user is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL + SetShellVarContext all + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if current user is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT + SetShellVarContext current + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + + SetOutPath "$INSTDIR\" + CreateShortCut "$SMPROGRAMS\NSIS.lnk" "$INSTDIR\NSISUMUI.exe" + + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP + CreateShortCut "$DESKTOP\NSIS.lnk" "$INSTDIR\NSISUMUI.exe" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + + + ;Create uninstaller + WriteUninstaller "$INSTDIR\UninstallUMUI.exe" + + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayName" "$(^Name)" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayIcon" "$INSTDIR\UninstallUMUI.exe,0" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString" "$INSTDIR\UninstallUMUI.exe" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "Publisher" "SuperPat" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "HelpLink" "http://ultramodernui.sourceforge.net/" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "URLInfoAbout" "http://ultramodernui.sourceforge.net/" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "URLUpdateInfo" "http://ultramodernui.sourceforge.net/" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "ModifyPath" '"$INSTDIR\UninstallUMUI.exe" /modify' + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayVersion" "${UMUI_VERSION}" + +SectionEnd + +Section "Skins for Ultra-Modern UI" SecSkins + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Skins..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\brown.nsh" + File "..\..\Contrib\UltraModernUI\Skins\brown2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\brown\" + File "..\..\Contrib\UltraModernUI\Skins\brown\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\darkgreen.nsh" + File "..\..\Contrib\UltraModernUI\Skins\darkgreen2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen\" + File "..\..\Contrib\UltraModernUI\Skins\darkgreen\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\gray.nsh" + File "..\..\Contrib\UltraModernUI\Skins\gray2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\gray\" + File "..\..\Contrib\UltraModernUI\Skins\gray\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\green.nsh" + File "..\..\Contrib\UltraModernUI\Skins\green2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\green\" + File "..\..\Contrib\UltraModernUI\Skins\green\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\purple.nsh" + File "..\..\Contrib\UltraModernUI\Skins\purple2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\purple\" + File "..\..\Contrib\UltraModernUI\Skins\purple\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\red.nsh" + File "..\..\Contrib\UltraModernUI\Skins\red2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\red\" + File "..\..\Contrib\UltraModernUI\Skins\red\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftBlue.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue\" + File "..\..\Contrib\UltraModernUI\Skins\SoftBlue\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftBrown.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown\" + File "..\..\Contrib\UltraModernUI\Skins\SoftBrown\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftGray.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray\" + File "..\..\Contrib\UltraModernUI\Skins\SoftGray\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftGreen.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen\" + File "..\..\Contrib\UltraModernUI\Skins\SoftGreen\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftPurple.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple\" + File "..\..\Contrib\UltraModernUI\Skins\SoftPurple\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftRed.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed\" + File "..\..\Contrib\UltraModernUI\Skins\SoftRed\*.bmp" + +SectionEnd + +Section "BackGround Skins for Ultra-Modern UI" SecBGSkins + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | BackGround Skins..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\blue.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\blue2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue\" + File "..\..\Contrib\UltraModernUI\BGSkins\blue\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\brown.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\brown2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown\" + File "..\..\Contrib\UltraModernUI\BGSkins\brown\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen\" + File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\gray.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\gray2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray\" + File "..\..\Contrib\UltraModernUI\BGSkins\gray\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\green.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\green2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\green\" + File "..\..\Contrib\UltraModernUI\BGSkins\green\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\purple.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\purple2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple\" + File "..\..\Contrib\UltraModernUI\BGSkins\purple\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\red.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\red2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\red\" + File "..\..\Contrib\UltraModernUI\BGSkins\red\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftBlue.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftBlue\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftBrown.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftBrown\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftGray.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftGray\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftGreen.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftGreen\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftPurple.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftPurple\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftRed.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftRed\*.bmp" + +SectionEnd + + +SectionGroup /e "Plugins" SecGroupPlugins + + Section "SkinnedControls plugin version 1.4" SecSkinnedControls + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | SkinnedControls..." + SetDetailsPrint listonly + + SectionIn RO + + SectionIn 1 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File "..\..\Plugins\x86-ansi\SkinnedControls.dll" + + SetOutPath $INSTDIR\Plugins\x86-unicode + File "..\..\Plugins\x86-unicode\SkinnedControls.dll" + + SetOutPath $INSTDIR\Examples\SkinnedControls + File "..\SkinnedControls\*.nsi" + + SetOutPath $INSTDIR\Contrib\SkinnedControls\skins + File "..\..\Contrib\SkinnedControls\skins\*.bmp" + + SetOutPath $INSTDIR\Contrib\UIs + File "..\..\Contrib\UIs\modern_sb.exe" + File "..\..\Contrib\UIs\default_sb.exe" + + SetOutPath $INSTDIR\Docs\SkinnedControls + File "..\..\Docs\SkinnedControls\*.*" + SetOutPath "$INSTDIR\Docs\SkinnedControls\images\" + File "..\..\Docs\SkinnedControls\images\*.png" + File "..\..\Docs\SkinnedControls\images\*.gif" + + SectionEnd + + Section "SkinnedControls plugin Sources Code" SecSkinnedControlsSources + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | SkinnedControls Soucres Code..." + SetDetailsPrint listonly + + SectionIn 3 + + SetOutPath $INSTDIR\Contrib\SkinnedControls + File "..\..\Contrib\SkinnedControls\*.h" + File "..\..\Contrib\SkinnedControls\*.c" + File "..\..\Contrib\SkinnedControls\SkinnedControls.sln" + File "..\..\Contrib\SkinnedControls\SkinnedControls.vcproj" + SetOutPath $INSTDIR\Contrib\SkinnedControls\coolsb + File "..\..\Contrib\SkinnedControls\coolsb\*.h" + File "..\..\Contrib\SkinnedControls\coolsb\*.c" + File "..\..\Contrib\SkinnedControls\coolsb\detours.lib" + File "..\..\Contrib\SkinnedControls\coolsb\coolsb.vcproj" + + SectionEnd + + + Section "InstallOptionsEx plugin version 2.4.5 beta 3" SecInstallOptionsEx + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | InstallOptionsEx..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File "..\..\Plugins\x86-ansi\InstallOptionsEx.dll" + + SetOutPath $INSTDIR\Plugins\x86-unicode + File "..\..\Plugins\x86-unicode\InstallOptionsEx.dll" + + SetOutPath $INSTDIR\Examples\InstallOptionsEx + File "..\InstallOptionsEx\*.nsi" + File "..\InstallOptionsEx\*.ini" + + SetOutPath $INSTDIR\Docs\InstallOptionsEx + File "..\..\Docs\InstallOptionsEx\*.*" + + SectionEnd + + Section "InstallOptionsEx plugin Sources Code" SecInstallOptionsExSources + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | InstallOptionsEx Soucres Code..." + SetDetailsPrint listonly + + SectionIn 3 + + SetOutPath $INSTDIR\Contrib\InstallOptionsEx + File "..\..\Contrib\InstallOptionsEx\*.cpp" + File "..\..\Contrib\InstallOptionsEx\*.c" + File "..\..\Contrib\InstallOptionsEx\*.h" + File "..\..\Contrib\InstallOptionsEx\ioptdll.rc" + File "..\..\Contrib\InstallOptionsEx\io.sln" + File "..\..\Contrib\InstallOptionsEx\io.vcproj" + SetOutPath $INSTDIR\Contrib\InstallOptionsEx\Controls + File "..\..\Contrib\InstallOptionsEx\Controls\*.h" + + SectionEnd + + + Section "nsArray plugin version 1.1.1.7" SecnsArray + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | nsArray..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File "..\..\Plugins\x86-ansi\nsArray.dll" + + SetOutPath $INSTDIR\Plugins\x86-unicode + File "..\..\Plugins\x86-unicode\nsArray.dll" + + SetOutPath $INSTDIR\Include + File "..\..\Include\nsArray.nsh" + + SetOutPath $INSTDIR\Docs\nsArray + File "..\..\Docs\nsArray\*.*" + + SetOutPath $INSTDIR\Examples\nsArray + File "..\nsArray\*.nsi" + + SectionEnd + + Section "nsArray plugin Sources Code" SecnsArraySources + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | nsArray Soucres Code..." + SetDetailsPrint listonly + + SectionIn 3 + + SetOutPath $INSTDIR\Contrib\nsArray + File "..\..\Contrib\nsArray\*.*" + + SectionEnd + +SectionGroupEnd + +SectionGroupEnd + + +;-------------------------------- +;Uninstall Section(s) + +!macro removeUMUIfiles + + ;uninstall SkinnedControls Plugin + Delete "$INSTDIR\Plugins\SkinnedControls.dll" + Delete "$INSTDIR\Plugins\x86-ansi\SkinnedControls.dll" + Delete "$INSTDIR\Plugins\x86-unicode\SkinnedControls.dll" + Delete "$INSTDIR\Contrib\UIs\modern_sb.exe" + Delete "$INSTDIR\Contrib\UIs\default_sb.exe" + RMDir /r "$INSTDIR\Contrib\SkinnedControls" + Delete "$INSTDIR\Docs\SkinnedControls\*.*" + RMDir "$INSTDIR\Docs\SkinnedControls" + Delete "$INSTDIR\Examples\SkinnedControls\*.nsi" + RMDir "$INSTDIR\Examples\SkinnedControls" + + ;uninstall InstallOptionsEx Plugin + Delete "$INSTDIR\Plugins\InstallOptionsEx*.dll" + Delete "$INSTDIR\Plugins\x86-ansi\InstallOptionsEx.dll" + Delete "$INSTDIR\Plugins\x86-unicode\InstallOptionsEx.dll" + RMDir /r "$INSTDIR\Contrib\InstallOptionsEx" + Delete "$INSTDIR\Docs\InstallOptionsEx\*.*" + RMDir "$INSTDIR\Docs\InstallOptionsEx" + Delete "$INSTDIR\Examples\InstallOptionsEx\*.*" + RMDir "$INSTDIR\Examples\InstallOptionsEx" + + ;uninstall nsArray Plugin + Delete "$INSTDIR\Plugins\x86-ansi\nsArray.dll" + Delete "$INSTDIR\Plugins\x86-unicode\nsArray.dll" + Delete "$INSTDIR\Include\nsArray.nsh" + Delete "$INSTDIR\Contrib\nsArray\*.*" + RMDir "$INSTDIR\Contrib\nsArray" + Delete "$INSTDIR\Docs\nsArray\*.*" + RMDir "$INSTDIR\Docs\nsArray" + Delete "$INSTDIR\Examples\nsArray\*.nsi" + RMDir "$INSTDIR\Examples\nsArray" + + ;uninstall NSISArray Plugin + IfFileExists $INSTDIR\Plugins\NSISArray.dll "" noNSISArray + Delete "$INSTDIR\Plugins\NSISArray*.dll" + Delete "$INSTDIR\Include\NSISArray.nsh" + Delete "$INSTDIR\Contrib\NSISArray\*.*" + RMDir "$INSTDIR\Contrib\NSISArray" + Delete "$INSTDIR\Docs\NSISArray\*.*" + RMDir "$INSTDIR\Docs\NSISArray" + Delete "$INSTDIR\Examples\NSISArray\*.nsi" + RMDir "$INSTDIR\Examples\NSISArray" + noNSISArray: + + Delete "$INSTDIR\Include\UMUI.nsh" + Delete "$INSTDIR\Include\MUIEx.nsh" + RMDir "$INSTDIR\Include" + + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AdditionalTasks.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternativeStartMenu.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternativeStartMenuApplication.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Confirm.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Information.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\ioSpecial.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Maintenance.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\MaintenanceSetupType.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\MaintenanceUpdateSetupType.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\SerialNumber.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini" + RMDir "$INSTDIR\Contrib\UltraModernUI\Ini" + + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\green" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\red" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\green2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\green.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\red2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\red.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed.nsh" + RMDir "$INSTDIR\Contrib\UltraModernUI\BGSkins" + + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\blue" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\brown" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\gray" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\green" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\purple" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\red" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\blue2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\blue.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\brown2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\brown.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\gray2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\gray.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\green2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\green.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\purple2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\purple.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\red2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\red.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed.nsh" + RMDir "$INSTDIR\Contrib\UltraModernUI\Skins" + + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Language files" + + Delete "$INSTDIR\Contrib\UltraModernUI\UMUI.nsh" + RMDir "$INSTDIR\Contrib\UltraModernUI\" + RMDir "$INSTDIR\Contrib" + + RMDir /r "$INSTDIR\Docs\UltraModernUI\" + RMDir "$INSTDIR\Docs" + + RMDir /r "$INSTDIR\Examples\UltraModernUI\" + RMDir "$INSTDIR\Examples" + + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_bigdesc.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_headerbgimage.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_sb.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_bigdesc.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_nodesc.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_noleftimage.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_sb.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_small.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_small_sb.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_smalldesc.exe" + RMDir "$INSTDIR\Contrib\UIs\UltraModernUI\" + RMDir "$INSTDIR\Contrib\UIs" + + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Complete.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\CompleteEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Continue.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\ContinueEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Custom.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\CustomEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\HeaderBG.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Minimal.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\MinimalEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Modify.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\ModifyEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Remove.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\RemoveEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Repair.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\RepairEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Standard.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\StandardEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Icon2.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Icon.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\install.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\installEx.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\UnIcon2.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\UnIcon.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\uninstall.ico" + RMDir "$INSTDIR\Contrib\Graphics\UltraModernUI\" + RMDir "$INSTDIR\Contrib\Graphics" + + Delete "$INSTDIR\NSISUMUI.exe" + Delete "$INSTDIR\UninstallUMUI.exe" + +!macroend + + +Section Uninstall + + SetDetailsPrint textonly + DetailPrint "Uninstalling NSIS and Ultra-Modern UI..." + SetDetailsPrint listonly + + IfFileExists $INSTDIR\makensis.exe nsis_installed + MessageBox MB_YESNO "It does not appear that NSIS is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES nsis_installed + Abort "Uninstall aborted by user" + nsis_installed: + + !insertmacro removeUMUIfiles + + Delete "$SMPROGRAMS\NSIS.lnk" + Delete "$DESKTOP\NSIS.lnk" + + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" + + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_SetupType" ;"${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_InstType" ;"${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_Components" ;"${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_UNINSTALLPATH_REGISTRY_VALUENAME}" + DeleteRegKey /ifempty ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + + + SetDetailsPrint textonly + DetailPrint "Uninstalling NSIS Development Shell Extensions..." + SetDetailsPrint listonly + + SetDetailsPrint textonly + DetailPrint "Deleting Registry Keys..." + SetDetailsPrint listonly + + ReadRegStr $R0 HKCR ".nsi" "" + StrCmp $R0 "NSIS.Script" 0 +2 + DeleteRegKey HKCR ".nsi" + + ReadRegStr $R0 HKCR ".nsh" "" + StrCmp $R0 "NSIS.Header" 0 +2 + DeleteRegKey HKCR ".nsh" + + DeleteRegKey HKCR "NSIS.Script" + DeleteRegKey HKCR "NSIS.Header" + + System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' + + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" + DeleteRegKey HKLM "Software\NSIS" + + SetDetailsPrint textonly + DetailPrint "Deleting Files..." + SetDetailsPrint listonly + + Delete $INSTDIR\makensis.exe + Delete $INSTDIR\makensisw.exe + Delete $INSTDIR\NSIS.exe + Delete $INSTDIR\NSIS.exe.manifest + Delete $INSTDIR\license.txt + Delete $INSTDIR\COPYING + Delete $INSTDIR\uninst-nsis.exe + Delete $INSTDIR\nsisconf.nsi + Delete $INSTDIR\nsisconf.nsh + Delete $INSTDIR\NSIS.chm + RMDir /r $INSTDIR\Bin + RMDir /r $INSTDIR\Contrib + RMDir /r $INSTDIR\Docs + RMDir /r $INSTDIR\Examples + RMDir /r $INSTDIR\Include + RMDir /r $INSTDIR\Menu + RMDir /r $INSTDIR\Plugins + RMDir /r $INSTDIR\Stubs + RMDir /r $INSTDIR + + SetDetailsPrint both + +SectionEnd + + +;-------------------------------- +;Installer Sections Declaration dans Description + +!insertmacro UMUI_DECLARECOMPONENTS_BEGIN + !insertmacro UMUI_COMPONENT SecNSIS + !insertmacro UMUI_COMPONENT SecCore + !insertmacro UMUI_COMPONENT SecExample + !insertmacro UMUI_COMPONENT SecInterfaces + !insertmacro UMUI_COMPONENT SecInterfacesModernUI + !insertmacro UMUI_COMPONENT SecInterfacesDefaultUI + !insertmacro UMUI_COMPONENT SecInterfacesTinyUI + !insertmacro UMUI_COMPONENT SecTools + !insertmacro UMUI_COMPONENT SecToolsZ2E + !insertmacro UMUI_COMPONENT SecGraphics + !insertmacro UMUI_COMPONENT SecLangFiles + !insertmacro UMUI_COMPONENT SecPluginsPlugins + !insertmacro UMUI_COMPONENT SecPluginsBanner + !insertmacro UMUI_COMPONENT SecPluginsLangDLL + !insertmacro UMUI_COMPONENT SecPluginsnsExec + !insertmacro UMUI_COMPONENT SecPluginsSplash + !insertmacro UMUI_COMPONENT SecPluginsSplashT + !insertmacro UMUI_COMPONENT SecPluginsSystem + !insertmacro UMUI_COMPONENT SecPluginsMath + !insertmacro UMUI_COMPONENT SecPluginsDialer + !insertmacro UMUI_COMPONENT SecPluginsIO + !insertmacro UMUI_COMPONENT SecPluginsDialogs + !insertmacro UMUI_COMPONENT SecPluginsStartMenu + !insertmacro UMUI_COMPONENT SecPluginsBgImage + !insertmacro UMUI_COMPONENT SecPluginsUserInfo + !insertmacro UMUI_COMPONENT SecPluginsNSISDL + !insertmacro UMUI_COMPONENT SecPluginsVPatch + + !insertmacro UMUI_COMPONENT SecUMUI + !insertmacro UMUI_COMPONENT SecSkins + !insertmacro UMUI_COMPONENT SecBGSkins + !insertmacro UMUI_COMPONENT SecSkinnedControls + !insertmacro UMUI_COMPONENT SecSkinnedControlsSources + !insertmacro UMUI_COMPONENT SecInstallOptionsEx + !insertmacro UMUI_COMPONENT SecInstallOptionsExSources + !insertmacro UMUI_COMPONENT SecnsArray + !insertmacro UMUI_COMPONENT SecnsArraySources +!insertmacro UMUI_DECLARECOMPONENTS_END + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecNSIS} "The NSIS package version ${VER_MAJOR}.${VER_MINOR}" + !insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "The core files required to use NSIS (compiler etc.)" + !insertmacro MUI_DESCRIPTION_TEXT ${SecExample} "Example installation scripts that show you how to use NSIS" + !insertmacro MUI_DESCRIPTION_TEXT ${SecInterfaces} "User interface designs that can be used to change the installer look and feel" + !insertmacro MUI_DESCRIPTION_TEXT ${SecInterfacesModernUI} "A modern user interface like the wizards of recent Windows versions" + !insertmacro MUI_DESCRIPTION_TEXT ${SecInterfacesDefaultUI} "The default NSIS user interface which you can customize to make your own UI" + !insertmacro MUI_DESCRIPTION_TEXT ${SecInterfacesTinyUI} "A tiny version of the default user interface" + !insertmacro MUI_DESCRIPTION_TEXT ${SecTools} "Tools that help you with NSIS development" + !insertmacro MUI_DESCRIPTION_TEXT ${SecToolsZ2E} "A utility that converts a ZIP file to a NSIS installer" + !insertmacro MUI_DESCRIPTION_TEXT ${SecGraphics} "Icons, checkbox images and other graphics" + !insertmacro MUI_DESCRIPTION_TEXT ${SecLangFiles} "Language files used to support multiple languages in an installer" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsPlugins} "Useful plugins that extend NSIS's functionality" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsBanner} "Plugin that lets you show a banner before installation starts" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsLangDLL} "Plugin that lets you add a language select dialog to your installer" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsnsExec} "Plugin that executes console programs and prints its output in the NSIS log window or hides it" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsSplash} "Splash screen add-on that lets you add a splash screen to an installer" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsSplashT} "Splash screen add-on with transparency support that lets you add a splash screen to an installer" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsSystem} "Plugin that lets you call Win32 API or external DLLs" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsMath} "Plugin that lets you evaluate complicated mathematical expressions" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsDialer} "Plugin that provides internet connection functions" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsIO} "Plugin that lets you add custom pages to an installer" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsDialogs} "Plugin that lets you add custom pages to an installer" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsStartMenu} "Plugin that lets the user select the start menu folder" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsBgImage} "Plugin that lets you show a persistent background image plugin and play sounds" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsUserInfo} "Plugin that that gives you the user name and the user account type" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsNSISDL} "Plugin that lets you create a web based installer" + !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsVPatch} "Plugin that lets you create patches to upgrade older files" + + !insertmacro MUI_DESCRIPTION_TEXT ${SecUMUI} "The Utra-Modern User Interface for NSIS." + !insertmacro MUI_DESCRIPTION_TEXT ${SecSkins} "A lot of skins for the Utra-Modern User Interface." + !insertmacro MUI_DESCRIPTION_TEXT ${SecBGSkins} "A lot of background skins for the Utra-Modern User Interface." + !insertmacro MUI_DESCRIPTION_TEXT ${SecGroupPlugins} "Install very useful NSIS plugins used by Ultra-Modern UI to extend the possibilities of NSIS." + !insertmacro MUI_DESCRIPTION_TEXT ${SecSkinnedControls} "This NSIS plugin, writing by SuperPat, allow you to skin all buttons and scrollbars of your installer.$\n$\rIt's used by default with the UltraModern style." + !insertmacro MUI_DESCRIPTION_TEXT ${SecSkinnedControlsSources} "The Sources code of the SkinnedControls plugin." + !insertmacro MUI_DESCRIPTION_TEXT ${SecInstallOptionsEx} "This NSIS plugin, writing by deguix and SuperPat is an expanded version of the original InstallOptions plugin containing a lot of new features.$\nThis plugin is supported natively by Ultra-Modern UI." + !insertmacro MUI_DESCRIPTION_TEXT ${SecInstallOptionsExSources} "The Sources code of the InstallOptionsEx plugin." + !insertmacro MUI_DESCRIPTION_TEXT ${SecnsArray} "This NSIS plugin, writing by Afrow UK, add the support of the array in NSIS. It comes with plenty of functions for managing your arrays.$\nThis plugin is used with the AlternativeStartMenu and MultiLanguages pages of Ultra-Modern UI." + !insertmacro MUI_DESCRIPTION_TEXT ${SecnsArraySources} "The Sources code of the nsArray plugin." +!insertmacro MUI_FUNCTION_DESCRIPTION_END + + +;-------------------------------- +; Pages functions + +Function addtasks_function + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK DESKTOP 1 "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LINE + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" + + UserInfo::GetAccountType + Pop $R0 + StrCmp $R0 "Guest" 0 notLimited + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + Goto endShellVarContext + notLimited: + !insertmacro UMUI_GETSHELLVARCONTEXT + Pop $R0 + StrCmp $R0 "current" 0 allShellVarContext + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 0 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + Goto endShellVarContext + allShellVarContext: + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 0 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + endShellVarContext: + ClearErrors + +FunctionEnd + +!macro confirm_addline section + + SectionGetFlags ${Sec${section}} $1 + IntOp $1 $1 & ${SF_SELECTED} + IntCmp $1 ${SF_SELECTED} 0 n${section} n${section} + SectionGetText ${Sec${section}} $1 + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " - $1" + n${section}: + +!macroend + +Function confirm_function + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + ;For the setuptype page + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SETUPTYPE_TITLE):" + !insertmacro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT + Pop $R0 + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $R0" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_COMPNENTS)" + + !insertmacro confirm_addline NSIS + !insertmacro confirm_addline Core + !insertmacro confirm_addline Example + !insertmacro confirm_addline Interfaces + !insertmacro confirm_addline InterfacesModernUI + !insertmacro confirm_addline InterfacesDefaultUI + !insertmacro confirm_addline InterfacesTinyUI + !insertmacro confirm_addline Tools + !insertmacro confirm_addline ToolsZ2E + !insertmacro confirm_addline Graphics + !insertmacro confirm_addline LangFiles + !insertmacro confirm_addline PluginsBanner + !insertmacro confirm_addline PluginsLangDLL + !insertmacro confirm_addline PluginsnsExec + !insertmacro confirm_addline PluginsSplash + !insertmacro confirm_addline PluginsSplashT + !insertmacro confirm_addline PluginsSystem + !insertmacro confirm_addline PluginsMath + !insertmacro confirm_addline PluginsDialer + !insertmacro confirm_addline PluginsIO + !insertmacro confirm_addline PluginsDialogs + !insertmacro confirm_addline PluginsStartMenu + !insertmacro confirm_addline PluginsBgImage + !insertmacro confirm_addline PluginsUserInfo + !insertmacro confirm_addline PluginsNSISDL + !insertmacro confirm_addline PluginsVPatch + + !insertmacro confirm_addline UMUI + !insertmacro confirm_addline Skins + !insertmacro confirm_addline BGSkins + !insertmacro confirm_addline SkinnedControls + !insertmacro confirm_addline SkinnedControlsSources + !insertmacro confirm_addline InstallOptionsEx + !insertmacro confirm_addline InstallOptionsExSources + !insertmacro confirm_addline nsArray + !insertmacro confirm_addline nsArraySources + + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_ADDITIONALTASKS_TITLE):" + ;Only if one at least of additional icon check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;ShellVarContext + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT)" + ; only if for all user radio is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if for current user is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + +FunctionEnd + +Function preuninstall_function + + IfFileExists $INSTDIR\makensis.exe nsis_installed + MessageBox MB_YESNO "It does not appear that NSIS is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES nsis_installed + Abort "Install aborted by user" + nsis_installed: + + SetDetailsPrint textonly + DetailPrint "Uninstalling NSIS and Ultra-Modern UI..." + SetDetailsPrint listonly + + !insertmacro removeUMUIfiles + + Delete "$SMPROGRAMS\NSIS.lnk" + Delete "$DESKTOP\NSIS.lnk" + + ClearErrors + ReadRegStr $R0 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_StartMenuFolder" + IfErrors checkNext 0 + StrCpy $R1 $R0 "" -8 ; copy last height chars + StrCmpS $R1 "\Contrib" 0 removeShortcuts + StrCpy $R0 $R0 -8 ; remove \Contrib + Goto removeShortcuts + checkNext: + ReadRegStr $R0 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "StartMenuFolder" + IfErrors noStartMenu removeShortcuts + removeShortcuts: + SetShellVarContext all + Delete "$SMPROGRAMS\$R0\Contrib\zip2exe (Create SFX).lnk" + Delete "$SMPROGRAMS\$R0\Contrib\AdvSplash Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Banner Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\BgImage Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\MakeNSISw Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Math Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Modern UI 2 Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Modern UI Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\nsDialogs Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\nsExec Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\NSISdl Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Splash Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\StartMenu Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\System Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\VPatch Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\NSISArray Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\UltraModernUI Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\SkinnedControls Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\nsArray Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\InstallOptionsEx Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Uninstall UltraModernUI.lnk" + RMDir "$SMPROGRAMS\$R0\Contrib" + Delete "$SMPROGRAMS\$R0\Uninstall NSIS.lnk" + Delete "$SMPROGRAMS\$R0\NSIS Menu.lnk" + Delete "$SMPROGRAMS\$R0\NSIS Examples Directory.lnk" + Delete "$SMPROGRAMS\$R0\NSIS Documentation.lnk" + Delete "$SMPROGRAMS\$R0\MakeNSISW (Compiler GUI).lnk" + Delete "$SMPROGRAMS\$R0\NSIS Site.url" + Delete "$SMPROGRAMS\$R0\Uninstall UltraModernUI.lnk" + Delete "$SMPROGRAMS\$R0\NSIS.lnk" + RMDir "$SMPROGRAMS\$R0" + + SetShellVarContext current + Delete "$SMPROGRAMS\$R0\Contrib\zip2exe (Create SFX).lnk" + Delete "$SMPROGRAMS\$R0\Contrib\AdvSplash Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Banner Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\BgImage Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\MakeNSISw Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Math Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Modern UI 2 Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Modern UI Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\nsDialogs Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\nsExec Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\NSISdl Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Splash Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\StartMenu Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\System Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\VPatch Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\NSISArray Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\UltraModernUI Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\SkinnedControls Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\nsArray Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\InstallOptionsEx Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Uninstall UltraModernUI.lnk" + RMDir "$SMPROGRAMS\$R0\Contrib" + Delete "$SMPROGRAMS\$R0\Uninstall NSIS.lnk" + Delete "$SMPROGRAMS\$R0\NSIS Menu.lnk" + Delete "$SMPROGRAMS\$R0\NSIS Examples Directory.lnk" + Delete "$SMPROGRAMS\$R0\NSIS Documentation.lnk" + Delete "$SMPROGRAMS\$R0\MakeNSISW (Compiler GUI).lnk" + Delete "$SMPROGRAMS\$R0\NSIS Site.url" + Delete "$SMPROGRAMS\$R0\Uninstall UltraModernUI.lnk" + Delete "$SMPROGRAMS\$R0\NSIS.lnk" + RMDir "$SMPROGRAMS\$R0" + noStartMenu: + + + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" + + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_SetupType" ;"${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_InstType" ;"${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_Components" ;"${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_UNINSTALLPATH_REGISTRY_VALUENAME}" + ; No more used registry keys + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_StartMenuFolder" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "StartMenuFolder" + + + ReadRegStr $R0 HKCR ".nsi" "" + StrCmp $R0 "NSIS.Script" 0 +2 + DeleteRegKey HKCR ".nsi" + + ReadRegStr $R0 HKCR ".nsh" "" + StrCmp $R0 "NSIS.Header" 0 +2 + DeleteRegKey HKCR ".nsh" + + DeleteRegKey HKCR "NSIS.Script" + DeleteRegKey HKCR "NSIS.Header" + + System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' + + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" + + Delete $INSTDIR\makensis.exe + Delete $INSTDIR\makensisw.exe + Delete $INSTDIR\NSIS.exe + Delete $INSTDIR\NSIS.exe.manifest + Delete $INSTDIR\license.txt + Delete $INSTDIR\COPYING + Delete $INSTDIR\uninst-nsis.exe + Delete $INSTDIR\NSIS.chm + + RMDir /r $INSTDIR\Stubs + + Delete $INSTDIR\Include\WinMessages.nsh + Delete $INSTDIR\Include\Sections.nsh + Delete $INSTDIR\Include\Library.nsh + Delete $INSTDIR\Include\UpgradeDLL.nsh + Delete $INSTDIR\Include\LogicLib.nsh + Delete $INSTDIR\Include\StrFunc.nsh + Delete $INSTDIR\Include\Colors.nsh + Delete $INSTDIR\Include\FileFunc.nsh + Delete $INSTDIR\Include\TextFunc.nsh + Delete $INSTDIR\Include\WordFunc.nsh + Delete $INSTDIR\Include\WinVer.nsh + Delete $INSTDIR\Include\x64.nsh + Delete $INSTDIR\Include\Memento.nsh + Delete $INSTDIR\Include\LangFile.nsh + Delete $INSTDIR\Include\InstallOptions.nsh + + RMDir /r $INSTDIR\Docs\StrFunc + RMDir /r $INSTDIR\Docs\makensisw + RMDir /r $INSTDIR\Menu + + RMDir /r $INSTDIR\Bin + + Delete $INSTDIR\Examples\makensis.nsi + Delete $INSTDIR\Examples\example1.nsi + Delete $INSTDIR\Examples\example2.nsi + Delete $INSTDIR\Examples\viewhtml.nsi + Delete $INSTDIR\Examples\waplugin.nsi + Delete $INSTDIR\Examples\bigtest.nsi + Delete $INSTDIR\Examples\primes.nsi + Delete $INSTDIR\Examples\rtest.nsi + Delete $INSTDIR\Examples\gfx.nsi + Delete $INSTDIR\Examples\one-section.nsi + Delete $INSTDIR\Examples\languages.nsi + Delete $INSTDIR\Examples\Library.nsi + Delete $INSTDIR\Examples\VersionInfo.nsi + Delete $INSTDIR\Examples\UserVars.nsi + Delete $INSTDIR\Examples\LogicLib.nsi + Delete $INSTDIR\Examples\silent.nsi + Delete $INSTDIR\Examples\StrFunc.nsi + Delete $INSTDIR\Examples\FileFunc.nsi + Delete $INSTDIR\Examples\FileFunc.ini + Delete $INSTDIR\Examples\FileFuncTest.nsi + Delete $INSTDIR\Examples\TextFunc.nsi + Delete $INSTDIR\Examples\TextFunc.ini + Delete $INSTDIR\Examples\TextFuncTest.nsi + Delete $INSTDIR\Examples\WordFunc.nsi + Delete $INSTDIR\Examples\WordFunc.ini + Delete $INSTDIR\Examples\WordFuncTest.nsi + + RMDir /r "$INSTDIR\Examples\Modern UI" + RMDir /r "$INSTDIR\Contrib\Modern UI" + RMDir /r "$INSTDIR\Docs\Modern UI" + Delete $INSTDIR\Include\MUI.nsh + + RMDir /r "$INSTDIR\Examples\Modern UI 2" + RMDir /r "$INSTDIR\Contrib\Modern UI 2" + RMDir /r "$INSTDIR\Docs\Modern UI 2" + Delete $INSTDIR\Include\MUI2.nsh + + Delete $INSTDIR\Contrib\UIs\default.exe + Delete $INSTDIR\Contrib\UIs\modern.exe + Delete $INSTDIR\Contrib\UIs\modern_headerbmp.exe + Delete $INSTDIR\Contrib\UIs\modern_headerbmpr.exe + Delete $INSTDIR\Contrib\UIs\modern_nodesc.exe + Delete $INSTDIR\Contrib\UIs\modern_smalldesc.exe + Delete $INSTDIR\Contrib\UIs\sdbarker_tiny.exe + + RMDir /r $INSTDIR\Contrib\Graphics + + RMDir /r "$INSTDIR\Contrib\Language files\" + + RMDir /r $INSTDIR\Contrib\zip2exe + + Delete $INSTDIR\Plugins\Banner.dll + Delete $INSTDIR\Plugins\x86-ansi\Banner.dll + Delete $INSTDIR\Plugins\x86-unicode\Banner.dll + RMDir /r "$INSTDIR\Docs\Banner\" + RMDir /r "$INSTDIR\Examples\Banner\" + + Delete $INSTDIR\Plugins\TypeLib.dll + Delete $INSTDIR\Plugins\x86-ansi\TypeLib.dll + Delete $INSTDIR\Plugins\x86-unicode\TypeLib.dll + + Delete $INSTDIR\Plugins\LangDLL.dll + Delete $INSTDIR\Plugins\x86-ansi\LangDLL.dll + Delete $INSTDIR\Plugins\x86-unicode\LangDLL.dll + + Delete $INSTDIR\Plugins\nsExec.dll + Delete $INSTDIR\Plugins\x86-ansi\nsExec.dll + Delete $INSTDIR\Plugins\x86-unicode\nsExec.dll + RMDir /r $INSTDIR\Docs\nsExec + RMDir /r $INSTDIR\Examples\nsExec + + Delete $INSTDIR\Plugins\splash.dll + Delete $INSTDIR\Plugins\x86-ansi\splash.dll + Delete $INSTDIR\Plugins\x86-unicode\splash.dll + RMDir /r $INSTDIR\Docs\Splash + RMDir /r $INSTDIR\Examples\Splash + + Delete $INSTDIR\Plugins\advsplash.dll + Delete $INSTDIR\Plugins\x86-ansi\advsplash.dll + Delete $INSTDIR\Plugins\x86-unicode\advsplash.dll + RMDir /r $INSTDIR\Docs\AdvSplash + RMDir /r $INSTDIR\Examples\AdvSplash + + Delete $INSTDIR\Plugins\BgImage.dll + Delete $INSTDIR\Plugins\x86-ansi\BgImage.dll + Delete $INSTDIR\Plugins\x86-unicode\BgImage.dll + RMDir /r $INSTDIR\Docs\BgImage + RMDir /r $INSTDIR\Examples\BgImage + + Delete $INSTDIR\Plugins\InstallOptions.dll + Delete $INSTDIR\Plugins\x86-ansi\InstallOptions.dll + Delete $INSTDIR\Plugins\x86-unicode\InstallOptions.dll + RMDir /r $INSTDIR\Docs\InstallOptions + RMDir /r $INSTDIR\Examples\InstallOptions + + Delete $INSTDIR\Plugins\Math.dll + Delete $INSTDIR\Plugins\x86-ansi\Math.dll + Delete $INSTDIR\Plugins\x86-unicode\Math.dll + RMDir /r $INSTDIR\Docs\Math + RMDir /r $INSTDIR\Examples\Math + + Delete $INSTDIR\Plugins\nsisdl.dll + Delete $INSTDIR\Plugins\x86-ansi\nsisdl.dll + Delete $INSTDIR\Plugins\x86-unicode\nsisdl.dll + RMDir /r $INSTDIR\Docs\NSISdl + + Delete $INSTDIR\Plugins\System.dll + Delete $INSTDIR\Plugins\x86-ansi\System.dll + Delete $INSTDIR\Plugins\x86-unicode\System.dll + RMDir /r $INSTDIR\Docs\System + RMDir /r $INSTDIR\Examples\System + + Delete $INSTDIR\Plugins\nsDialogs.dll + Delete $INSTDIR\Plugins\x86-ansi\nsDialogs.dll + Delete $INSTDIR\Plugins\x86-unicode\nsDialogs.dll + RMDir /r $INSTDIR\Examples\nsDialogs + Delete $INSTDIR\Include\nsDialogs.nsh + RMDir /r $INSTDIR\Docs\nsDialogs + + Delete $INSTDIR\Plugins\StartMenu.dll + Delete $INSTDIR\Plugins\x86-ansi\StartMenu.dll + Delete $INSTDIR\Plugins\x86-unicode\StartMenu.dll + RMDir /r $INSTDIR\Docs\StartMenu + RMDir /r $INSTDIR\Examples\StartMenu + + Delete $INSTDIR\Plugins\UserInfo.dll + Delete $INSTDIR\Plugins\x86-ansi\UserInfo.dll + Delete $INSTDIR\Plugins\x86-unicode\UserInfo.dll + RMDir /r $INSTDIR\Examples + + Delete $INSTDIR\Plugins\Dialer.dll + Delete $INSTDIR\Plugins\x86-ansi\Dialer.dll + Delete $INSTDIR\Plugins\x86-unicode\Dialer.dll + RMDir /r $INSTDIR\Docs\Dialer + + Delete $INSTDIR\Plugins\VPatch.dll + Delete $INSTDIR\Plugins\x86-ansi\VPatch.dll + Delete $INSTDIR\Plugins\x86-unicode\VPatch.dll + RMDir /r $INSTDIR\Examples\VPatch + RMDir /r $INSTDIR\Docs\VPatch + Delete $INSTDIR\Include\VPatchLib.nsh + + RMDir "$INSTDIR" + + SetDetailsPrint both + +FunctionEnd + + +;-------------------------------- +;Init Functions + +Function .onInit + + !insertmacro UMUI_MULTILANG_GET + + ; Change default InstallDir to C:\ProgramData on Windows Vista and more + ClearErrors + IfFileExists $INSTDIR endCheckVersion 0 + ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion + IfErrors endCheckVersion 0 ; If not WinNT + IntCmp $0 6 0 endCheckVersion 0 ; If version >= 6 + SetShellVarContext all + StrCpy $INSTDIR "$APPDATA\NSIS" + endCheckVersion: + +FunctionEnd + +Function un.onInit + + !insertmacro UMUI_MULTILANG_GET + FunctionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/NoLeftImage.nsi b/Examples/UltraModernUI/NoLeftImage.nsi index af3807a..69c057a 100644 --- a/Examples/UltraModernUI/NoLeftImage.nsi +++ b/Examples/UltraModernUI/NoLeftImage.nsi @@ -1,124 +1,127 @@ -;NSIS Ultra Modern User Interface -;No Left Image Option Example Script -;Written by Joost Verburg - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "NoLeftImage.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\UltraModernUI Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include UltraModernUI - - !include "UMUI.nsh" - - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "SoftBlue" - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - - !define UMUI_USE_ALTERNATE_PAGE - !define UMUI_USE_UNALTERNATE_PAGE - - !define UMUI_NOLEFTIMAGE - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - - - !define MUI_FINISHPAGE_RUN "blabla.exe" - !define MUI_FINISHPAGE_RUN_TEXT "run blabla" - !define MUI_FINISHPAGE_SHOWREADME "blabla.htm" - !define MUI_FINISHPAGE_SHOWREADME_TEXT "blabla readme" - !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_PAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_PAGE_ABORT - - - !insertmacro MUI_UNPAGE_WELCOME - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - - !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_UNPAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_UNPAGE_ABORT - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - -; SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Store installation folder -; WriteRegStr HKCU "Software\UltraModernUI Test" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey /ifempty HKCU "Software\UltraModernUI Test" - +;NSIS Ultra Modern User Interface +;No Left Image Option Example Script +;Written by Joost Verburg + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "NoLeftImage.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\UltraModernUI Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include UltraModernUI + + !include "UMUI.nsh" + + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "SoftBlue" + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + + !define UMUI_USE_ALTERNATE_PAGE + !define UMUI_USE_UNALTERNATE_PAGE + + !define UMUI_NOLEFTIMAGE + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_WELCOME + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + + + !define MUI_FINISHPAGE_RUN "blabla.exe" + !define MUI_FINISHPAGE_RUN_TEXT "run blabla" + !define MUI_FINISHPAGE_SHOWREADME "blabla.htm" + !define MUI_FINISHPAGE_SHOWREADME_TEXT "blabla readme" + !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_PAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_PAGE_ABORT + + + !insertmacro MUI_UNPAGE_WELCOME + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + + !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_UNPAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_UNPAGE_ABORT + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + +; SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Store installation folder +; WriteRegStr HKCU "Software\UltraModernUI Test" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey /ifempty HKCU "Software\UltraModernUI Test" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/PageBG.nsi b/Examples/UltraModernUI/PageBG.nsi index 908a070..5e5aa0b 100644 --- a/Examples/UltraModernUI/PageBG.nsi +++ b/Examples/UltraModernUI/PageBG.nsi @@ -1,134 +1,137 @@ -;NSIS Ultra Modern User Interface -;Background Image Example Script -;Written by SuperPat - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "PageBG.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\UltraModernUI Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include UltraModernUI - - !include "UMUI.nsh" - - -;-------------------------------- -;Interface Settings - -; A unique background image -!define UMUI_UNIQUEBGIMAGE -!define UMUI_UNUNIQUEBGIMAGE - -!define UMUI_PAGEBGIMAGE -!define UMUI_UNPAGEBGIMAGE -!define UMUI_PAGEBGIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\PageBG.bmp" - - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - - !define UMUI_USE_ALTERNATE_PAGE - !define UMUI_USE_UNALTERNATE_PAGE - - !define MUI_LICENSEPAGE_RADIOBUTTONS -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - - - Var STARTMENU_FOLDER - !insertmacro UMUI_PAGE_ALTERNATIVESTARTMENU Application $STARTMENU_FOLDER - -!insertmacro UMUI_PAGE_CONFIRM - - !insertmacro MUI_PAGE_INSTFILES - - -; !define MUI_FINISHPAGE_RUN "blabla.exe" -; !define MUI_FINISHPAGE_RUN_TEXT "run blabla" - !define MUI_FINISHPAGE_SHOWREADME "blabla.htm" - !define MUI_FINISHPAGE_SHOWREADME_TEXT "blabla readme" - !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_PAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_PAGE_ABORT - - - !insertmacro MUI_UNPAGE_WELCOME - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - - !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_UNPAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_UNPAGE_ABORT - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Store installation folder - WriteRegStr HKCU "Software\UltraModernUI Test" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey /ifempty HKCU "Software\UltraModernUI Test" - +;NSIS Ultra Modern User Interface +;Background Image Example Script +;Written by SuperPat + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "PageBG.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\UltraModernUI Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include UltraModernUI + + !include "UMUI.nsh" + + +;-------------------------------- +;Interface Settings + +; A unique background image +!define UMUI_UNIQUEBGIMAGE +!define UMUI_UNUNIQUEBGIMAGE + +!define UMUI_PAGEBGIMAGE +!define UMUI_UNPAGEBGIMAGE +!define UMUI_PAGEBGIMAGE_BMP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\PageBG.bmp" + + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + + !define UMUI_USE_ALTERNATE_PAGE + !define UMUI_USE_UNALTERNATE_PAGE + + !define MUI_LICENSEPAGE_RADIOBUTTONS +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_WELCOME + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + + + Var STARTMENU_FOLDER + !insertmacro UMUI_PAGE_ALTERNATIVESTARTMENU Application $STARTMENU_FOLDER + +!insertmacro UMUI_PAGE_CONFIRM + + !insertmacro MUI_PAGE_INSTFILES + + +; !define MUI_FINISHPAGE_RUN "blabla.exe" +; !define MUI_FINISHPAGE_RUN_TEXT "run blabla" + !define MUI_FINISHPAGE_SHOWREADME "blabla.htm" + !define MUI_FINISHPAGE_SHOWREADME_TEXT "blabla readme" + !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_PAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_PAGE_ABORT + + + !insertmacro MUI_UNPAGE_WELCOME + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + + !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_UNPAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_UNPAGE_ABORT + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Store installation folder + WriteRegStr HKCU "Software\UltraModernUI Test" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey /ifempty HKCU "Software\UltraModernUI Test" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/SerialNumber.nsi b/Examples/UltraModernUI/SerialNumber.nsi index 680dc8d..161320f 100644 --- a/Examples/UltraModernUI/SerialNumber.nsi +++ b/Examples/UltraModernUI/SerialNumber.nsi @@ -1,109 +1,112 @@ -;NSIS Ultra Modern User Interface -;Serial Number Page Example Script -;Written by SuperPat - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "SerialNumber.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;UltraModern Include - - !include "UMUI.nsh" - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "red" - - !define UMUI_USE_INSTALLOPTIONSEX - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - -;-------------------------------- -;Registry Settings - - !define UMUI_PARAMS_REGISTRY_ROOT HKLM - !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI_Test" - -;-------------------------------- -;Reserve Files - - !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS - ReserveFile "${NSISDIR}\Contrib\UltraModernUI\Ini\serialnumber.ini" - -;-------------------------------- -;Pages - - !define MUI_PAGE_CUSTOMFUNCTION_LEAVE leave_serial_function -!insertmacro UMUI_PAGE_SERIALNUMBER serial_function -!insertmacro MUI_PAGE_DIRECTORY -!insertmacro MUI_PAGE_INSTFILES -!insertmacro UMUI_PAGE_ABORT - - -Function serial_function - -;Get the windows name and organisation -!insertmacro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_OWNER R0 -!insertmacro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_ORGANIZATION R1 - -StrCpy $R2 "11111-22222-33333-44444-55555" - -; ID: A unique identifiant for this serial number -; STR: 555 for 3 inputs of 5 characters each, 0 for unlimited chars -; FLAGS: "", NODASHS, TOUPPER, TOLOWER, NUMBERS, CANBEEMPTY -; DEFAULT: The défault value if not already saved in the registry XXXXX-XXXXX-XXXXX OR XXXXXXXXXXXXXXX -; LABEL - !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "RegName" -!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL REGNAME 0 "TOUPPER" $R0 "$(UMUI_TEXT_SERIALNUMBER_NAME)" - !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "Organisation" -!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL ORGANISATION 0 "CANBEEMPTY|TOLOWER" $R1 "$(UMUI_TEXT_SERIALNUMBER_ORGANIZATION)" -!insertmacro UMUI_SERIALNUMBERPAGE_ADD_HLINE - !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "SerialNumber" -!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL SERIAL 55555 "NUMBERS|NODASHS" $R2 "$(UMUI_TEXT_SERIALNUMBER_SERIALNUMBER)" - -FunctionEnd - - -Function leave_serial_function - - !insertmacro UMUI_SERIALNUMBER_GET REGNAME R0 - - StrLen $0 $R0 - IntCmp $0 5 0 0 +3 - MessageBox MB_OK "The size of name is not enough (must be > 5)" - Abort - -; Apply a verification algorithm of the serial number and use Abort if error - -FunctionEnd - - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - sleep 1000 - -SectionEnd +;NSIS Ultra Modern User Interface +;Serial Number Page Example Script +;Written by SuperPat + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "SerialNumber.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;UltraModern Include + + !include "UMUI.nsh" + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "red" + + !define UMUI_USE_INSTALLOPTIONSEX + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + +;-------------------------------- +;Registry Settings + + !define UMUI_PARAMS_REGISTRY_ROOT HKLM + !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI_Test" + +;-------------------------------- +;Reserve Files + + !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS + ReserveFile "${NSISDIR}\Contrib\UltraModernUI\Ini\serialnumber.ini" + +;-------------------------------- +;Pages + + !define MUI_PAGE_CUSTOMFUNCTION_LEAVE leave_serial_function +!insertmacro UMUI_PAGE_SERIALNUMBER serial_function +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES +!insertmacro UMUI_PAGE_ABORT + + +Function serial_function + +;Get the windows name and organisation +!insertmacro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_OWNER R0 +!insertmacro UMUI_SERIALNUMBERPAGE_GET_WINDOWS_REGISTRED_ORGANIZATION R1 + +StrCpy $R2 "11111-22222-33333-44444-55555" + +; ID: A unique identifiant for this serial number +; STR: 555 for 3 inputs of 5 characters each, 0 for unlimited chars +; FLAGS: "", NODASHS, TOUPPER, TOLOWER, NUMBERS, CANBEEMPTY +; DEFAULT: The défault value if not already saved in the registry XXXXX-XXXXX-XXXXX OR XXXXXXXXXXXXXXX +; LABEL + !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "RegName" +!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL REGNAME 0 "TOUPPER" $R0 "$(UMUI_TEXT_SERIALNUMBER_NAME)" + !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "Organisation" +!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL ORGANISATION 0 "CANBEEMPTY|TOLOWER" $R1 "$(UMUI_TEXT_SERIALNUMBER_ORGANIZATION)" +!insertmacro UMUI_SERIALNUMBERPAGE_ADD_HLINE + !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "SerialNumber" +!insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL SERIAL 55555 "NUMBERS|NODASHS" $R2 "$(UMUI_TEXT_SERIALNUMBER_SERIALNUMBER)" + +FunctionEnd + + +Function leave_serial_function + + !insertmacro UMUI_SERIALNUMBER_GET REGNAME R0 + + StrLen $0 $R0 + IntCmp $0 5 0 0 +3 + MessageBox MB_OK "The size of name is not enough (must be > 5)" + Abort + +; Apply a verification algorithm of the serial number and use Abort if error + +FunctionEnd + + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + sleep 1000 + +SectionEnd diff --git a/Examples/UltraModernUI/SetupType.nsi b/Examples/UltraModernUI/SetupType.nsi index 7d1c242..99fc2ff 100644 --- a/Examples/UltraModernUI/SetupType.nsi +++ b/Examples/UltraModernUI/SetupType.nsi @@ -1,170 +1,173 @@ -;NSIS Ultra Modern User Interface -;Setup Type Page Example Script -;Written by SuperPat - -;-------------------------------- -;Include Modern UI - - !include "UMUI.nsh" - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "SetupType.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Pages - -; !define UMUI_SKIN "purple" - - !define UMUI_USE_INSTALLOPTIONSEX - !define UMUI_PAGEBGIMAGE - - !define UMUI_PARAMS_REGISTRY_ROOT HKCU - !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" - - !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable - - !define UMUI_COMPONENTSINSTTYPE_REGISTRY_VALUENAME "insttype" - !define UMUI_COMPONENTS_REGISTRY_VALUENAME "components" - - - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - - !define UMUI_SETUPTYPEPAGE_MINIMAL "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" - !define UMUI_SETUPTYPEPAGE_STANDARD "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" - !define UMUI_SETUPTYPEPAGE_COMPLETE "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" - !define UMUI_SETUPTYPEPAGE_DEFAULTCHOICE ${UMUI_COMPLETE} - !define UMUI_SETUPTYPE_REGISTRY_VALUENAME "SetupType" - !insertmacro UMUI_PAGE_SETUPTYPE - - !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME "insttype" - !define UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME "components" - !insertmacro MUI_PAGE_COMPONENTS - - !insertmacro MUI_PAGE_DIRECTORY - - !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function - !insertmacro UMUI_PAGE_CONFIRM - !insertmacro MUI_PAGE_INSTFILES - - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Types - -InstType "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" -InstType "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" -InstType "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" - - -;-------------------------------- -;Installer Sections - -Section "Section 1" SecS1 - SectionIn RO - SectionIn 1 2 3 - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - - -Section "Section 2" SecS2 - SectionIn 2 3 - -SectionEnd - -Section "Section 3" SecS3 - SectionIn 3 - -SectionEnd - - -!insertmacro UMUI_DECLARECOMPONENTS_BEGIN - !insertmacro UMUI_COMPONENT SecS1 - !insertmacro UMUI_COMPONENT SecS2 - !insertmacro UMUI_COMPONENT SecS3 -!insertmacro UMUI_DECLARECOMPONENTS_END - - -;-------------------------------- -;Confirm page function - -!include "Sections.nsh" - -!macro confirm_addline section - SectionGetFlags ${Sec${section}} $1 - IntOp $1 $1 & ${SF_SELECTED} - IntCmp $1 ${SF_SELECTED} 0 n${section} n${section} - SectionGetText ${Sec${section}} $1 - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " - $1" -n${section}: -!macroend - -Function confirm_function - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - ;For the setuptype page - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SETUPTYPE_TITLE):" - !insertmacro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT - Pop $R0 - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $R0" - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_COMPNENTS)" - - !insertmacro confirm_addline S1 - !insertmacro confirm_addline S2 - !insertmacro confirm_addline S3 -FunctionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecS1} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - +;NSIS Ultra Modern User Interface +;Setup Type Page Example Script +;Written by SuperPat + +;-------------------------------- +;Include Modern UI + + !include "UMUI.nsh" + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "SetupType.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Pages + +; !define UMUI_SKIN "purple" + + !define UMUI_USE_INSTALLOPTIONSEX + !define UMUI_PAGEBGIMAGE + + !define UMUI_PARAMS_REGISTRY_ROOT HKCU + !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" + + !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable + + !define UMUI_COMPONENTSINSTTYPE_REGISTRY_VALUENAME "insttype" + !define UMUI_COMPONENTS_REGISTRY_VALUENAME "components" + + + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + + !define UMUI_SETUPTYPEPAGE_MINIMAL "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" + !define UMUI_SETUPTYPEPAGE_STANDARD "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" + !define UMUI_SETUPTYPEPAGE_COMPLETE "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" + !define UMUI_SETUPTYPEPAGE_DEFAULTCHOICE ${UMUI_COMPLETE} + !define UMUI_SETUPTYPE_REGISTRY_VALUENAME "SetupType" + !insertmacro UMUI_PAGE_SETUPTYPE + + !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME "insttype" + !define UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME "components" + !insertmacro MUI_PAGE_COMPONENTS + + !insertmacro MUI_PAGE_DIRECTORY + + !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function + !insertmacro UMUI_PAGE_CONFIRM + !insertmacro MUI_PAGE_INSTFILES + + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + + +;-------------------------------- +;Installer Types + +InstType "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" +InstType "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" +InstType "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" + + +;-------------------------------- +;Installer Sections + +Section "Section 1" SecS1 + SectionIn RO + SectionIn 1 2 3 + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + + +Section "Section 2" SecS2 + SectionIn 2 3 + +SectionEnd + +Section "Section 3" SecS3 + SectionIn 3 + +SectionEnd + + +!insertmacro UMUI_DECLARECOMPONENTS_BEGIN + !insertmacro UMUI_COMPONENT SecS1 + !insertmacro UMUI_COMPONENT SecS2 + !insertmacro UMUI_COMPONENT SecS3 +!insertmacro UMUI_DECLARECOMPONENTS_END + + +;-------------------------------- +;Confirm page function + +!include "Sections.nsh" + +!macro confirm_addline section + SectionGetFlags ${Sec${section}} $1 + IntOp $1 $1 & ${SF_SELECTED} + IntCmp $1 ${SF_SELECTED} 0 n${section} n${section} + SectionGetText ${Sec${section}} $1 + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " - $1" +n${section}: +!macroend + +Function confirm_function + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + ;For the setuptype page + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SETUPTYPE_TITLE):" + !insertmacro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT + Pop $R0 + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $R0" + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_COMPNENTS)" + + !insertmacro confirm_addline S1 + !insertmacro confirm_addline S2 + !insertmacro confirm_addline S3 +FunctionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecS1} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/StartMenu.nsi b/Examples/UltraModernUI/StartMenu.nsi index 8c32a44..b2be8c0 100644 --- a/Examples/UltraModernUI/StartMenu.nsi +++ b/Examples/UltraModernUI/StartMenu.nsi @@ -1,136 +1,139 @@ -;NSIS Ultra Modern User Interface -;Alternative Start Menu Folder Selection Example Script -;Written by SuperPat - -;-------------------------------- -;General - - ;Generate unicode installer - ;Unicode True - - ;Name and file - Name "UltraModernUI Test" - OutFile "StartMenu.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include UltraModernUI - - !include "UMUI.nsh" - -;-------------------------------- -;Variables - - Var MUI_TEMP - Var STARTMENU_FOLDER - -;-------------------------------- -;Interface Settings - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - - !define UMUI_USE_INSTALLOPTIONSEX - - !define UMUI_PARAMS_REGISTRY_ROOT HKCU - !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" - - !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable - - !define UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME "UMUI ShellVarContext" - !define UMUI_DEFAULT_SHELLVARCONTEXT all - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - !insertmacro MUI_PAGE_DIRECTORY - - !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" - !define MUI_STARTMENUPAGE_DEFAULTFOLDER "UltraModernUI Test" - !define UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT - !define UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW - !insertmacro UMUI_PAGE_ALTERNATIVESTARTMENU Application $STARTMENU_FOLDER -; !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER - - !insertmacro MUI_PAGE_COMPONENTS - - !insertmacro MUI_PAGE_INSTFILES - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - - ;Create shortcuts - CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" - - !insertmacro MUI_STARTMENU_WRITE_END - -SectionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP - - Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" - - ;Delete empty start menu parent diretories - StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" - - startMenuDeleteLoop: - ClearErrors - RMDir $MUI_TEMP - GetFullPathName $MUI_TEMP "$MUI_TEMP\.." - - IfErrors startMenuDeleteLoopDone - - StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop - startMenuDeleteLoopDone: - - DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - +;NSIS Ultra Modern User Interface +;Alternative Start Menu Folder Selection Example Script +;Written by SuperPat + +;-------------------------------- +;General + + ;Generate unicode installer + ;Unicode True + + ;Name and file + Name "UltraModernUI Test" + OutFile "StartMenu.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include UltraModernUI + + !include "UMUI.nsh" + +;-------------------------------- +;Variables + + Var MUI_TEMP + Var STARTMENU_FOLDER + +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + + !define UMUI_USE_INSTALLOPTIONSEX + + !define UMUI_PARAMS_REGISTRY_ROOT HKCU + !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" + + !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable + + !define UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME "UMUI ShellVarContext" + !define UMUI_DEFAULT_SHELLVARCONTEXT all + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + !insertmacro MUI_PAGE_DIRECTORY + + !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" + !define MUI_STARTMENUPAGE_DEFAULTFOLDER "UltraModernUI Test" + !define UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT + !define UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW + !insertmacro UMUI_PAGE_ALTERNATIVESTARTMENU Application $STARTMENU_FOLDER +; !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER + + !insertmacro MUI_PAGE_COMPONENTS + + !insertmacro MUI_PAGE_INSTFILES + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + + ;Create shortcuts + CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + + !insertmacro MUI_STARTMENU_WRITE_END + +SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP + + Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" + + ;Delete empty start menu parent diretories + StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" + + startMenuDeleteLoop: + ClearErrors + RMDir $MUI_TEMP + GetFullPathName $MUI_TEMP "$MUI_TEMP\.." + + IfErrors startMenuDeleteLoopDone + + StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop + startMenuDeleteLoopDone: + + DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/UltraModernSmall.nsi b/Examples/UltraModernUI/UltraModernSmall.nsi index 5e6795a..f3f2a31 100644 --- a/Examples/UltraModernUI/UltraModernSmall.nsi +++ b/Examples/UltraModernUI/UltraModernSmall.nsi @@ -1,129 +1,132 @@ -;NSIS Ultra Modern User Interface -;UltraModernUI Small Example Script -;Written by SuperPat - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "UltraModern Small.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\UltraModernUI Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include UltraModernUI - - !include "UMUI.nsh" - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "Blue" - - !define UMUI_ULTRAMODERN_SMALL - - ; If you want to change the left image: - ;!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Left.bmp" - ;!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Left.bmp" - - !define UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE - - !define UMUI_PAGEBGIMAGE - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - - !define UMUI_USE_ALTERNATE_PAGE - !define UMUI_USE_UNALTERNATE_PAGE - - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - - - !define MUI_FINISHPAGE_RUN "blabla.exe" - !define MUI_FINISHPAGE_RUN_TEXT "run blabla" - !define MUI_FINISHPAGE_SHOWREADME "blabla.htm" - !define MUI_FINISHPAGE_SHOWREADME_TEXT "blabla readme" - !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_PAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_PAGE_ABORT - - - !insertmacro MUI_UNPAGE_WELCOME - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - - !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_UNPAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_UNPAGE_ABORT - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Store installation folder - WriteRegStr HKCU "Software\UltraModernUI Test" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey /ifempty HKCU "Software\UltraModernUI Test" - +;NSIS Ultra Modern User Interface +;UltraModernUI Small Example Script +;Written by SuperPat + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "UltraModern Small.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\UltraModernUI Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include UltraModernUI + + !include "UMUI.nsh" + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "Blue" + + !define UMUI_ULTRAMODERN_SMALL + + ; If you want to change the left image: + ;!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Left.bmp" + ;!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\UltraModernUI\Skins\blue\Left.bmp" + + !define UMUI_WELCOMEFINISHABORTPAGE_USE_IMAGE + + !define UMUI_PAGEBGIMAGE + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + + !define UMUI_USE_ALTERNATE_PAGE + !define UMUI_USE_UNALTERNATE_PAGE + + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_WELCOME + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + + + !define MUI_FINISHPAGE_RUN "blabla.exe" + !define MUI_FINISHPAGE_RUN_TEXT "run blabla" + !define MUI_FINISHPAGE_SHOWREADME "blabla.htm" + !define MUI_FINISHPAGE_SHOWREADME_TEXT "blabla readme" + !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_PAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_PAGE_ABORT + + + !insertmacro MUI_UNPAGE_WELCOME + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + + !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_UNPAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_UNPAGE_ABORT + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Store installation folder + WriteRegStr HKCU "Software\UltraModernUI Test" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey /ifempty HKCU "Software\UltraModernUI Test" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/UltraModernUI.nsi b/Examples/UltraModernUI/UltraModernUI.nsi index 01fe498..45c25c1 100644 --- a/Examples/UltraModernUI/UltraModernUI.nsi +++ b/Examples/UltraModernUI/UltraModernUI.nsi @@ -1,1176 +1,1176 @@ -; o----------------------------------------o -; | NSIS Ultra-Modern User Interface 2.0b5 | -; (----------------------------------------) -; | Installer script. | -; | Written by SyperPat | -; o----------------------------------------o - -;-------------------------------- -;General - - !define /date NOW "%Y-%m-%d" - !define NAME "UltraModernUI" - - ; For language file selection - !define VER_MAJOR 3 - !define VER_MINOR 04 - !define VER_REV_STR "" - - !if "${NSIS_VERSION}" != "v${VER_MAJOR}.${VER_MINOR}${VER_REV_STR}" - !error "VER_MAJOR, VER_MINOR and VER_REV_STR defines does not match the current NSIS version: ${NSIS_VERSION}" - !endif - - !define UMUI_VERSION "2.0b5" - !define UMUI_VERBUILD "2.0_${NOW}" - - !define /date VERIPV "200.%Y.%m.%d" - VIProductVersion "${VERIPV}" - VIAddVersionKey ProductName "Ultra-Modern User Interface for NSIS (Nullsoft Scriptable Install System) version 3 x86 edition." - VIAddVersionKey ProductVersion "${UMUI_VERSION}" - VIAddVersionKey Comments "A new User Interface for NSIS with a style like the most recent installers. This package also include some plugins used by UMUI to extend the possibilities of NSIS." - VIAddVersionKey LegalTrademarks "Ultra-Modern UI is released under the zlib/libpng license: http://nsis.sf.net/License" - VIAddVersionKey LegalCopyright "Copyright Š2005-2019 SuperPat" - VIAddVersionKey FileDescription "Ultra-Modern User Interface for NSIS (Nullsoft Scriptable Install System) version 3 x86 edition." - VIAddVersionKey FileVersion "${UMUI_VERBUILD}" - - -;-------------------------------- -;Configuration - - ; The name of the installer - Name "NSIS Ultra-Modern User Interface ${UMUI_VERSION}" - - ; The file to write - OutFile "UltraModernUI_${UMUI_VERSION}.exe" - - ;Generate unicode installer - Unicode True - - SetCompressor /FINAL /SOLID lzma - - ;Windows vista compatibility - RequestExecutionLevel admin - - BrandingText "$(^NameDA)" - - ;Default installation folder - InstallDir "$PROGRAMFILES\NSIS" - - -;-------------------------------- -;Include Ultra-Modern UI between others - - !include "UMUI.nsh" - - !include "Sections.nsh" - - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "blue" - - !define UMUI_USE_INSTALLOPTIONSEX - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - - !define UMUI_USE_ALTERNATE_PAGE ; For Welcome finish abort pages - !define UMUI_USE_UNALTERNATE_PAGE - - !define MUI_COMPONENTSPAGE_SMALLDESC - - !define UMUI_DEFAULT_SHELLVARCONTEXT all - - !define UMUI_ENABLE_DESCRIPTION_TEXT - -;-------------------------------- -;Registry Settings - - !define UMUI_PARAMS_REGISTRY_ROOT HKLM - !define UMUI_PARAMS_REGISTRY_KEY "Software\NSIS" - - !define UMUI_LANGUAGE_REGISTRY_VALUENAME "UMUI_InstallerLanguage" - !define UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME "UMUI_ShellVarContext" - - !define UMUI_UNINSTALLPATH_REGISTRY_VALUENAME "UMUI_UninstallPath" - !define UMUI_UNINSTALL_FULLPATH "$INSTDIR\UninstallUMUI.exe" - !define UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME "UMUI_InstallPath" - - !define UMUI_VERSION_REGISTRY_VALUENAME "UMUI_Version" - !define UMUI_VERBUILD_REGISTRY_VALUENAME "UMUI_VerBuild" - - !define UMUI_PREUNINSTALL_FUNCTION preuninstall_function - - InstallDirRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "" - -;-------------------------------- -;Reserve Files - - !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS - - -;-------------------------------- -;Pages - - !insertmacro UMUI_PAGE_MULTILANGUAGE - - !define UMUI_MAINTENANCEPAGE_MODIFY - !define UMUI_MAINTENANCEPAGE_REPAIR - !define UMUI_MAINTENANCEPAGE_REMOVE - !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP - !insertmacro UMUI_PAGE_MAINTENANCE - - !define UMUI_UPDATEPAGE_REMOVE - !define UMUI_UPDATEPAGE_CONTINUE_SETUP - !insertmacro UMUI_PAGE_UPDATE - - !define UMUI_WELCOMEPAGE_ALTERNATIVETEXT - !insertmacro MUI_PAGE_WELCOME - - !define MUI_LICENSEPAGE_CHECKBOX - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - - !define UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT - !insertmacro UMUI_PAGE_INFORMATION "${NSISDIR}\Docs\UltraModernUI\ReadMe.rtf" - - !define UMUI_SETUPTYPEPAGE_MINIMAL "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" - !define UMUI_SETUPTYPEPAGE_STANDARD "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" - !define UMUI_SETUPTYPEPAGE_COMPLETE "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" - !define UMUI_SETUPTYPEPAGE_DEFAULTCHOICE ${UMUI_COMPLETE} - !define UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME "UMUI_SetupType" - !insertmacro UMUI_PAGE_SETUPTYPE - - !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME "UMUI_InstType" - !define UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME "UMUI_Components" - !insertmacro MUI_PAGE_COMPONENTS - - !define UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME "UMUI_Tasks" - !insertmacro UMUI_PAGE_ADDITIONALTASKS addtasks_function - - !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function - !insertmacro UMUI_PAGE_CONFIRM - - !insertmacro MUI_PAGE_INSTFILES - - !define MUI_FINISHPAGE_SHOWREADME "${NSISDIR}\Docs\UltraModernUI\Readme.html" - !define MUI_FINISHPAGE_LINK "Ultra-Modern UI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_PAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "Ultra-Modern UI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_PAGE_ABORT - - - !insertmacro UMUI_UNPAGE_MULTILANGUAGE - - !define UMUI_MAINTENANCEPAGE_MODIFY - !define UMUI_MAINTENANCEPAGE_REPAIR - !define UMUI_MAINTENANCEPAGE_REMOVE - !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP - !insertmacro UMUI_UNPAGE_MAINTENANCE - - !insertmacro MUI_UNPAGE_WELCOME - - !insertmacro MUI_UNPAGE_CONFIRM - - !insertmacro MUI_UNPAGE_INSTFILES - - !define MUI_FINISHPAGE_LINK "Ultra-Modern UI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_UNPAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "Ultra-Modern UI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_UNPAGE_ABORT - - -;-------------------------------- -;Languages - -; first language is the default language if the system language is not in this list - !insertmacro MUI_LANGUAGE "English" - -; Other UMUI translated languages - !insertmacro MUI_LANGUAGE "Bulgarian" - !insertmacro MUI_LANGUAGE "Czech" - !insertmacro MUI_LANGUAGE "French" - !insertmacro MUI_LANGUAGE "German" - !insertmacro MUI_LANGUAGE "Greek" - !insertmacro MUI_LANGUAGE "Hungarian" - !insertmacro MUI_LANGUAGE "Italian" - !insertmacro MUI_LANGUAGE "Japanese" - !insertmacro MUI_LANGUAGE "Lithuanian" - !insertmacro MUI_LANGUAGE "Polish" - !insertmacro MUI_LANGUAGE "Russian" - !insertmacro MUI_LANGUAGE "Slovenian" - !insertmacro MUI_LANGUAGE "Spanish" - !insertmacro MUI_LANGUAGE "Turkish" -; Other UMUI partially translated language - !insertmacro MUI_LANGUAGE "PortugueseBR" - -; Other untranslated languages but usable even so. -/* - !insertmacro MUI_LANGUAGE "SpanishInternational" - !insertmacro MUI_LANGUAGE "SimpChinese" - !insertmacro MUI_LANGUAGE "TradChinese" - !insertmacro MUI_LANGUAGE "Korean" - !insertmacro MUI_LANGUAGE "Dutch" - !insertmacro MUI_LANGUAGE "Danish" - !insertmacro MUI_LANGUAGE "Swedish" - !insertmacro MUI_LANGUAGE "Norwegian" - !insertmacro MUI_LANGUAGE "NorwegianNynorsk" - !insertmacro MUI_LANGUAGE "Finnish" - !insertmacro MUI_LANGUAGE "Portuguese" - !insertmacro MUI_LANGUAGE "Ukrainian" - !insertmacro MUI_LANGUAGE "Slovak" - !insertmacro MUI_LANGUAGE "Croatian" - !insertmacro MUI_LANGUAGE "Thai" - !insertmacro MUI_LANGUAGE "Romanian" - !insertmacro MUI_LANGUAGE "Latvian" - !insertmacro MUI_LANGUAGE "Macedonian" - !insertmacro MUI_LANGUAGE "Estonian" - !insertmacro MUI_LANGUAGE "Serbian" - !insertmacro MUI_LANGUAGE "SerbianLatin" - !insertmacro MUI_LANGUAGE "Arabic" - !insertmacro MUI_LANGUAGE "Farsi" - !insertmacro MUI_LANGUAGE "Hebrew" - !insertmacro MUI_LANGUAGE "Indonesian" - !insertmacro MUI_LANGUAGE "Mongolian" - !insertmacro MUI_LANGUAGE "Luxembourgish" - !insertmacro MUI_LANGUAGE "Albanian" - !insertmacro MUI_LANGUAGE "Breton" - !insertmacro MUI_LANGUAGE "Belarusian" - !insertmacro MUI_LANGUAGE "Icelandic" - !insertmacro MUI_LANGUAGE "Malay" - !insertmacro MUI_LANGUAGE "Bosnian" - !insertmacro MUI_LANGUAGE "Kurdish" - !insertmacro MUI_LANGUAGE "Irish" - !insertmacro MUI_LANGUAGE "Uzbek" - !insertmacro MUI_LANGUAGE "Galician" - !insertmacro MUI_LANGUAGE "Afrikaans" - !insertmacro MUI_LANGUAGE "Catalan" - !insertmacro MUI_LANGUAGE "Esperanto" - !insertmacro MUI_LANGUAGE "Asturian" - !insertmacro MUI_LANGUAGE "Basque" - !insertmacro MUI_LANGUAGE "Pashto" - !insertmacro MUI_LANGUAGE "ScotsGaelic" - !insertmacro MUI_LANGUAGE "Vietnamese" - !insertmacro MUI_LANGUAGE "Welsh" - !insertmacro MUI_LANGUAGE "Corsican" - !insertmacro MUI_LANGUAGE "Tatar" - -; Other unicode only untranslated languages but usable even so. - !insertmacro MUI_LANGUAGE "Armenian" - !insertmacro MUI_LANGUAGE "Georgian" - !insertmacro MUI_LANGUAGE "Hindi" -*/ - -;-------------------------------- -;Installer Types - -InstType "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" -InstType "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" -InstType "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" - - -;-------------------------------- -;Installer Sections - -Section "$(^NameDA)" SecUMUI - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI..." - SetDetailsPrint listonly - - SectionIn RO - - SectionIn 1 2 3 - - SetOutPath "$INSTDIR" - !if ! /FileExists "..\..\NSISUMUI.exe" - !define NO_NSISMENU_HTML 1 - !makensis '-v2 "NSISUMUIMenu.nsi" "-XOutFile ..\..\NSISUMUI.exe"' = 0 - !endif - File ..\..\NSISUMUI.exe - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\" - File "..\..\Contrib\UltraModernUI\UMUI.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Ini" - File "..\..\Contrib\UltraModernUI\Ini\*.ini" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Language files\" - File "..\..\Contrib\UltraModernUI\Language files\*.nsh" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\blue.nsh" - File "..\..\Contrib\UltraModernUI\Skins\blue2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\blue\" - File "..\..\Contrib\UltraModernUI\Skins\blue\*.bmp" - - SetOutPath "$INSTDIR\Docs\UltraModernUI\" - File "..\..\Docs\UltraModernUI\*.*" - SetOutPath "$INSTDIR\Docs\UltraModernUI\images\" - File "..\..\Docs\UltraModernUI\images\*.png" - File "..\..\Docs\UltraModernUI\images\*.gif" - - SetOutPath "$INSTDIR\Examples\UltraModernUI\" - File "*.nsi" - File "*.ini" - File "*.txt" - - SetOutPath "$INSTDIR\Contrib\UIs\UltraModernUI\" - File "..\..\Contrib\UIs\UltraModernUI\*.exe" - - SetOutPath "$INSTDIR\Contrib\Graphics\UltraModernUI\" - File "..\..\Contrib\Graphics\UltraModernUI\*.*" - - SetOutPath "$INSTDIR\Include\" - File "..\..\Include\UMUI.nsh" - File "..\..\Include\MUIEx.nsh" - - - ;CreateShortCuts - ; only if all user is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL - SetShellVarContext all - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if current user is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT - SetShellVarContext current - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - - SetOutPath "$INSTDIR\" - CreateShortCut "$SMPROGRAMS\NSIS.lnk" "$INSTDIR\NSISUMUI.exe" - - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP - CreateShortCut "$DESKTOP\NSIS.lnk" "$INSTDIR\NSISUMUI.exe" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - - - ;Create uninstaller - WriteUninstaller "$INSTDIR\UninstallUMUI.exe" - - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayName" "$(^Name)" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayIcon" "$INSTDIR\UninstallUMUI.exe,0" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString" "$INSTDIR\UninstallUMUI.exe" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "Publisher" "SuperPat" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "HelpLink" "http://ultramodernui.sourceforge.net/" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "URLInfoAbout" "http://ultramodernui.sourceforge.net/" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "URLUpdateInfo" "http://ultramodernui.sourceforge.net/" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "ModifyPath" '"$INSTDIR\UninstallUMUI.exe" /modify' - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayVersion" "${UMUI_VERSION}" - -SectionEnd - -Section "Skins for Ultra-Modern UI" SecSkins - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Skins..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\brown.nsh" - File "..\..\Contrib\UltraModernUI\Skins\brown2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\brown\" - File "..\..\Contrib\UltraModernUI\Skins\brown\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\darkgreen.nsh" - File "..\..\Contrib\UltraModernUI\Skins\darkgreen2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen\" - File "..\..\Contrib\UltraModernUI\Skins\darkgreen\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\gray.nsh" - File "..\..\Contrib\UltraModernUI\Skins\gray2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\gray\" - File "..\..\Contrib\UltraModernUI\Skins\gray\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\green.nsh" - File "..\..\Contrib\UltraModernUI\Skins\green2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\green\" - File "..\..\Contrib\UltraModernUI\Skins\green\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\purple.nsh" - File "..\..\Contrib\UltraModernUI\Skins\purple2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\purple\" - File "..\..\Contrib\UltraModernUI\Skins\purple\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\red.nsh" - File "..\..\Contrib\UltraModernUI\Skins\red2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\red\" - File "..\..\Contrib\UltraModernUI\Skins\red\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftBlue.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue\" - File "..\..\Contrib\UltraModernUI\Skins\SoftBlue\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftBrown.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown\" - File "..\..\Contrib\UltraModernUI\Skins\SoftBrown\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftGray.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray\" - File "..\..\Contrib\UltraModernUI\Skins\SoftGray\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftGreen.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen\" - File "..\..\Contrib\UltraModernUI\Skins\SoftGreen\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftPurple.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple\" - File "..\..\Contrib\UltraModernUI\Skins\SoftPurple\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" - File "..\..\Contrib\UltraModernUI\Skins\SoftRed.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed\" - File "..\..\Contrib\UltraModernUI\Skins\SoftRed\*.bmp" - -SectionEnd - -Section "BackGround Skins for Ultra-Modern UI" SecBGSkins - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | BackGround Skins..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\blue.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\blue2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue\" - File "..\..\Contrib\UltraModernUI\BGSkins\blue\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\brown.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\brown2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown\" - File "..\..\Contrib\UltraModernUI\BGSkins\brown\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen\" - File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\gray.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\gray2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray\" - File "..\..\Contrib\UltraModernUI\BGSkins\gray\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\green.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\green2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\green\" - File "..\..\Contrib\UltraModernUI\BGSkins\green\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\purple.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\purple2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple\" - File "..\..\Contrib\UltraModernUI\BGSkins\purple\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\red.nsh" - File "..\..\Contrib\UltraModernUI\BGSkins\red2.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\red\" - File "..\..\Contrib\UltraModernUI\BGSkins\red\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftBlue.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftBlue\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftBrown.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftBrown\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftGray.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftGray\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftGreen.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftGreen\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftPurple.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftPurple\*.bmp" - - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftRed.nsh" - SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed\" - File "..\..\Contrib\UltraModernUI\BGSkins\SoftRed\*.bmp" - -SectionEnd - - -SectionGroup /e "Plugins" SecGroupPlugins - - Section "SkinnedControls plugin version 1.4" SecSkinnedControls - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | SkinnedControls..." - SetDetailsPrint listonly - - SectionIn RO - - SectionIn 1 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File "..\..\Plugins\x86-ansi\SkinnedControls.dll" - - SetOutPath $INSTDIR\Plugins\x86-unicode - File "..\..\Plugins\x86-unicode\SkinnedControls.dll" - - SetOutPath $INSTDIR\Examples\SkinnedControls - File "..\SkinnedControls\*.nsi" - - SetOutPath $INSTDIR\Contrib\SkinnedControls\skins - File "..\..\Contrib\SkinnedControls\skins\*.bmp" - - SetOutPath $INSTDIR\Contrib\UIs - File "..\..\Contrib\UIs\modern_sb.exe" - File "..\..\Contrib\UIs\default_sb.exe" - - SetOutPath $INSTDIR\Docs\SkinnedControls - File "..\..\Docs\SkinnedControls\*.*" - SetOutPath "$INSTDIR\Docs\SkinnedControls\images\" - File "..\..\Docs\SkinnedControls\images\*.png" - File "..\..\Docs\SkinnedControls\images\*.gif" - - SectionEnd - - Section "SkinnedControls plugin Sources Code" SecSkinnedControlsSources - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | SkinnedControls Soucres Code..." - SetDetailsPrint listonly - - SectionIn 3 - - SetOutPath $INSTDIR\Contrib\SkinnedControls - File "..\..\Contrib\SkinnedControls\*.h" - File "..\..\Contrib\SkinnedControls\*.c" - File "..\..\Contrib\SkinnedControls\SkinnedControls.sln" - File "..\..\Contrib\SkinnedControls\SkinnedControls.vcproj" - SetOutPath $INSTDIR\Contrib\SkinnedControls\coolsb - File "..\..\Contrib\SkinnedControls\coolsb\*.h" - File "..\..\Contrib\SkinnedControls\coolsb\*.c" - File "..\..\Contrib\SkinnedControls\coolsb\detours.lib" - File "..\..\Contrib\SkinnedControls\coolsb\coolsb.vcproj" - - SectionEnd - - - Section "InstallOptionsEx plugin version 2.4.5 beta 3" SecInstallOptionsEx - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | InstallOptionsEx..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File "..\..\Plugins\x86-ansi\InstallOptionsEx.dll" - - SetOutPath $INSTDIR\Plugins\x86-unicode - File "..\..\Plugins\x86-unicode\InstallOptionsEx.dll" - - SetOutPath $INSTDIR\Examples\InstallOptionsEx - File "..\InstallOptionsEx\*.nsi" - File "..\InstallOptionsEx\*.ini" - - SetOutPath $INSTDIR\Docs\InstallOptionsEx - File "..\..\Docs\InstallOptionsEx\*.*" - - SectionEnd - - Section "InstallOptionsEx plugin Sources Code" SecInstallOptionsExSources - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | InstallOptionsEx Soucres Code..." - SetDetailsPrint listonly - - SectionIn 3 - - SetOutPath $INSTDIR\Contrib\InstallOptionsEx - File "..\..\Contrib\InstallOptionsEx\*.cpp" - File "..\..\Contrib\InstallOptionsEx\*.c" - File "..\..\Contrib\InstallOptionsEx\*.h" - File "..\..\Contrib\InstallOptionsEx\ioptdll.rc" - File "..\..\Contrib\InstallOptionsEx\io.sln" - File "..\..\Contrib\InstallOptionsEx\io.vcproj" - SetOutPath $INSTDIR\Contrib\InstallOptionsEx\Controls - File "..\..\Contrib\InstallOptionsEx\Controls\*.h" - - SectionEnd - - - Section "nsArray plugin version 1.1.1.7" SecnsArray - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | nsArray..." - SetDetailsPrint listonly - - SectionIn 2 3 - - SetOutPath $INSTDIR\Plugins\x86-ansi - File "..\..\Plugins\x86-ansi\nsArray.dll" - - SetOutPath $INSTDIR\Plugins\x86-unicode - File "..\..\Plugins\x86-unicode\nsArray.dll" - - SetOutPath $INSTDIR\Include - File "..\..\Include\nsArray.nsh" - - SetOutPath $INSTDIR\Docs\nsArray - File "..\..\Docs\nsArray\*.*" - - SetOutPath $INSTDIR\Examples\nsArray - File "..\nsArray\*.nsi" - - SectionEnd - - Section "nsArray plugin Sources Code" SecnsArraySources - - SetDetailsPrint textonly - DetailPrint "Installing Ultra-Modern UI | Plugins | nsArray Soucres Code..." - SetDetailsPrint listonly - - SectionIn 3 - - SetOutPath $INSTDIR\Contrib\nsArray - File "..\..\Contrib\nsArray\*.*" - - SectionEnd - -SectionGroupEnd - - -Section "Updated Languages Files from NSIS ${NSIS_VERSION}" SecNSISLanguagesFiles - - SetDetailsPrint textonly - DetailPrint "Installing Updated Languages Files from NSIS ${NSIS_VERSION}..." - SetDetailsPrint listonly - - SectionIn 3 - - SetOutPath "$INSTDIR\Contrib\Language files" - File "..\..\Contrib\Language files\*.nsh" - - SetOutPath "$INSTDIR\Contrib\Language files" - File "..\..\Contrib\Language files\*.nlf" - -SectionEnd - -;-------------------------------- -;Uninstall Section(s) - -!macro removeUMUIfiles - - ;uninstall SkinnedControls Plugin - Delete "$INSTDIR\Plugins\x86-ansi\SkinnedControls.dll" - Delete "$INSTDIR\Plugins\x86-unicode\SkinnedControls.dll" - Delete "$INSTDIR\Contrib\UIs\modern_sb.exe" - Delete "$INSTDIR\Contrib\UIs\default_sb.exe" - RMDir /r "$INSTDIR\Contrib\SkinnedControls" - Delete "$INSTDIR\Docs\SkinnedControls\*.*" - RMDir "$INSTDIR\Docs\SkinnedControls" - Delete "$INSTDIR\Examples\SkinnedControls\*.nsi" - RMDir "$INSTDIR\Examples\SkinnedControls" - - ;uninstall InstallOptionsEx Plugin - Delete "$INSTDIR\Plugins\x86-ansi\InstallOptionsEx.dll" - Delete "$INSTDIR\Plugins\x86-unicode\InstallOptionsEx.dll" - RMDir /r "$INSTDIR\Contrib\InstallOptionsEx" - Delete "$INSTDIR\Docs\InstallOptionsEx\*.*" - RMDir "$INSTDIR\Docs\InstallOptionsEx" - Delete "$INSTDIR\Examples\InstallOptionsEx\*.*" - RMDir "$INSTDIR\Examples\InstallOptionsEx" - - ;uninstall nsArray Plugin - Delete "$INSTDIR\Plugins\x86-ansi\nsArray.dll" - Delete "$INSTDIR\Plugins\x86-unicode\nsArray.dll" - Delete "$INSTDIR\Include\nsArray.nsh" - Delete "$INSTDIR\Contrib\nsArray\*.*" - RMDir "$INSTDIR\Contrib\nsArray" - Delete "$INSTDIR\Docs\nsArray\*.*" - RMDir "$INSTDIR\Docs\nsArray" - Delete "$INSTDIR\Examples\nsArray\*.nsi" - RMDir "$INSTDIR\Examples\nsArray" - - ;uninstall NSISArray Plugin - IfFileExists $INSTDIR\Plugins\NSISArray.dll "" noNSISArray - Delete "$INSTDIR\Plugins\NSISArray*.dll" - Delete "$INSTDIR\Include\NSISArray.nsh" - Delete "$INSTDIR\Contrib\NSISArray\*.*" - RMDir "$INSTDIR\Contrib\NSISArray" - Delete "$INSTDIR\Docs\NSISArray\*.*" - RMDir "$INSTDIR\Docs\NSISArray" - Delete "$INSTDIR\Examples\NSISArray\*.nsi" - RMDir "$INSTDIR\Examples\NSISArray" - noNSISArray: - - Delete "$INSTDIR\Include\UMUI.nsh" - Delete "$INSTDIR\Include\MUIEx.nsh" - RMDir "$INSTDIR\Include" - - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AdditionalTasks.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternativeStartMenu.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternativeStartMenuApplication.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Confirm.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Information.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\ioSpecial.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Maintenance.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\MaintenanceSetupType.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\MaintenanceUpdateSetupType.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\SerialNumber.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini" - Delete "$INSTDIR\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini" - RMDir "$INSTDIR\Contrib\UltraModernUI\Ini" - - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\green" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\red" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\green2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\green.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\red2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\red.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed.nsh" - RMDir "$INSTDIR\Contrib\UltraModernUI\BGSkins" - - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\blue" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\brown" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\gray" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\green" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\purple" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\red" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple" - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\blue2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\blue.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\brown2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\brown.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\gray2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\gray.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\green2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\green.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\purple2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\purple.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\red2.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\red.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple.nsh" - Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed.nsh" - RMDir "$INSTDIR\Contrib\UltraModernUI\Skins" - - RMDir /r "$INSTDIR\Contrib\UltraModernUI\Language files" - - Delete "$INSTDIR\Contrib\UltraModernUI\UMUI.nsh" - RMDir "$INSTDIR\Contrib\UltraModernUI\" - RMDir "$INSTDIR\Contrib" - - RMDir /r "$INSTDIR\Docs\UltraModernUI\" - RMDir "$INSTDIR\Docs" - - RMDir /r "$INSTDIR\Examples\UltraModernUI\" - RMDir "$INSTDIR\Examples" - - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_bigdesc.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_headerbgimage.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_sb.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_bigdesc.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_nodesc.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_noleftimage.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_sb.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_small.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_small_sb.exe" - Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_smalldesc.exe" - RMDir "$INSTDIR\Contrib\UIs\UltraModernUI\" - RMDir "$INSTDIR\Contrib\UIs" - - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Complete.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\CompleteEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Continue.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\ContinueEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Custom.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\CustomEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\HeaderBG.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Minimal.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\MinimalEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Modify.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\ModifyEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Remove.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\RemoveEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Repair.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\RepairEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Standard.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\StandardEx.bmp" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Icon2.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Icon.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\install.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\installEx.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\UnIcon2.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\UnIcon.ico" - Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\uninstall.ico" - RMDir "$INSTDIR\Contrib\Graphics\UltraModernUI\" - RMDir "$INSTDIR\Contrib\Graphics" - - Delete "$INSTDIR\NSISUMUI.exe" - Delete "$INSTDIR\UninstallUMUI.exe" - -!macroend - -Section Uninstall - - SetDetailsPrint textonly - DetailPrint "Uninstalling Ultra-Modern UI..." - SetDetailsPrint listonly - - IfFileExists $INSTDIR\NSISUMUI.exe umui_installed - MessageBox MB_YESNO "It does not appear that Ultra-Modern UI is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES umui_installed - Abort "Uninstall aborted by user" - umui_installed: - - !insertmacro removeUMUIfiles - - RMDir "$INSTDIR" - - Delete "$SMPROGRAMS\NSIS.lnk" - - StrCpy $R0 "nok" - IfFileExists "$DESKTOP\NSIS.lnk" "" dektopNotExists - Delete "$DESKTOP\NSIS.lnk" - StrCpy $R0 "ok" - dektopNotExists: - - ; Recreate NSIS sortcuts - IfFileExists "$INSTDIR\NSIS.exe" "" nsisRemoved - SetOutPath "$INSTDIR\" - CreateShortCut "$SMPROGRAMS\NSIS.lnk" "$INSTDIR\NSIS.exe" - StrCmp $R0 "ok" "" nsisRemoved - CreateShortCut "$DESKTOP\NSIS.lnk" "$INSTDIR\NSIS.exe" - nsisRemoved: - - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" - - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_SetupType" ;"${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_InstType" ;"${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_Components" ;"${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_UNINSTALLPATH_REGISTRY_VALUENAME}" - - DeleteRegKey /ifempty ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - -SectionEnd - - -;-------------------------------- -;Installer Sections Declaration dans Description - -!insertmacro UMUI_DECLARECOMPONENTS_BEGIN - !insertmacro UMUI_COMPONENT SecUMUI - !insertmacro UMUI_COMPONENT SecSkins - !insertmacro UMUI_COMPONENT SecBGSkins - !insertmacro UMUI_COMPONENT SecSkinnedControls - !insertmacro UMUI_COMPONENT SecSkinnedControlsSources - !insertmacro UMUI_COMPONENT SecInstallOptionsEx - !insertmacro UMUI_COMPONENT SecInstallOptionsExSources - !insertmacro UMUI_COMPONENT SecnsArray - !insertmacro UMUI_COMPONENT SecnsArraySources - !insertmacro UMUI_COMPONENT SecNSISLanguagesFiles -!insertmacro UMUI_DECLARECOMPONENTS_END - -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecUMUI} "The Utra-Modern User Interface for NSIS." - !insertmacro MUI_DESCRIPTION_TEXT ${SecSkins} "A lot of skins for the Utra-Modern User Interface." - !insertmacro MUI_DESCRIPTION_TEXT ${SecBGSkins} "A lot of background skins for the Utra-Modern User Interface." - !insertmacro MUI_DESCRIPTION_TEXT ${SecGroupPlugins} "Install very useful NSIS plugins used by Ultra-Modern UI to extend the possibilities of NSIS." - !insertmacro MUI_DESCRIPTION_TEXT ${SecSkinnedControls} "This NSIS plugin, writing by SuperPat, allow you to skin all buttons and scrollbars of your installer.$\n$\rIt's used by default with the UltraModern style." - !insertmacro MUI_DESCRIPTION_TEXT ${SecSkinnedControlsSources} "The Sources code of the SkinnedControls plugin." - !insertmacro MUI_DESCRIPTION_TEXT ${SecInstallOptionsEx} "This NSIS plugin, writing by deguix and SuperPat is an expanded version of the original InstallOptions plugin containing a lot of new features.$\nThis plugin is supported natively by Ultra-Modern UI." - !insertmacro MUI_DESCRIPTION_TEXT ${SecInstallOptionsExSources} "The Sources code of the InstallOptionsEx plugin." - !insertmacro MUI_DESCRIPTION_TEXT ${SecnsArray} "This NSIS plugin, writing by Afrow UK, add the support of the array in NSIS. It comes with plenty of functions for managing your arrays.$\nThis plugin is used with the AlternativeStartMenu and MultiLanguages pages of Ultra-Modern UI." - !insertmacro MUI_DESCRIPTION_TEXT ${SecnsArraySources} "The Sources code of the nsArray plugin." - !insertmacro MUI_DESCRIPTION_TEXT ${SecNSISLanguagesFiles} "Update the NSIS language files of your installation by those of the version ${NSIS_VERSION} of NSIS.$\nThese language files contain a lot of translation fix and add the lastest translated languages." -!insertmacro MUI_FUNCTION_DESCRIPTION_END - - -;-------------------------------- -; Pages functions - -Function addtasks_function - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK DESKTOP 1 "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LINE - - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" - - UserInfo::GetAccountType - Pop $R0 - StrCmp $R0 "Guest" 0 notLimited - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - Goto endShellVarContext - notLimited: - !insertmacro UMUI_GETSHELLVARCONTEXT - Pop $R0 - StrCmp $R0 "current" 0 allShellVarContext - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 0 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - Goto endShellVarContext - allShellVarContext: - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 0 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - endShellVarContext: - ClearErrors - -FunctionEnd - -!macro confirm_addline section - - SectionGetFlags ${Sec${section}} $1 - IntOp $1 $1 & ${SF_SELECTED} - IntCmp $1 ${SF_SELECTED} 0 n${section} n${section} - SectionGetText ${Sec${section}} $1 - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " - $1" - n${section}: - -!macroend - -Function confirm_function - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - - ;For the setuptype page - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SETUPTYPE_TITLE):" - !insertmacro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT - Pop $R0 - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $R0" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_COMPNENTS)" - - !insertmacro confirm_addline UMUI - !insertmacro confirm_addline Skins - !insertmacro confirm_addline BGSkins - !insertmacro confirm_addline SkinnedControls - !insertmacro confirm_addline SkinnedControlsSources - !insertmacro confirm_addline InstallOptionsEx - !insertmacro confirm_addline InstallOptionsExSources - !insertmacro confirm_addline nsArray - !insertmacro confirm_addline nsArraySources - !insertmacro confirm_addline NSISLanguagesFiles - - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_ADDITIONALTASKS_TITLE):" - ;Only if one at least of additional icon check is checked - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ;ShellVarContext - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT)" - ; only if for all user radio is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - ; only if for current user is selected - !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" - !insertmacro UMUI_ADDITIONALTASKS_ENDIF - -FunctionEnd - - -Function preuninstall_function - - IfFileExists $INSTDIR\makensis.exe nsis_installed - MessageBox MB_YESNO "It does not appear that NSIS is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES nsis_installed - Abort "Install aborted by user" - nsis_installed: - - SetDetailsPrint textonly - DetailPrint "Uninstalling Ultra-Modern UI..." - SetDetailsPrint none - - !insertmacro removeUMUIfiles - - Delete "$SMPROGRAMS\NSIS.lnk" - Delete "$DESKTOP\NSIS.lnk" - - ClearErrors - ReadRegStr $R0 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_StartMenuFolder" - IfErrors checkNext 0 - StrCpy $R1 $R0 "" -8 ; copy last height chars - StrCmpS $R1 "\Contrib" 0 removeShortcuts - StrCpy $R0 $R0 -8 ; remove \Contrib - Goto removeShortcuts - checkNext: - ReadRegStr $R0 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "StartMenuFolder" - IfErrors noStartMenu removeShortcuts - removeShortcuts: - SetShellVarContext all - Delete "$SMPROGRAMS\$R0\Contrib\UltraModernUI Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\NSISArray Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\SkinnedControls Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\nsArray Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\InstallOptionsEx Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Uninstall UltraModernUI.lnk" - RMDir "$SMPROGRAMS\$R0\Contrib" - Delete "$SMPROGRAMS\$R0\Uninstall UltraModernUI.lnk" - Delete "$SMPROGRAMS\$R0\NSIS.lnk" - RMDir "$SMPROGRAMS\$R0" - - SetShellVarContext current - Delete "$SMPROGRAMS\$R0\Contrib\UltraModernUI Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\NSISArray Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\SkinnedControls Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\nsArray Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\InstallOptionsEx Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" - Delete "$SMPROGRAMS\$R0\Contrib\Uninstall UltraModernUI.lnk" - RMDir "$SMPROGRAMS\$R0\Contrib" - Delete "$SMPROGRAMS\$R0\Uninstall UltraModernUI.lnk" - Delete "$SMPROGRAMS\$R0\NSIS.lnk" - RMDir "$SMPROGRAMS\$R0" - noStartMenu: - - - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" - - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_SetupType" ;"${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_InstType" ;"${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_Components" ;"${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_UNINSTALLPATH_REGISTRY_VALUENAME}" - ; No more used registry keys - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_StartMenuFolder" - DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "StartMenuFolder" - - RMDir "$INSTDIR" - - SetDetailsPrint both - -FunctionEnd - - -;-------------------------------- -;Init Functions - -Function .onInit - - !insertmacro UMUI_MULTILANG_GET - - ; Check NSIS Version - ClearErrors - ReadRegDword $0 HKLM Software\NSIS "VersionMajor" - IfErrors errorNSIS 0 - ReadRegDword $1 HKLM Software\NSIS "VersionMinor" - IfErrors errorNSIS 0 - StrCmp $0 3 okNSIS 0 - - errorNSIS: - MessageBox MB_OK|MB_ICONSTOP "NSIS 3 is not installed on your computer.$\r$\nPlease, install NSIS (http://nsis.sourceforge.net) and then re-execute this install.$\n$\rThis install will stop." - Quit - - okNSIS: - - IntCmp $1 0 okNSISMin 0 okNSISMin - MessageBox MB_OK|MB_ICONSTOP "Your version of NSIS is not compatible with Ultra-Modern UI.$\r$\nPlease, update NSIS (http://nsis.sourceforge.net) and then re-execute this install.$\n$\rThis install will stop." - Quit - okNSISMin: - - ; ReadOnly Unselect if NSIS != VER_MAJOR && NSIS >= VER_MINOR - IntCmp $0 ${VER_MAJOR} 0 unselectROlangFiles unselectROlangFiles - IntCmp $1 ${VER_MINOR} unselectROlangFiles end1 unselectROlangFiles - unselectROlangFiles: - !insertmacro UnSelectSection ${SecNSISLanguagesFiles} - SectionGetFlags ${SecNSISLanguagesFiles} $2 - IntOp $2 $2 | ${SF_RO} - SectionSetFlags ${SecNSISLanguagesFiles} $2 - !insertmacro ClearSectionInInstType ${SecNSISLanguagesFiles} 4 ;4 complete - end1: - -FunctionEnd - -Function un.onInit - - !insertmacro UMUI_MULTILANG_GET - +; o----------------------------------------o +; | NSIS Ultra-Modern User Interface 2.0b6 | +; (----------------------------------------) +; | Installer script. | +; | Written by SyperPat | +; o----------------------------------------o + +;-------------------------------- +;General + + !define /date NOW "%Y-%m-%d" + !define NAME "UltraModernUI" + + ; For language file selection + !define VER_MAJOR 3 + !define VER_MINOR 05 + !define VER_REV_STR "" + + !if "${NSIS_VERSION}" != "v${VER_MAJOR}.${VER_MINOR}${VER_REV_STR}" + !error "VER_MAJOR, VER_MINOR and VER_REV_STR defines does not match the current NSIS version: ${NSIS_VERSION}" + !endif + + !define UMUI_VERSION "2.0b6" + !define UMUI_VERBUILD "2.0_${NOW}" + + !define /date VERIPV "200.%Y.%m.%d" + VIProductVersion "${VERIPV}" + VIAddVersionKey ProductName "Ultra-Modern User Interface for NSIS (Nullsoft Scriptable Install System) version 3 x86 edition." + VIAddVersionKey ProductVersion "${UMUI_VERSION}" + VIAddVersionKey Comments "A new User Interface for NSIS with a style like the most recent installers. This package also include some plugins used by UMUI to extend the possibilities of NSIS." + VIAddVersionKey LegalTrademarks "Ultra-Modern UI is released under the zlib/libpng license: http://nsis.sf.net/License" + VIAddVersionKey LegalCopyright "Copyright Š2005-2019 SuperPat" + VIAddVersionKey FileDescription "Ultra-Modern User Interface for NSIS (Nullsoft Scriptable Install System) version 3 x86 edition." + VIAddVersionKey FileVersion "${UMUI_VERBUILD}" + + +;-------------------------------- +;Configuration + + ; The name of the installer + Name "NSIS Ultra-Modern User Interface ${UMUI_VERSION}" + + ; The file to write + OutFile "UltraModernUI_${UMUI_VERSION}.exe" + + ;Generate unicode installer + Unicode True + + SetCompressor /FINAL /SOLID lzma + + ;Windows vista compatibility + RequestExecutionLevel admin + + BrandingText "$(^NameDA)" + + ;Default installation folder + InstallDir "$PROGRAMFILES\NSIS" + + +;-------------------------------- +;Include Ultra-Modern UI between others + + !include "UMUI.nsh" + + !include "Sections.nsh" + + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "blue" + + !define UMUI_USE_INSTALLOPTIONSEX + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + + !define UMUI_USE_ALTERNATE_PAGE ; For Welcome finish abort pages + !define UMUI_USE_UNALTERNATE_PAGE + + !define MUI_COMPONENTSPAGE_SMALLDESC + + !define UMUI_DEFAULT_SHELLVARCONTEXT all + + !define UMUI_ENABLE_DESCRIPTION_TEXT + +;-------------------------------- +;Registry Settings + + !define UMUI_PARAMS_REGISTRY_ROOT HKLM + !define UMUI_PARAMS_REGISTRY_KEY "Software\NSIS" + + !define UMUI_LANGUAGE_REGISTRY_VALUENAME "UMUI_InstallerLanguage" + !define UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME "UMUI_ShellVarContext" + + !define UMUI_UNINSTALLPATH_REGISTRY_VALUENAME "UMUI_UninstallPath" + !define UMUI_UNINSTALL_FULLPATH "$INSTDIR\UninstallUMUI.exe" + !define UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME "UMUI_InstallPath" + + !define UMUI_VERSION_REGISTRY_VALUENAME "UMUI_Version" + !define UMUI_VERBUILD_REGISTRY_VALUENAME "UMUI_VerBuild" + + !define UMUI_PREUNINSTALL_FUNCTION preuninstall_function + + InstallDirRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "" + +;-------------------------------- +;Reserve Files + + !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS + + +;-------------------------------- +;Pages + + !insertmacro UMUI_PAGE_MULTILANGUAGE + + !define UMUI_MAINTENANCEPAGE_MODIFY + !define UMUI_MAINTENANCEPAGE_REPAIR + !define UMUI_MAINTENANCEPAGE_REMOVE + !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP + !insertmacro UMUI_PAGE_MAINTENANCE + + !define UMUI_UPDATEPAGE_REMOVE + !define UMUI_UPDATEPAGE_CONTINUE_SETUP + !insertmacro UMUI_PAGE_UPDATE + + !define UMUI_WELCOMEPAGE_ALTERNATIVETEXT + !insertmacro MUI_PAGE_WELCOME + + !define MUI_LICENSEPAGE_CHECKBOX + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + + !define UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT + !insertmacro UMUI_PAGE_INFORMATION "${NSISDIR}\Docs\UltraModernUI\ReadMe.rtf" + + !define UMUI_SETUPTYPEPAGE_MINIMAL "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" + !define UMUI_SETUPTYPEPAGE_STANDARD "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" + !define UMUI_SETUPTYPEPAGE_COMPLETE "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" + !define UMUI_SETUPTYPEPAGE_DEFAULTCHOICE ${UMUI_COMPLETE} + !define UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME "UMUI_SetupType" + !insertmacro UMUI_PAGE_SETUPTYPE + + !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME "UMUI_InstType" + !define UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME "UMUI_Components" + !insertmacro MUI_PAGE_COMPONENTS + + !define UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME "UMUI_Tasks" + !insertmacro UMUI_PAGE_ADDITIONALTASKS addtasks_function + + !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function + !insertmacro UMUI_PAGE_CONFIRM + + !insertmacro MUI_PAGE_INSTFILES + + !define MUI_FINISHPAGE_SHOWREADME "${NSISDIR}\Docs\UltraModernUI\Readme.html" + !define MUI_FINISHPAGE_LINK "Ultra-Modern UI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_PAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "Ultra-Modern UI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_PAGE_ABORT + + + !insertmacro UMUI_UNPAGE_MULTILANGUAGE + + !define UMUI_MAINTENANCEPAGE_MODIFY + !define UMUI_MAINTENANCEPAGE_REPAIR + !define UMUI_MAINTENANCEPAGE_REMOVE + !define UMUI_MAINTENANCEPAGE_CONTINUE_SETUP + !insertmacro UMUI_UNPAGE_MAINTENANCE + + !insertmacro MUI_UNPAGE_WELCOME + + !insertmacro MUI_UNPAGE_CONFIRM + + !insertmacro MUI_UNPAGE_INSTFILES + + !define MUI_FINISHPAGE_LINK "Ultra-Modern UI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_UNPAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "Ultra-Modern UI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_UNPAGE_ABORT + + +;-------------------------------- +;Languages + +; first language is the default language if the system language is not in this list + !insertmacro MUI_LANGUAGE "English" + +; Other UMUI translated languages + !insertmacro MUI_LANGUAGE "Bulgarian" + !insertmacro MUI_LANGUAGE "Czech" + !insertmacro MUI_LANGUAGE "French" + !insertmacro MUI_LANGUAGE "German" + !insertmacro MUI_LANGUAGE "Greek" + !insertmacro MUI_LANGUAGE "Hungarian" + !insertmacro MUI_LANGUAGE "Italian" + !insertmacro MUI_LANGUAGE "Japanese" + !insertmacro MUI_LANGUAGE "Lithuanian" + !insertmacro MUI_LANGUAGE "Polish" + !insertmacro MUI_LANGUAGE "Russian" + !insertmacro MUI_LANGUAGE "Slovenian" + !insertmacro MUI_LANGUAGE "Spanish" + !insertmacro MUI_LANGUAGE "Turkish" +; Other UMUI partially translated language + !insertmacro MUI_LANGUAGE "PortugueseBR" + +; Other untranslated languages but usable even so. +/* + !insertmacro MUI_LANGUAGE "SpanishInternational" + !insertmacro MUI_LANGUAGE "SimpChinese" + !insertmacro MUI_LANGUAGE "TradChinese" + !insertmacro MUI_LANGUAGE "Korean" + !insertmacro MUI_LANGUAGE "Dutch" + !insertmacro MUI_LANGUAGE "Danish" + !insertmacro MUI_LANGUAGE "Swedish" + !insertmacro MUI_LANGUAGE "Norwegian" + !insertmacro MUI_LANGUAGE "NorwegianNynorsk" + !insertmacro MUI_LANGUAGE "Finnish" + !insertmacro MUI_LANGUAGE "Portuguese" + !insertmacro MUI_LANGUAGE "Ukrainian" + !insertmacro MUI_LANGUAGE "Slovak" + !insertmacro MUI_LANGUAGE "Croatian" + !insertmacro MUI_LANGUAGE "Thai" + !insertmacro MUI_LANGUAGE "Romanian" + !insertmacro MUI_LANGUAGE "Latvian" + !insertmacro MUI_LANGUAGE "Macedonian" + !insertmacro MUI_LANGUAGE "Estonian" + !insertmacro MUI_LANGUAGE "Serbian" + !insertmacro MUI_LANGUAGE "SerbianLatin" + !insertmacro MUI_LANGUAGE "Arabic" + !insertmacro MUI_LANGUAGE "Farsi" + !insertmacro MUI_LANGUAGE "Hebrew" + !insertmacro MUI_LANGUAGE "Indonesian" + !insertmacro MUI_LANGUAGE "Mongolian" + !insertmacro MUI_LANGUAGE "Luxembourgish" + !insertmacro MUI_LANGUAGE "Albanian" + !insertmacro MUI_LANGUAGE "Breton" + !insertmacro MUI_LANGUAGE "Belarusian" + !insertmacro MUI_LANGUAGE "Icelandic" + !insertmacro MUI_LANGUAGE "Malay" + !insertmacro MUI_LANGUAGE "Bosnian" + !insertmacro MUI_LANGUAGE "Kurdish" + !insertmacro MUI_LANGUAGE "Irish" + !insertmacro MUI_LANGUAGE "Uzbek" + !insertmacro MUI_LANGUAGE "Galician" + !insertmacro MUI_LANGUAGE "Afrikaans" + !insertmacro MUI_LANGUAGE "Catalan" + !insertmacro MUI_LANGUAGE "Esperanto" + !insertmacro MUI_LANGUAGE "Asturian" + !insertmacro MUI_LANGUAGE "Basque" + !insertmacro MUI_LANGUAGE "Pashto" + !insertmacro MUI_LANGUAGE "ScotsGaelic" + !insertmacro MUI_LANGUAGE "Vietnamese" + !insertmacro MUI_LANGUAGE "Welsh" + !insertmacro MUI_LANGUAGE "Corsican" + !insertmacro MUI_LANGUAGE "Tatar" + +; Other unicode only untranslated languages but usable even so. + !insertmacro MUI_LANGUAGE "Armenian" + !insertmacro MUI_LANGUAGE "Georgian" + !insertmacro MUI_LANGUAGE "Hindi" +*/ + +;-------------------------------- +;Installer Types + +InstType "$(UMUI_TEXT_SETUPTYPE_MINIMAL_TITLE)" +InstType "$(UMUI_TEXT_SETUPTYPE_STANDARD_TITLE)" +InstType "$(UMUI_TEXT_SETUPTYPE_COMPLETE_TITLE)" + + +;-------------------------------- +;Installer Sections + +Section "$(^NameDA)" SecUMUI + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI..." + SetDetailsPrint listonly + + SectionIn RO + + SectionIn 1 2 3 + + SetOutPath "$INSTDIR" + !if ! /FileExists "..\..\NSISUMUI.exe" + !define NO_NSISMENU_HTML 1 + !makensis '-v2 "NSISUMUIMenu.nsi" "-XOutFile ..\..\NSISUMUI.exe"' = 0 + !endif + File ..\..\NSISUMUI.exe + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\" + File "..\..\Contrib\UltraModernUI\UMUI.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Ini" + File "..\..\Contrib\UltraModernUI\Ini\*.ini" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Language files\" + File "..\..\Contrib\UltraModernUI\Language files\*.nsh" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\blue.nsh" + File "..\..\Contrib\UltraModernUI\Skins\blue2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\blue\" + File "..\..\Contrib\UltraModernUI\Skins\blue\*.bmp" + + SetOutPath "$INSTDIR\Docs\UltraModernUI\" + File "..\..\Docs\UltraModernUI\*.*" + SetOutPath "$INSTDIR\Docs\UltraModernUI\images\" + File "..\..\Docs\UltraModernUI\images\*.png" + File "..\..\Docs\UltraModernUI\images\*.gif" + + SetOutPath "$INSTDIR\Examples\UltraModernUI\" + File "*.nsi" + File "*.ini" + File "*.txt" + + SetOutPath "$INSTDIR\Contrib\UIs\UltraModernUI\" + File "..\..\Contrib\UIs\UltraModernUI\*.exe" + + SetOutPath "$INSTDIR\Contrib\Graphics\UltraModernUI\" + File "..\..\Contrib\Graphics\UltraModernUI\*.*" + + SetOutPath "$INSTDIR\Include\" + File "..\..\Include\UMUI.nsh" + File "..\..\Include\MUIEx.nsh" + + + ;CreateShortCuts + ; only if all user is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL + SetShellVarContext all + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if current user is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT + SetShellVarContext current + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + + SetOutPath "$INSTDIR\" + CreateShortCut "$SMPROGRAMS\NSIS.lnk" "$INSTDIR\NSISUMUI.exe" + + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP + CreateShortCut "$DESKTOP\NSIS.lnk" "$INSTDIR\NSISUMUI.exe" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + + + ;Create uninstaller + WriteUninstaller "$INSTDIR\UninstallUMUI.exe" + + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayName" "$(^Name)" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayIcon" "$INSTDIR\UninstallUMUI.exe,0" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString" "$INSTDIR\UninstallUMUI.exe" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "Publisher" "SuperPat" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "HelpLink" "http://ultramodernui.sourceforge.net/" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "URLInfoAbout" "http://ultramodernui.sourceforge.net/" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "URLUpdateInfo" "http://ultramodernui.sourceforge.net/" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "ModifyPath" '"$INSTDIR\UninstallUMUI.exe" /modify' + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayVersion" "${UMUI_VERSION}" + +SectionEnd + +Section "Skins for Ultra-Modern UI" SecSkins + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Skins..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\brown.nsh" + File "..\..\Contrib\UltraModernUI\Skins\brown2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\brown\" + File "..\..\Contrib\UltraModernUI\Skins\brown\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\darkgreen.nsh" + File "..\..\Contrib\UltraModernUI\Skins\darkgreen2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen\" + File "..\..\Contrib\UltraModernUI\Skins\darkgreen\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\gray.nsh" + File "..\..\Contrib\UltraModernUI\Skins\gray2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\gray\" + File "..\..\Contrib\UltraModernUI\Skins\gray\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\green.nsh" + File "..\..\Contrib\UltraModernUI\Skins\green2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\green\" + File "..\..\Contrib\UltraModernUI\Skins\green\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\purple.nsh" + File "..\..\Contrib\UltraModernUI\Skins\purple2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\purple\" + File "..\..\Contrib\UltraModernUI\Skins\purple\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\red.nsh" + File "..\..\Contrib\UltraModernUI\Skins\red2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\red\" + File "..\..\Contrib\UltraModernUI\Skins\red\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftBlue.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue\" + File "..\..\Contrib\UltraModernUI\Skins\SoftBlue\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftBrown.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown\" + File "..\..\Contrib\UltraModernUI\Skins\SoftBrown\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftGray.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray\" + File "..\..\Contrib\UltraModernUI\Skins\SoftGray\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftGreen.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen\" + File "..\..\Contrib\UltraModernUI\Skins\SoftGreen\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftPurple.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple\" + File "..\..\Contrib\UltraModernUI\Skins\SoftPurple\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\" + File "..\..\Contrib\UltraModernUI\Skins\SoftRed.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed\" + File "..\..\Contrib\UltraModernUI\Skins\SoftRed\*.bmp" + +SectionEnd + +Section "BackGround Skins for Ultra-Modern UI" SecBGSkins + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | BackGround Skins..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\blue.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\blue2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue\" + File "..\..\Contrib\UltraModernUI\BGSkins\blue\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\brown.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\brown2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown\" + File "..\..\Contrib\UltraModernUI\BGSkins\brown\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen\" + File "..\..\Contrib\UltraModernUI\BGSkins\darkgreen\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\gray.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\gray2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray\" + File "..\..\Contrib\UltraModernUI\BGSkins\gray\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\green.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\green2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\green\" + File "..\..\Contrib\UltraModernUI\BGSkins\green\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\purple.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\purple2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple\" + File "..\..\Contrib\UltraModernUI\BGSkins\purple\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\red.nsh" + File "..\..\Contrib\UltraModernUI\BGSkins\red2.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\red\" + File "..\..\Contrib\UltraModernUI\BGSkins\red\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftBlue.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftBlue\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftBrown.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftBrown\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftGray.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftGray\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftGreen.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftGreen\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftPurple.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftPurple\*.bmp" + + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftRed.nsh" + SetOutPath "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed\" + File "..\..\Contrib\UltraModernUI\BGSkins\SoftRed\*.bmp" + +SectionEnd + + +SectionGroup /e "Plugins" SecGroupPlugins + + Section "SkinnedControls plugin version 1.4" SecSkinnedControls + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | SkinnedControls..." + SetDetailsPrint listonly + + SectionIn RO + + SectionIn 1 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File "..\..\Plugins\x86-ansi\SkinnedControls.dll" + + SetOutPath $INSTDIR\Plugins\x86-unicode + File "..\..\Plugins\x86-unicode\SkinnedControls.dll" + + SetOutPath $INSTDIR\Examples\SkinnedControls + File "..\SkinnedControls\*.nsi" + + SetOutPath $INSTDIR\Contrib\SkinnedControls\skins + File "..\..\Contrib\SkinnedControls\skins\*.bmp" + + SetOutPath $INSTDIR\Contrib\UIs + File "..\..\Contrib\UIs\modern_sb.exe" + File "..\..\Contrib\UIs\default_sb.exe" + + SetOutPath $INSTDIR\Docs\SkinnedControls + File "..\..\Docs\SkinnedControls\*.*" + SetOutPath "$INSTDIR\Docs\SkinnedControls\images\" + File "..\..\Docs\SkinnedControls\images\*.png" + File "..\..\Docs\SkinnedControls\images\*.gif" + + SectionEnd + + Section "SkinnedControls plugin Sources Code" SecSkinnedControlsSources + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | SkinnedControls Soucres Code..." + SetDetailsPrint listonly + + SectionIn 3 + + SetOutPath $INSTDIR\Contrib\SkinnedControls + File "..\..\Contrib\SkinnedControls\*.h" + File "..\..\Contrib\SkinnedControls\*.c" + File "..\..\Contrib\SkinnedControls\SkinnedControls.sln" + File "..\..\Contrib\SkinnedControls\SkinnedControls.vcproj" + SetOutPath $INSTDIR\Contrib\SkinnedControls\coolsb + File "..\..\Contrib\SkinnedControls\coolsb\*.h" + File "..\..\Contrib\SkinnedControls\coolsb\*.c" + File "..\..\Contrib\SkinnedControls\coolsb\detours.lib" + File "..\..\Contrib\SkinnedControls\coolsb\coolsb.vcproj" + + SectionEnd + + + Section "InstallOptionsEx plugin version 2.4.5 beta 3" SecInstallOptionsEx + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | InstallOptionsEx..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File "..\..\Plugins\x86-ansi\InstallOptionsEx.dll" + + SetOutPath $INSTDIR\Plugins\x86-unicode + File "..\..\Plugins\x86-unicode\InstallOptionsEx.dll" + + SetOutPath $INSTDIR\Examples\InstallOptionsEx + File "..\InstallOptionsEx\*.nsi" + File "..\InstallOptionsEx\*.ini" + + SetOutPath $INSTDIR\Docs\InstallOptionsEx + File "..\..\Docs\InstallOptionsEx\*.*" + + SectionEnd + + Section "InstallOptionsEx plugin Sources Code" SecInstallOptionsExSources + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | InstallOptionsEx Soucres Code..." + SetDetailsPrint listonly + + SectionIn 3 + + SetOutPath $INSTDIR\Contrib\InstallOptionsEx + File "..\..\Contrib\InstallOptionsEx\*.cpp" + File "..\..\Contrib\InstallOptionsEx\*.c" + File "..\..\Contrib\InstallOptionsEx\*.h" + File "..\..\Contrib\InstallOptionsEx\ioptdll.rc" + File "..\..\Contrib\InstallOptionsEx\io.sln" + File "..\..\Contrib\InstallOptionsEx\io.vcproj" + SetOutPath $INSTDIR\Contrib\InstallOptionsEx\Controls + File "..\..\Contrib\InstallOptionsEx\Controls\*.h" + + SectionEnd + + + Section "nsArray plugin version 1.1.1.7" SecnsArray + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | nsArray..." + SetDetailsPrint listonly + + SectionIn 2 3 + + SetOutPath $INSTDIR\Plugins\x86-ansi + File "..\..\Plugins\x86-ansi\nsArray.dll" + + SetOutPath $INSTDIR\Plugins\x86-unicode + File "..\..\Plugins\x86-unicode\nsArray.dll" + + SetOutPath $INSTDIR\Include + File "..\..\Include\nsArray.nsh" + + SetOutPath $INSTDIR\Docs\nsArray + File "..\..\Docs\nsArray\*.*" + + SetOutPath $INSTDIR\Examples\nsArray + File "..\nsArray\*.nsi" + + SectionEnd + + Section "nsArray plugin Sources Code" SecnsArraySources + + SetDetailsPrint textonly + DetailPrint "Installing Ultra-Modern UI | Plugins | nsArray Soucres Code..." + SetDetailsPrint listonly + + SectionIn 3 + + SetOutPath $INSTDIR\Contrib\nsArray + File "..\..\Contrib\nsArray\*.*" + + SectionEnd + +SectionGroupEnd + + +Section "Updated Languages Files from NSIS ${NSIS_VERSION}" SecNSISLanguagesFiles + + SetDetailsPrint textonly + DetailPrint "Installing Updated Languages Files from NSIS ${NSIS_VERSION}..." + SetDetailsPrint listonly + + SectionIn 3 + + SetOutPath "$INSTDIR\Contrib\Language files" + File "..\..\Contrib\Language files\*.nsh" + + SetOutPath "$INSTDIR\Contrib\Language files" + File "..\..\Contrib\Language files\*.nlf" + +SectionEnd + +;-------------------------------- +;Uninstall Section(s) + +!macro removeUMUIfiles + + ;uninstall SkinnedControls Plugin + Delete "$INSTDIR\Plugins\x86-ansi\SkinnedControls.dll" + Delete "$INSTDIR\Plugins\x86-unicode\SkinnedControls.dll" + Delete "$INSTDIR\Contrib\UIs\modern_sb.exe" + Delete "$INSTDIR\Contrib\UIs\default_sb.exe" + RMDir /r "$INSTDIR\Contrib\SkinnedControls" + Delete "$INSTDIR\Docs\SkinnedControls\*.*" + RMDir "$INSTDIR\Docs\SkinnedControls" + Delete "$INSTDIR\Examples\SkinnedControls\*.nsi" + RMDir "$INSTDIR\Examples\SkinnedControls" + + ;uninstall InstallOptionsEx Plugin + Delete "$INSTDIR\Plugins\x86-ansi\InstallOptionsEx.dll" + Delete "$INSTDIR\Plugins\x86-unicode\InstallOptionsEx.dll" + RMDir /r "$INSTDIR\Contrib\InstallOptionsEx" + Delete "$INSTDIR\Docs\InstallOptionsEx\*.*" + RMDir "$INSTDIR\Docs\InstallOptionsEx" + Delete "$INSTDIR\Examples\InstallOptionsEx\*.*" + RMDir "$INSTDIR\Examples\InstallOptionsEx" + + ;uninstall nsArray Plugin + Delete "$INSTDIR\Plugins\x86-ansi\nsArray.dll" + Delete "$INSTDIR\Plugins\x86-unicode\nsArray.dll" + Delete "$INSTDIR\Include\nsArray.nsh" + Delete "$INSTDIR\Contrib\nsArray\*.*" + RMDir "$INSTDIR\Contrib\nsArray" + Delete "$INSTDIR\Docs\nsArray\*.*" + RMDir "$INSTDIR\Docs\nsArray" + Delete "$INSTDIR\Examples\nsArray\*.nsi" + RMDir "$INSTDIR\Examples\nsArray" + + ;uninstall NSISArray Plugin + IfFileExists $INSTDIR\Plugins\NSISArray.dll "" noNSISArray + Delete "$INSTDIR\Plugins\NSISArray*.dll" + Delete "$INSTDIR\Include\NSISArray.nsh" + Delete "$INSTDIR\Contrib\NSISArray\*.*" + RMDir "$INSTDIR\Contrib\NSISArray" + Delete "$INSTDIR\Docs\NSISArray\*.*" + RMDir "$INSTDIR\Docs\NSISArray" + Delete "$INSTDIR\Examples\NSISArray\*.nsi" + RMDir "$INSTDIR\Examples\NSISArray" + noNSISArray: + + Delete "$INSTDIR\Include\UMUI.nsh" + Delete "$INSTDIR\Include\MUIEx.nsh" + RMDir "$INSTDIR\Include" + + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AdditionalTasks.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbort.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternateWelcomeFinishAbortImage.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternativeStartMenu.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\AlternativeStartMenuApplication.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Confirm.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Information.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\ioSpecial.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\Maintenance.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\MaintenanceSetupType.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\MaintenanceUpdateSetupType.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\SerialNumber.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\WelcomeFinishAbort.ini" + Delete "$INSTDIR\Contrib\UltraModernUI\Ini\WelcomeFinishAbortImage.ini" + RMDir "$INSTDIR\Contrib\UltraModernUI\Ini" + + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\green" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\red" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\blue.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\brown.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\darkgreen.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\gray.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\green2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\green.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\purple.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\red2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\red.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBlue.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftBrown.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGray.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftGreen.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftPurple.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\BGSkins\SoftRed.nsh" + RMDir "$INSTDIR\Contrib\UltraModernUI\BGSkins" + + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\blue" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\brown" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\gray" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\green" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\purple" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\red" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple" + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\blue2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\blue.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\brown2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\brown.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\darkgreen.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\gray2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\gray.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\green2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\green.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\purple2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\purple.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\red2.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\red.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBlue.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftBrown.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGray.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftGreen.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftPurple.nsh" + Delete "$INSTDIR\Contrib\UltraModernUI\Skins\SoftRed.nsh" + RMDir "$INSTDIR\Contrib\UltraModernUI\Skins" + + RMDir /r "$INSTDIR\Contrib\UltraModernUI\Language files" + + Delete "$INSTDIR\Contrib\UltraModernUI\UMUI.nsh" + RMDir "$INSTDIR\Contrib\UltraModernUI\" + RMDir "$INSTDIR\Contrib" + + RMDir /r "$INSTDIR\Docs\UltraModernUI\" + RMDir "$INSTDIR\Docs" + + RMDir /r "$INSTDIR\Examples\UltraModernUI\" + RMDir "$INSTDIR\Examples" + + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_bigdesc.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_headerbgimage.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\modern_sb.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_bigdesc.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_nodesc.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_noleftimage.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_sb.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_small.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_small_sb.exe" + Delete "$INSTDIR\Contrib\UIs\UltraModernUI\UltraModern_smalldesc.exe" + RMDir "$INSTDIR\Contrib\UIs\UltraModernUI\" + RMDir "$INSTDIR\Contrib\UIs" + + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Complete.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\CompleteEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Continue.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\ContinueEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Custom.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\CustomEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\HeaderBG.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Minimal.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\MinimalEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Modify.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\ModifyEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Remove.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\RemoveEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Repair.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\RepairEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Standard.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\StandardEx.bmp" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Icon2.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\Icon.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\install.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\installEx.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\UnIcon2.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\UnIcon.ico" + Delete "$INSTDIR\Contrib\Graphics\UltraModernUI\uninstall.ico" + RMDir "$INSTDIR\Contrib\Graphics\UltraModernUI\" + RMDir "$INSTDIR\Contrib\Graphics" + + Delete "$INSTDIR\NSISUMUI.exe" + Delete "$INSTDIR\UninstallUMUI.exe" + +!macroend + +Section Uninstall + + SetDetailsPrint textonly + DetailPrint "Uninstalling Ultra-Modern UI..." + SetDetailsPrint listonly + + IfFileExists $INSTDIR\NSISUMUI.exe umui_installed + MessageBox MB_YESNO "It does not appear that Ultra-Modern UI is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES umui_installed + Abort "Uninstall aborted by user" + umui_installed: + + !insertmacro removeUMUIfiles + + RMDir "$INSTDIR" + + Delete "$SMPROGRAMS\NSIS.lnk" + + StrCpy $R0 "nok" + IfFileExists "$DESKTOP\NSIS.lnk" "" dektopNotExists + Delete "$DESKTOP\NSIS.lnk" + StrCpy $R0 "ok" + dektopNotExists: + + ; Recreate NSIS sortcuts + IfFileExists "$INSTDIR\NSIS.exe" "" nsisRemoved + SetOutPath "$INSTDIR\" + CreateShortCut "$SMPROGRAMS\NSIS.lnk" "$INSTDIR\NSIS.exe" + StrCmp $R0 "ok" "" nsisRemoved + CreateShortCut "$DESKTOP\NSIS.lnk" "$INSTDIR\NSIS.exe" + nsisRemoved: + + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" + + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_SetupType" ;"${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_InstType" ;"${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_Components" ;"${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_UNINSTALLPATH_REGISTRY_VALUENAME}" + + DeleteRegKey /ifempty ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + +SectionEnd + + +;-------------------------------- +;Installer Sections Declaration dans Description + +!insertmacro UMUI_DECLARECOMPONENTS_BEGIN + !insertmacro UMUI_COMPONENT SecUMUI + !insertmacro UMUI_COMPONENT SecSkins + !insertmacro UMUI_COMPONENT SecBGSkins + !insertmacro UMUI_COMPONENT SecSkinnedControls + !insertmacro UMUI_COMPONENT SecSkinnedControlsSources + !insertmacro UMUI_COMPONENT SecInstallOptionsEx + !insertmacro UMUI_COMPONENT SecInstallOptionsExSources + !insertmacro UMUI_COMPONENT SecnsArray + !insertmacro UMUI_COMPONENT SecnsArraySources + !insertmacro UMUI_COMPONENT SecNSISLanguagesFiles +!insertmacro UMUI_DECLARECOMPONENTS_END + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecUMUI} "The Utra-Modern User Interface for NSIS." + !insertmacro MUI_DESCRIPTION_TEXT ${SecSkins} "A lot of skins for the Utra-Modern User Interface." + !insertmacro MUI_DESCRIPTION_TEXT ${SecBGSkins} "A lot of background skins for the Utra-Modern User Interface." + !insertmacro MUI_DESCRIPTION_TEXT ${SecGroupPlugins} "Install very useful NSIS plugins used by Ultra-Modern UI to extend the possibilities of NSIS." + !insertmacro MUI_DESCRIPTION_TEXT ${SecSkinnedControls} "This NSIS plugin, writing by SuperPat, allow you to skin all buttons and scrollbars of your installer.$\n$\rIt's used by default with the UltraModern style." + !insertmacro MUI_DESCRIPTION_TEXT ${SecSkinnedControlsSources} "The Sources code of the SkinnedControls plugin." + !insertmacro MUI_DESCRIPTION_TEXT ${SecInstallOptionsEx} "This NSIS plugin, writing by deguix and SuperPat is an expanded version of the original InstallOptions plugin containing a lot of new features.$\nThis plugin is supported natively by Ultra-Modern UI." + !insertmacro MUI_DESCRIPTION_TEXT ${SecInstallOptionsExSources} "The Sources code of the InstallOptionsEx plugin." + !insertmacro MUI_DESCRIPTION_TEXT ${SecnsArray} "This NSIS plugin, writing by Afrow UK, add the support of the array in NSIS. It comes with plenty of functions for managing your arrays.$\nThis plugin is used with the AlternativeStartMenu and MultiLanguages pages of Ultra-Modern UI." + !insertmacro MUI_DESCRIPTION_TEXT ${SecnsArraySources} "The Sources code of the nsArray plugin." + !insertmacro MUI_DESCRIPTION_TEXT ${SecNSISLanguagesFiles} "Update the NSIS language files of your installation by those of the version ${NSIS_VERSION} of NSIS.$\nThese language files contain a lot of translation fix and add the lastest translated languages." +!insertmacro MUI_FUNCTION_DESCRIPTION_END + + +;-------------------------------- +; Pages functions + +Function addtasks_function + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK DESKTOP 1 "$(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LINE + + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "$(UMUI_TEXT_SHELL_VAR_CONTEXT)" + + UserInfo::GetAccountType + Pop $R0 + StrCmp $R0 "Guest" 0 notLimited + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + Goto endShellVarContext + notLimited: + !insertmacro UMUI_GETSHELLVARCONTEXT + Pop $R0 + StrCmp $R0 "current" 0 allShellVarContext + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 0 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + Goto endShellVarContext + allShellVarContext: + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO ALL 1 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK_RADIO CURRENT 0 "$(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + endShellVarContext: + ClearErrors + +FunctionEnd + +!macro confirm_addline section + + SectionGetFlags ${Sec${section}} $1 + IntOp $1 $1 & ${SF_SELECTED} + IntCmp $1 ${SF_SELECTED} 0 n${section} n${section} + SectionGetText ${Sec${section}} $1 + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " - $1" + n${section}: + +!macroend + +Function confirm_function + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + + ;For the setuptype page + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SETUPTYPE_TITLE):" + !insertmacro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT + Pop $R0 + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $R0" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_COMPNENTS)" + + !insertmacro confirm_addline UMUI + !insertmacro confirm_addline Skins + !insertmacro confirm_addline BGSkins + !insertmacro confirm_addline SkinnedControls + !insertmacro confirm_addline SkinnedControlsSources + !insertmacro confirm_addline InstallOptionsEx + !insertmacro confirm_addline InstallOptionsExSources + !insertmacro confirm_addline nsArray + !insertmacro confirm_addline nsArraySources + !insertmacro confirm_addline NSISLanguagesFiles + + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_ADDITIONALTASKS_TITLE):" + ;Only if one at least of additional icon check is checked + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED DESKTOP + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_ADDITIONAL_ICONS)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_ADDITIONALTASKS_CREATE_DESKTOP_ICON)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ;ShellVarContext + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT)" + ; only if for all user radio is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED ALL + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_FOR_ALL_USERS)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + ; only if for current user is selected + !insertmacro UMUI_ADDITIONALTASKS_IF_CKECKED CURRENT + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $(UMUI_TEXT_SHELL_VAR_CONTEXT_ONLY_FOR_CURRENT_USER)" + !insertmacro UMUI_ADDITIONALTASKS_ENDIF + +FunctionEnd + + +Function preuninstall_function + + IfFileExists $INSTDIR\makensis.exe nsis_installed + MessageBox MB_YESNO "It does not appear that NSIS is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES nsis_installed + Abort "Install aborted by user" + nsis_installed: + + SetDetailsPrint textonly + DetailPrint "Uninstalling Ultra-Modern UI..." + SetDetailsPrint none + + !insertmacro removeUMUIfiles + + Delete "$SMPROGRAMS\NSIS.lnk" + Delete "$DESKTOP\NSIS.lnk" + + ClearErrors + ReadRegStr $R0 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_StartMenuFolder" + IfErrors checkNext 0 + StrCpy $R1 $R0 "" -8 ; copy last height chars + StrCmpS $R1 "\Contrib" 0 removeShortcuts + StrCpy $R0 $R0 -8 ; remove \Contrib + Goto removeShortcuts + checkNext: + ReadRegStr $R0 ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "StartMenuFolder" + IfErrors noStartMenu removeShortcuts + removeShortcuts: + SetShellVarContext all + Delete "$SMPROGRAMS\$R0\Contrib\UltraModernUI Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\NSISArray Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\SkinnedControls Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\nsArray Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\InstallOptionsEx Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Uninstall UltraModernUI.lnk" + RMDir "$SMPROGRAMS\$R0\Contrib" + Delete "$SMPROGRAMS\$R0\Uninstall UltraModernUI.lnk" + Delete "$SMPROGRAMS\$R0\NSIS.lnk" + RMDir "$SMPROGRAMS\$R0" + + SetShellVarContext current + Delete "$SMPROGRAMS\$R0\Contrib\UltraModernUI Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\NSISArray Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\SkinnedControls Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\nsArray Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\InstallOptionsEx Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\InstallOptions Readme.lnk" + Delete "$SMPROGRAMS\$R0\Contrib\Uninstall UltraModernUI.lnk" + RMDir "$SMPROGRAMS\$R0\Contrib" + Delete "$SMPROGRAMS\$R0\Uninstall UltraModernUI.lnk" + Delete "$SMPROGRAMS\$R0\NSIS.lnk" + RMDir "$SMPROGRAMS\$R0" + noStartMenu: + + + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" + + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_SHELLVARCONTEXT_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_LANGUAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_SetupType" ;"${UMUI_SETUPTYPEPAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_InstType" ;"${UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_Components" ;"${UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_ADDITIONALTASKS_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERSION_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_VERBUILD_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME}" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "${UMUI_UNINSTALLPATH_REGISTRY_VALUENAME}" + ; No more used registry keys + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "UMUI_StartMenuFolder" + DeleteRegValue ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "StartMenuFolder" + + RMDir "$INSTDIR" + + SetDetailsPrint both + +FunctionEnd + + +;-------------------------------- +;Init Functions + +Function .onInit + + !insertmacro UMUI_MULTILANG_GET + + ; Check NSIS Version + ClearErrors + ReadRegDword $0 HKLM Software\NSIS "VersionMajor" + IfErrors errorNSIS 0 + ReadRegDword $1 HKLM Software\NSIS "VersionMinor" + IfErrors errorNSIS 0 + StrCmp $0 3 okNSIS 0 + + errorNSIS: + MessageBox MB_OK|MB_ICONSTOP "NSIS 3 is not installed on your computer.$\r$\nPlease, install NSIS (http://nsis.sourceforge.net) and then re-execute this install.$\n$\rThis install will stop." + Quit + + okNSIS: + + IntCmp $1 0 okNSISMin 0 okNSISMin + MessageBox MB_OK|MB_ICONSTOP "Your version of NSIS is not compatible with Ultra-Modern UI.$\r$\nPlease, update NSIS (http://nsis.sourceforge.net) and then re-execute this install.$\n$\rThis install will stop." + Quit + okNSISMin: + + ; ReadOnly Unselect if NSIS != VER_MAJOR && NSIS >= VER_MINOR + IntCmp $0 ${VER_MAJOR} 0 unselectROlangFiles unselectROlangFiles + IntCmp $1 ${VER_MINOR} unselectROlangFiles end1 unselectROlangFiles + unselectROlangFiles: + !insertmacro UnSelectSection ${SecNSISLanguagesFiles} + SectionGetFlags ${SecNSISLanguagesFiles} $2 + IntOp $2 $2 | ${SF_RO} + SectionSetFlags ${SecNSISLanguagesFiles} $2 + !insertmacro ClearSectionInInstType ${SecNSISLanguagesFiles} 4 ;4 complete + end1: + +FunctionEnd + +Function un.onInit + + !insertmacro UMUI_MULTILANG_GET + FunctionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/Update.nsi b/Examples/UltraModernUI/Update.nsi index 20cee10..6405182 100644 --- a/Examples/UltraModernUI/Update.nsi +++ b/Examples/UltraModernUI/Update.nsi @@ -1,185 +1,188 @@ -;NSIS Ultra Modern User Interface -;Update Example Script -;Written by SuperPat - -; How to test this example: -; 1. compile, launch and install this example a first time -; 2. Recompile this example after changing the version ine the UMUI_VERBUILD define below (you can also wait the tomorrow's day to recompile) -; the UMUI_VERBUILD define is "2.0_%Y-%m-%d" %Y-%m-%d will be replaced by 2016-02-09 if you compile the February, 9th 2016 -; 3. Relaunch this example, the update page will appear - - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "Update.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include Modern UI - - !include "UMUI.nsh" - ;!include "MUIEx.nsh" - - !include "Sections.nsh" - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "SoftBlue" - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - - !define UMUI_PARAMS_REGISTRY_ROOT HKCU - !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" - - !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable - - !define UMUI_VERSION "2.0 beta 1" - !define /date UMUI_VERBUILD "2.0_%Y-%m-%d" - - !define UMUI_VERSION_REGISTRY_VALUENAME "Version" - !define UMUI_VERBUILD_REGISTRY_VALUENAME "VerBuild" - - !define UMUI_UNINSTALLPATH_REGISTRY_VALUENAME "uninstallpath" - !define UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME "installpath" - !define UMUI_UNINSTALL_FULLPATH "$INSTDIR\Uninstall.exe" - !define UMUI_PREUNINSTALL_FUNCTION preuninstall_function - -; !define UMUI_INSTALL_FULLPATH "$EXEDIR\Update.exe" ;if you want to save the install file in a folder of your hard disk, change this value. - -;-------------------------------- -;Pages - - !define UMUI_UPDATEPAGE_REMOVE - !define UMUI_UPDATEPAGE_CONTINUE_SETUP - !insertmacro UMUI_PAGE_UPDATE - - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - -; !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME "insttype" - !define UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME "components" - !insertmacro MUI_PAGE_COMPONENTS - - !insertmacro MUI_PAGE_DIRECTORY - - !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function - !insertmacro UMUI_PAGE_CONFIRM - !insertmacro MUI_PAGE_INSTFILES - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -Section "Dummy Section 2" SecDummy2 - - SetOutPath "$INSTDIR" - - - -SectionEnd - - -;-------------------------------- -; Pages functions - -Function preuninstall_function - - ; execute this function only in Modify, repair and update function - !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} - - ;ADD YOUR DELETE INSTRUCTION HERE... - - Delete "$INSTDIR\Uninstall.exe" - - DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - - !insertmacro UMUI_ENDIF_INSTALLFLAG - -FunctionEnd - -!macro confirm_addline section - - SectionGetFlags ${Sec${section}} $1 - IntOp $1 $1 & ${SF_SELECTED} - IntCmp $1 ${SF_SELECTED} 0 n${section} n${section} - SectionGetText ${Sec${section}} $1 - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " - $1" - n${section}: - -!macroend - -Function confirm_function - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_COMPNENTS)" - - !insertmacro confirm_addline Dummy - !insertmacro confirm_addline Dummy2 - -FunctionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - LangString DESC_SecDummy2 ${LANG_ENGLISH} "Another test section." - - ;Declare all the components (Needed by UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME) - !insertmacro UMUI_DECLARECOMPONENTS_BEGIN - !insertmacro UMUI_COMPONENT SecDummy - !insertmacro UMUI_COMPONENT SecDummy2 - !insertmacro UMUI_DECLARECOMPONENTS_END - - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy2} $(DESC_SecDummy2) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR DELETE INSTRUCTION HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - +;NSIS Ultra Modern User Interface +;Update Example Script +;Written by SuperPat + +; How to test this example: +; 1. compile, launch and install this example a first time +; 2. Recompile this example after changing the version ine the UMUI_VERBUILD define below (you can also wait the tomorrow's day to recompile) +; the UMUI_VERBUILD define is "2.0_%Y-%m-%d" %Y-%m-%d will be replaced by 2016-02-09 if you compile the February, 9th 2016 +; 3. Relaunch this example, the update page will appear + + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "Update.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include Modern UI + + !include "UMUI.nsh" + ;!include "MUIEx.nsh" + + !include "Sections.nsh" + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "SoftBlue" + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + + !define UMUI_PARAMS_REGISTRY_ROOT HKCU + !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" + + !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable + + !define UMUI_VERSION "2.0 beta 1" + !define /date UMUI_VERBUILD "2.0_%Y-%m-%d" + + !define UMUI_VERSION_REGISTRY_VALUENAME "Version" + !define UMUI_VERBUILD_REGISTRY_VALUENAME "VerBuild" + + !define UMUI_UNINSTALLPATH_REGISTRY_VALUENAME "uninstallpath" + !define UMUI_INSTALLERFULLPATH_REGISTRY_VALUENAME "installpath" + !define UMUI_UNINSTALL_FULLPATH "$INSTDIR\Uninstall.exe" + !define UMUI_PREUNINSTALL_FUNCTION preuninstall_function + +; !define UMUI_INSTALL_FULLPATH "$EXEDIR\Update.exe" ;if you want to save the install file in a folder of your hard disk, change this value. + +;-------------------------------- +;Pages + + !define UMUI_UPDATEPAGE_REMOVE + !define UMUI_UPDATEPAGE_CONTINUE_SETUP + !insertmacro UMUI_PAGE_UPDATE + + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + +; !define UMUI_COMPONENTSPAGE_INSTTYPE_REGISTRY_VALUENAME "insttype" + !define UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME "components" + !insertmacro MUI_PAGE_COMPONENTS + + !insertmacro MUI_PAGE_DIRECTORY + + !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function + !insertmacro UMUI_PAGE_CONFIRM + !insertmacro MUI_PAGE_INSTFILES + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +Section "Dummy Section 2" SecDummy2 + + SetOutPath "$INSTDIR" + + + +SectionEnd + + +;-------------------------------- +; Pages functions + +Function preuninstall_function + + ; execute this function only in Modify, repair and update function + !insertmacro UMUI_IF_INSTALLFLAG_IS ${UMUI_MODIFY}|${UMUI_REPAIR}|${UMUI_UPDATE} + + ;ADD YOUR DELETE INSTRUCTION HERE... + + Delete "$INSTDIR\Uninstall.exe" + + DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + + !insertmacro UMUI_ENDIF_INSTALLFLAG + +FunctionEnd + +!macro confirm_addline section + + SectionGetFlags ${Sec${section}} $1 + IntOp $1 $1 & ${SF_SELECTED} + IntCmp $1 ${SF_SELECTED} 0 n${section} n${section} + SectionGetText ${Sec${section}} $1 + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " - $1" + n${section}: + +!macroend + +Function confirm_function + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_COMPNENTS)" + + !insertmacro confirm_addline Dummy + !insertmacro confirm_addline Dummy2 + +FunctionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + LangString DESC_SecDummy2 ${LANG_ENGLISH} "Another test section." + + ;Declare all the components (Needed by UMUI_COMPONENTSPAGE_REGISTRY_VALUENAME) + !insertmacro UMUI_DECLARECOMPONENTS_BEGIN + !insertmacro UMUI_COMPONENT SecDummy + !insertmacro UMUI_COMPONENT SecDummy2 + !insertmacro UMUI_DECLARECOMPONENTS_END + + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy2} $(DESC_SecDummy2) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR DELETE INSTRUCTION HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/WelcomeFinishAbort.nsi b/Examples/UltraModernUI/WelcomeFinishAbort.nsi index 34fe407..5ecbd73 100644 --- a/Examples/UltraModernUI/WelcomeFinishAbort.nsi +++ b/Examples/UltraModernUI/WelcomeFinishAbort.nsi @@ -1,127 +1,130 @@ -;NSIS Ultra Modern User Interface -;Welcome/Finish/Abort Page Example Script -;Written by SuperPat - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "WelcomeFinishAbort.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\UltraModernUI Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Include UltraModernUI - - !include "UMUI.nsh" -; !include "MUIEx.nsh" - -;-------------------------------- -;Interface Settings - -; !define UMUI_SKIN "SoftGreen" - !define UMUI_SKIN "blue2" - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - -; !define UMUI_USE_INSTALLOPTIONSEX - - !define UMUI_USE_ALTERNATE_PAGE - !define UMUI_USE_UNALTERNATE_PAGE - -; !define MUI_FINISHPAGE_TITLE_3LINES -; !define MUI_FINISHPAGE_TEXT_LARGE - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - - !define MUI_FINISHPAGE_RUN "blabla.exe" - !define MUI_FINISHPAGE_RUN_TEXT "run blabla" - !define MUI_FINISHPAGE_SHOWREADME "blabla.htm" - !define MUI_FINISHPAGE_SHOWREADME_TEXT "blabla readme" - !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_PAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_PAGE_ABORT - - - !insertmacro MUI_UNPAGE_WELCOME - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - - !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro MUI_UNPAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" - !insertmacro UMUI_UNPAGE_ABORT - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - - ;Store installation folder - WriteRegStr HKCU "Software\UltraModernUI Test" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\Uninstall.exe" - - RMDir "$INSTDIR" - - DeleteRegKey /ifempty HKCU "Software\UltraModernUI Test" - +;NSIS Ultra Modern User Interface +;Welcome/Finish/Abort Page Example Script +;Written by SuperPat + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "WelcomeFinishAbort.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\UltraModernUI Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Include UltraModernUI + + !include "UMUI.nsh" +; !include "MUIEx.nsh" + +;-------------------------------- +;Interface Settings + +; !define UMUI_SKIN "SoftGreen" + !define UMUI_SKIN "blue2" + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + +; !define UMUI_USE_INSTALLOPTIONSEX + + !define UMUI_USE_ALTERNATE_PAGE + !define UMUI_USE_UNALTERNATE_PAGE + +; !define MUI_FINISHPAGE_TITLE_3LINES +; !define MUI_FINISHPAGE_TEXT_LARGE + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_WELCOME + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + + !define MUI_FINISHPAGE_RUN "blabla.exe" + !define MUI_FINISHPAGE_RUN_TEXT "run blabla" + !define MUI_FINISHPAGE_SHOWREADME "blabla.htm" + !define MUI_FINISHPAGE_SHOWREADME_TEXT "blabla readme" + !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_PAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_PAGE_ABORT + + + !insertmacro MUI_UNPAGE_WELCOME + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + + !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro MUI_UNPAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/" + !insertmacro UMUI_UNPAGE_ABORT + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + + ;Store installation folder + WriteRegStr HKCU "Software\UltraModernUI Test" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + DeleteRegKey /ifempty HKCU "Software\UltraModernUI Test" + SectionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/bigtest.nsi b/Examples/UltraModernUI/bigtest.nsi index ccb6e94..1721d69 100644 --- a/Examples/UltraModernUI/bigtest.nsi +++ b/Examples/UltraModernUI/bigtest.nsi @@ -1,206 +1,209 @@ -;NSIS Ultra Modern User Interface -;Big example Script -;Originally Written by Joost Verburg - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "BigTest.exe" - SetCompressor /FINAL lzma - - BrandingText "UltraModernUI for NSIS" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Inclusion - - !include "UMUI.nsh" - -;-------------------------------- -;Interface Settings - - !define UMUI_SKIN "blue" - !define UMUI_BGSKIN "blue" - - !define UMUI_USE_INSTALLOPTIONSEX - -; !define MUI_COMPONENTSPAGE_NODESC - !define MUI_COMPONENTSPAGE_SMALLDESC - !define UMUI_NOLEFTIMAGE - - !define MUI_ABORTWARNING - !define MUI_UNABORTWARNING - - !define UMUI_USE_ALTERNATE_PAGE - !define UMUI_USE_UNALTERNATE_PAGE - - !define UMUI_PARAMS_REGISTRY_ROOT HKCU - !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" - - !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable - - ;Remember the installer language - !define UMUI_LANGUAGE_REGISTRY_VALUENAME "Installer Language" - -;-------------------------------- -;Pages - - Var STARTMENU_FOLDER - - !insertmacro MUI_PAGE_WELCOME - - Page custom CustomPageA - - !define MUI_LICENSEPAGE_CHECKBOX - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - - !define UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT - !insertmacro UMUI_PAGE_INFORMATION "${NSISDIR}\Docs\UltraModernUI\ReadMe.rtf" -; !insertmacro UMUI_PAGE_INFORMATION "${NSISDIR}\Docs\UltraModernUI\License.txt" - - !insertmacro UMUI_PAGE_SETUPTYPE - - !insertmacro MUI_PAGE_COMPONENTS - - !insertmacro MUI_PAGE_DIRECTORY - - !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" - !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\UltraModernUI Test" - !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" - !insertmacro UMUI_PAGE_ALTERNATIVESTARTMENU "Application" $STARTMENU_FOLDER - - !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function - !insertmacro UMUI_PAGE_CONFIRM - - !define UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON cancel_function - !insertmacro MUI_PAGE_INSTFILES - - !define MUI_FINISHPAGE_RUN "C:\Notepad.exe" - !define MUI_FINISHPAGE_SHOWREADME "C:\Notepad.exe" - !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net" - !insertmacro MUI_PAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net" - !insertmacro UMUI_PAGE_ABORT - - - !insertmacro MUI_UNPAGE_WELCOME - - !insertmacro MUI_UNPAGE_COMPONENTS - - !insertmacro MUI_UNPAGE_CONFIRM - - !insertmacro MUI_UNPAGE_INSTFILES - - !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" - !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net" - !insertmacro MUI_UNPAGE_FINISH - - !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" - !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net" - !insertmacro UMUI_UNPAGE_ABORT - - -Function cancel_function - MessageBox MB_OK "Delete all files" -FunctionEnd - -Function confirm_function - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - - ;Only if StartMenu Folder is selected - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_START_MENU_FOLDER)" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $STARTMENU_FOLDER" - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" - !insertmacro MUI_STARTMENU_WRITE_END - - ;For the setuptype page - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SETUPTYPE_TITLE):" - !insertmacro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT - Pop $R0 - !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $R0" -FunctionEnd - - - -Function CustomPageA - !insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioA.ini" - !insertmacro MUI_HEADER_TEXT "def" "abc" - !insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioA.ini" -FunctionEnd - - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "French" - !insertmacro MUI_LANGUAGE "English" - !insertmacro MUI_RESERVEFILE_LANGDLL - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - sleep 10000 - - ; Write the uninstall keys for Windows - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest" "DisplayName" "$(^NameDA)" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest" "DisplayIcon" "$INSTDIR\Uninstall.exe,0" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest" "UninstallString" "$INSTDIR\Uninstall.exe" - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - -SectionEnd - -Section Uninstall - - DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" - - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest" - - Delete "$INSTDIR\Uninstall.exe" - RMDir "$INSTDIR" - Sleep 1000 -SectionEnd - - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." - LangString DESC_SecDummy ${LANG_FRENCH} "Une section de test." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -Function un.onInit - - !insertmacro MUI_UNGETLANGUAGE - -FunctionEnd - -Function .onInit - - !insertmacro MUI_LANGDLL_DISPLAY - +;NSIS Ultra Modern User Interface +;Big example Script +;Originally Written by Joost Verburg + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "BigTest.exe" + SetCompressor /FINAL lzma + + BrandingText "UltraModernUI for NSIS" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Inclusion + + !include "UMUI.nsh" + +;-------------------------------- +;Interface Settings + + !define UMUI_SKIN "blue" + !define UMUI_BGSKIN "blue" + + !define UMUI_USE_INSTALLOPTIONSEX + +; !define MUI_COMPONENTSPAGE_NODESC + !define MUI_COMPONENTSPAGE_SMALLDESC + !define UMUI_NOLEFTIMAGE + + !define MUI_ABORTWARNING + !define MUI_UNABORTWARNING + + !define UMUI_USE_ALTERNATE_PAGE + !define UMUI_USE_UNALTERNATE_PAGE + + !define UMUI_PARAMS_REGISTRY_ROOT HKCU + !define UMUI_PARAMS_REGISTRY_KEY "Software\UltraModernUI Test" + + !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "InstallDir" ;Replace the InstallDirRegKey instruction and automatically save the $INSTDIR variable + + ;Remember the installer language + !define UMUI_LANGUAGE_REGISTRY_VALUENAME "Installer Language" + +;-------------------------------- +;Pages + + Var STARTMENU_FOLDER + + !insertmacro MUI_PAGE_WELCOME + + Page custom CustomPageA + + !define MUI_LICENSEPAGE_CHECKBOX + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + + !define UMUI_INFORMATIONPAGE_USE_RICHTEXTFORMAT + !insertmacro UMUI_PAGE_INFORMATION "${NSISDIR}\Docs\UltraModernUI\ReadMe.rtf" +; !insertmacro UMUI_PAGE_INFORMATION "${NSISDIR}\Docs\UltraModernUI\License.txt" + + !insertmacro UMUI_PAGE_SETUPTYPE + + !insertmacro MUI_PAGE_COMPONENTS + + !insertmacro MUI_PAGE_DIRECTORY + + !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" + !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\UltraModernUI Test" + !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" + !insertmacro UMUI_PAGE_ALTERNATIVESTARTMENU "Application" $STARTMENU_FOLDER + + !define UMUI_CONFIRMPAGE_TEXTBOX confirm_function + !insertmacro UMUI_PAGE_CONFIRM + + !define UMUI_INSTFILEPAGE_ENABLE_CANCEL_BUTTON cancel_function + !insertmacro MUI_PAGE_INSTFILES + + !define MUI_FINISHPAGE_RUN "C:\Notepad.exe" + !define MUI_FINISHPAGE_SHOWREADME "C:\Notepad.exe" + !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net" + !insertmacro MUI_PAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net" + !insertmacro UMUI_PAGE_ABORT + + + !insertmacro MUI_UNPAGE_WELCOME + + !insertmacro MUI_UNPAGE_COMPONENTS + + !insertmacro MUI_UNPAGE_CONFIRM + + !insertmacro MUI_UNPAGE_INSTFILES + + !define MUI_FINISHPAGE_LINK "UltraModernUI Home Page" + !define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net" + !insertmacro MUI_UNPAGE_FINISH + + !define UMUI_ABORTPAGE_LINK "UltraModernUI Home Page" + !define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net" + !insertmacro UMUI_UNPAGE_ABORT + + +Function cancel_function + MessageBox MB_OK "Delete all files" +FunctionEnd + +Function confirm_function + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_DESTINATION_LOCATION)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $INSTDIR" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + + ;Only if StartMenu Folder is selected + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_INSTCONFIRM_TEXTBOX_START_MENU_FOLDER)" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $STARTMENU_FOLDER" + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "" + !insertmacro MUI_STARTMENU_WRITE_END + + ;For the setuptype page + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "$(UMUI_TEXT_SETUPTYPE_TITLE):" + !insertmacro UMUI_GET_CHOOSEN_SETUP_TYPE_TEXT + Pop $R0 + !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE " $R0" +FunctionEnd + + + +Function CustomPageA + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioA.ini" + !insertmacro MUI_HEADER_TEXT "def" "abc" + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioA.ini" +FunctionEnd + + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "French" + !insertmacro MUI_LANGUAGE "English" + !insertmacro MUI_RESERVEFILE_LANGDLL + + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + sleep 10000 + + ; Write the uninstall keys for Windows + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest" "DisplayName" "$(^NameDA)" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest" "DisplayIcon" "$INSTDIR\Uninstall.exe,0" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest" "UninstallString" "$INSTDIR\Uninstall.exe" + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +Section Uninstall + + DeleteRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" + + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\BigNSISTest" + + Delete "$INSTDIR\Uninstall.exe" + RMDir "$INSTDIR" + Sleep 1000 +SectionEnd + + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + LangString DESC_SecDummy ${LANG_FRENCH} "Une section de test." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +Function un.onInit + + !insertmacro MUI_UNGETLANGUAGE + +FunctionEnd + +Function .onInit + + !insertmacro MUI_LANGDLL_DISPLAY + FunctionEnd \ No newline at end of file diff --git a/Examples/UltraModernUI/nsDialog.nsi b/Examples/UltraModernUI/nsDialog.nsi index 702134e..ec31cc2 100644 --- a/Examples/UltraModernUI/nsDialog.nsi +++ b/Examples/UltraModernUI/nsDialog.nsi @@ -1,156 +1,159 @@ -;NSIS Ultra Modern User Interface -;InstallOptionsEx and InstallOptions compatibility mode Example Script -;Written by SyperPat - -;-------------------------------- -;General - - ;Name and file - Name "UltraModernUI Test" - OutFile "nsDialogs.exe" - - ;Default installation folder - InstallDir "$DESKTOP\UltraModernUI Test" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\UltraModernUI Test" "" - - ;Request application privileges for Windows Vista - RequestExecutionLevel user - -;-------------------------------- -;Interface Settings - - !define MUI_ABORTWARNING - - ;Active InstallOptionsEx - !define UMUI_USE_INSTALLOPTIONSEX - - !define UMUI_SKIN "blue2" - - !define UMUI_PAGEBGIMAGE - !define UMUI_UNPAGEBGIMAGE - - -;--------------------- -;Include UltraModernUI - - !include "UMUI.nsh" - !include nsDialogs.nsh - !include LogicLib.nsh - - !define MUI_LICENSEPAGE_TEXT_TOP "All the action takes place on the next page..." - !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" - Page custom nsDialogsPage - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - !insertmacro UMUI_PAGE_ABORT - - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - -SectionEnd - -;-------------------------------- -;Variables - -Var BUTTON -Var EDIT -Var CHECKBOX - -;-------------------------------- -;Installer Functions - -LangString TEXT_NSD_TITLE ${LANG_ENGLISH} "nsDialog page" -LangString TEXT_NSD_SUBTITLE ${LANG_ENGLISH} "This is a page created using the nsDialog plug-in." - -Function nsDialogsPage - - ; Does not show page if setup cancelled, required only if UMUI_PAGE_ABORT inserted - !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} - - !insertmacro MUI_HEADER_TEXT "$(TEXT_NSD_TITLE)" "$(TEXT_NSD_SUBTITLE)" - - nsDialogs::Create 1018 - Pop $0 - - !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $0 ; set page background color - - GetFunctionAddress $0 OnBack - nsDialogs::OnBack $0 - - ${NSD_CreateButton} 0 0 100% 12u Test - Pop $BUTTON - GetFunctionAddress $0 OnClick - nsDialogs::OnClick $BUTTON $0 - - ${NSD_CreateText} 0 35 100% 12u hello - Pop $EDIT - GetFunctionAddress $0 OnChange - nsDialogs::OnChange $EDIT $0 - - !insertmacro UMUI_IOPAGEINPUTCTL_INIT $EDIT ; set input text and background color - - ${NSD_CreateCheckbox} 0 -50 100% 8u Test - Pop $CHECKBOX - GetFunctionAddress $0 OnCheckbox - nsDialogs::OnClick $CHECKBOX $0 - - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $CHECKBOX ; set checkbox and background color - - ${NSD_CreateLabel} 0 40u 75% 40u "* Type `hello there` above.$\n* Click the button.$\n* Check the checkbox.$\n* Hit the Back button." - Pop $0 - - !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $0 ; set label and background color - - - nsDialogs::Show - -FunctionEnd - -Function OnClick - - Pop $0 # HWND - - MessageBox MB_OK clicky - -FunctionEnd - -Function OnChange - - Pop $0 # HWND - - System::Call user32::GetWindowText(p$EDIT,t.r0,i${NSIS_MAX_STRLEN}) - - ${If} $0 == "hello there" - MessageBox MB_OK "right back at ya" - ${EndIf} - -FunctionEnd - -Function OnBack - - MessageBox MB_YESNO "are you sure?" IDYES +2 - Abort - -FunctionEnd - -Function OnCheckbox - - Pop $0 # HWND - - MessageBox MB_OK "checkbox clicked" - -FunctionEnd +;NSIS Ultra Modern User Interface +;InstallOptionsEx and InstallOptions compatibility mode Example Script +;Written by SyperPat + +;-------------------------------- +;General + + ;Name and file + Name "UltraModernUI Test" + OutFile "nsDialogs.exe" + + ;Default installation folder + InstallDir "$DESKTOP\UltraModernUI Test" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\UltraModernUI Test" "" + + ;Generate unicode installer + Unicode True + + ;Request application privileges for Windows Vista + RequestExecutionLevel user + +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + + ;Active InstallOptionsEx + !define UMUI_USE_INSTALLOPTIONSEX + + !define UMUI_SKIN "blue2" + + !define UMUI_PAGEBGIMAGE + !define UMUI_UNPAGEBGIMAGE + + +;--------------------- +;Include UltraModernUI + + !include "UMUI.nsh" + !include nsDialogs.nsh + !include LogicLib.nsh + + !define MUI_LICENSEPAGE_TEXT_TOP "All the action takes place on the next page..." + !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\UltraModernUI\License.txt" + Page custom nsDialogsPage + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !insertmacro UMUI_PAGE_ABORT + + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Dummy Section" SecDummy + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + +SectionEnd + +;-------------------------------- +;Variables + +Var BUTTON +Var EDIT +Var CHECKBOX + +;-------------------------------- +;Installer Functions + +LangString TEXT_NSD_TITLE ${LANG_ENGLISH} "nsDialog page" +LangString TEXT_NSD_SUBTITLE ${LANG_ENGLISH} "This is a page created using the nsDialog plug-in." + +Function nsDialogsPage + + ; Does not show page if setup cancelled, required only if UMUI_PAGE_ABORT inserted + !insertmacro UMUI_ABORT_IF_INSTALLFLAG_IS ${UMUI_CANCELLED} + + !insertmacro MUI_HEADER_TEXT "$(TEXT_NSD_TITLE)" "$(TEXT_NSD_SUBTITLE)" + + nsDialogs::Create 1018 + Pop $0 + + !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $0 ; set page background color + + GetFunctionAddress $0 OnBack + nsDialogs::OnBack $0 + + ${NSD_CreateButton} 0 0 100% 12u Test + Pop $BUTTON + GetFunctionAddress $0 OnClick + nsDialogs::OnClick $BUTTON $0 + + ${NSD_CreateText} 0 35 100% 12u hello + Pop $EDIT + GetFunctionAddress $0 OnChange + nsDialogs::OnChange $EDIT $0 + + !insertmacro UMUI_IOPAGEINPUTCTL_INIT $EDIT ; set input text and background color + + ${NSD_CreateCheckbox} 0 -50 100% 8u Test + Pop $CHECKBOX + GetFunctionAddress $0 OnCheckbox + nsDialogs::OnClick $CHECKBOX $0 + + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $CHECKBOX ; set checkbox and background color + + ${NSD_CreateLabel} 0 40u 75% 40u "* Type `hello there` above.$\n* Click the button.$\n* Check the checkbox.$\n* Hit the Back button." + Pop $0 + + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $0 ; set label and background color + + + nsDialogs::Show + +FunctionEnd + +Function OnClick + + Pop $0 # HWND + + MessageBox MB_OK clicky + +FunctionEnd + +Function OnChange + + Pop $0 # HWND + + System::Call user32::GetWindowText(p$EDIT,t.r0,i${NSIS_MAX_STRLEN}) + + ${If} $0 == "hello there" + MessageBox MB_OK "right back at ya" + ${EndIf} + +FunctionEnd + +Function OnBack + + MessageBox MB_YESNO "are you sure?" IDYES +2 + Abort + +FunctionEnd + +Function OnCheckbox + + Pop $0 # HWND + + MessageBox MB_OK "checkbox clicked" + +FunctionEnd diff --git a/NSISUMUI.exe b/NSISUMUI.exe index 1e4553e..c2674c0 100644 Binary files a/NSISUMUI.exe and b/NSISUMUI.exe differ