diff --git a/Contrib/Modern UI/Language files/English.nsh b/Contrib/Modern UI/Language files/English.nsh index d1edb48b..3540f957 100644 --- a/Contrib/Modern UI/Language files/English.nsh +++ b/Contrib/Modern UI/Language files/English.nsh @@ -1,5 +1,5 @@ ;NSIS Modern User Interface - Language File -;Compatible with Modern UI 1.5 +;Compatible with Modern UI 1.6 ;Language: English (1033) ;By Joost Verburg @@ -15,6 +15,9 @@ !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_CONTINUE_NEXT "Click Next to continue." !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_CONTINUE_INSTALL "Click Install to start the installation." + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_WELCOME_TITLE "Welcome to the ${MUI_PRODUCT} Setup Wizard" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_WELCOME_INFO "This will install ${MUI_PRODUCT} on your computer.\r\n\r\nIt is recommanded that you close all other applications before starting Setup. This will allow Setup to update certain system files without rebooting your system.\r\n\r\n" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_LICENSE_TITLE "License Agreement" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_LICENSE_SUBTITLE "Please review the license terms before installing ${MUI_PRODUCT}." !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_LICENSE_TOP "Press Page Down to see the rest of the agreement." @@ -22,7 +25,7 @@ !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_COMPONENTS_TITLE "Choose Components" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_COMPONENTS_SUBTITLE "Choose which features of ${MUI_PRODUCT} you want to install." - !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_COMPONENTS "Check the components you want to install and uncheck the components you don't want to install." + !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_COMPONENTS_TOP "Check the components you want to install and uncheck the components you don't want to install." !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE "Description" !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "Hover your mouse over a component to see it's description." @@ -34,13 +37,21 @@ !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_INSTALLING_TITLE "Installing" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_INSTALLING_SUBTITLE "Please wait while ${MUI_PRODUCT} is being installed." - !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISHED_TITLE "Finished" - !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISHED_SUBTITLE "Setup was completed successfully." + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_TITLE "Finished" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_SUBTITLE "Setup was completed successfully." + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_WINDOWTITLE ": Finished" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_BUTTON "&Finish" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_INFO "${MUI_PRODUCT} has been installed on your system. Click Finish to close this wizard." + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_INFO_REBOOT "Your system must be restarted in order to complete the installation of ${MUI_PRODUCT}. Do you want to reboot now?" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_REBOOTNOW "Reboot now" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_REBOOTLATER "I want to manually reboot later" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_FINISH_RUN "Run ${MUI_PRODUCT}" - !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_STARTMENU_WINDOWTITLE "Start Menu Folder" + !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_STARTMENU_WINDOWTITLE ": Start Menu Folder" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_STARTMENU_TITLE "Choose Start Menu Folder" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_STARTMENU_SUBTITLE "Choose a Start Menu folder for the program's shortcuts." - !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_STARTMENU "Select the Start Menu folder in which you would like to create the program's shotcuts. You can also enter a name to create a new folder." + !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_STARTMENU_TOP "Select the Start Menu folder in which you would like to create the program's shotcuts. You can also enter a name to create a new folder." + !insertmacro MUI_LANGUAGEFILE_STRING MUI_INNERTEXT_STARTMENU_CHECKBOX "Do not create shortcuts" !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_ABORTWARNING "Are you sure you want to quit ${MUI_PRODUCT} Setup?" diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh index bcc1d334..7a48191d 100644 --- a/Contrib/Modern UI/System.nsh +++ b/Contrib/Modern UI/System.nsh @@ -1,9 +1,8 @@ -;NSIS Modern User Interface version 1.5 +;NSIS Modern User Interface version 1.6 ;Macro System ;Written by Joost Verburg -;See Basic.nsi, Multilanguage.nsi, InstallOptions.nsi and StartMenu.nsi -;in the 'Examples\Modern UI' directory for examples of usage. +;See the scripts in the 'Examples\Modern UI' directory for examples of usage. ;-------------------------------- !verbose 3 @@ -16,6 +15,7 @@ !define MUI_TEMP1 $R0 !define MUI_TEMP2 $R1 +!define MUI_TEMP3 $R2 !macro MUI_INTERFACE @@ -40,7 +40,7 @@ !endif !ifndef MUI_FONT - !define MUI_FONT "Tahoma" + !define MUI_FONT "Tahoma" ;"MS Shell Dlg" !endif !ifndef MUI_INSTALLCOLORS @@ -54,6 +54,18 @@ !ifndef MUI_BRANDINGTEXT !define MUI_BRANDINGTEXT "" ;Default value !endif + + !ifndef MUI_WIZARDINI + !define MUI_WIZARDINI "${NSISDIR}\Contrib\Modern UI\ioWizard.ini" + !endif + + !ifndef MUI_WIZARDBITMAP + !define MUI_WIZARDBITMAP "${NSISDIR}\Contrib\Icons\modern-wizard.bmp" + !endif + + !ifdef MUI_FINISHPAGE + AutoCloseWindow true + !endif XPStyle On @@ -160,7 +172,7 @@ !verbose 3 ;Finish text on the header (white rectangle) - !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_FINISHED_TITLE) $(MUI_TEXT_FINISHED_SUBTITLE) + !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_FINISH_TITLE) $(MUI_TEXT_FINISH_SUBTITLE) !verbose 4 @@ -219,17 +231,66 @@ !macroend +!macro MUI_WELCOMEFINISHPAGE_INIT + + ;Extract Install Options INI Files + !insertmacro MUI_INSTALLOPTIONS_EXTRACT_CUSTOMNAME "${MUI_WIZARDINI}" "ioWizard.ini" + !insertmacro MUI_INSTALLOPTIONS_EXTRACT_CUSTOMNAME "${MUI_WIZARDBITMAP}" "modern-wizard.bmp" + + ;Write bitmap location + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 1" "Text" "$PLUGINSDIR\modern-wizard.bmp" + + ;Write Welcome text + !ifdef MUI_WELCOMEPAGE + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 2" "Text" "$(MUI_TEXT_WELCOME_TITLE)" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 3" "Text" "$(MUI_TEXT_WELCOME_INFO)" + !endif + +!macroend + +!macro MUI_LANGUAGE LANGUAGE + + !verbose 3 + + !include "${NSISDIR}\Contrib\Modern UI\Language files\${LANGUAGE}.nsh" + + !verbose 4 + +!macroend + +!macro MUI_STARTMENU_WRITE_BEGIN + + Push ${MUI_TEMP1} + + StrCpy ${MUI_TEMP1} ${MUI_STARTMENU_VARIABLE} 1 + StrCmp ${MUI_TEMP1} "^" no_startmenu_shortcuts + + Pop ${MUI_TEMP1} + +!macroend + +!macro MUI_STARTMENU_WRITE_END + + no_startmenu_shortcuts: + +!macroend + +;-------------------------------- +;PAGE COMMANDS + !macro MUI_PAGECOMMANDS !verbose 3 !ifndef MUI_CUSTOMPAGECOMMANDS + !insertmacro MUI_PAGECOMMAND_WELCOME !insertmacro MUI_PAGECOMMAND_LICENSE !insertmacro MUI_PAGECOMMAND_COMPONENTS !insertmacro MUI_PAGECOMMAND_DIRECTORY !insertmacro MUI_PAGECOMMAND_STARTMENU !insertmacro MUI_PAGECOMMAND_INSTFILES + !insertmacro MUI_PAGECOMMAND_FINISH !endif @@ -237,6 +298,18 @@ !macroend +!macro MUI_PAGECOMMAND_WELCOME + + !verbose 3 + + !ifdef MUI_WELCOMEPAGE + Page custom SetWelcome "" "MUI_INSTALLBUTTON_WELCOME" + !endif + + !verbose 4 + +!macroend + !macro MUI_PAGECOMMAND_LICENSE !verbose 3 @@ -278,7 +351,7 @@ !verbose 3 !ifdef MUI_STARTMENUPAGE - Page custom SetStartmenu "" "MUI_INSTALLBUTTON_STARTMENU" + Page custom SetStartmenu "$(MUI_TEXT_STARTMENU_WINDOWTITLE)" "MUI_INSTALLBUTTON_STARTMENU" !endif !verbose 4 @@ -295,6 +368,18 @@ !macroend +!macro MUI_PAGECOMMAND_FINISH + + !verbose 3 + + !ifdef MUI_FINISHPAGE + Page custom SetFinish "$(MUI_TEXT_FINISH_WINDOWTITLE)" + !endif + + !verbose 4 + +!macroend + !macro MUI_UNPAGECOMMANDS !verbose 3 @@ -330,16 +415,6 @@ !macroend -!macro MUI_LANGUAGE LANGUAGE - - !verbose 3 - - !include "${NSISDIR}\Contrib\Modern UI\Language files\${LANGUAGE}.nsh" - - !verbose 4 - -!macroend - ;-------------------------------- ;INSTALL OPTIONS @@ -359,6 +434,22 @@ !macroend +!macro MUI_INSTALLOPTIONS_EXTRACT_CUSTOMNAME FILE FILENAME + + !verbose 3 + + ;Init plugin system + !ifndef MUI_INSTALLOPTIONS_INITPLUGINS + !define MUI_INSTALLOPTIONS_INITPLUGINS + InitPluginsDir + !endif + + File "/oname=$PLUGINSDIR\${FILENAME}" "${FILE}" + + !verbose 4 + +!macroend + !macro MUI_INSTALLOPTIONS_UNEXTRACT FILE !verbose 3 @@ -462,10 +553,14 @@ !macro MUI_FUNCTIONS_GUIINIT !verbose 3 + + !ifndef MUI_NOGUIINIT - Function .onGUIInit - !insertmacro MUI_GUIINIT - FunctionEnd + Function .onGUIInit + !insertmacro MUI_GUIINIT + FunctionEnd + + !endif !verbose 4 @@ -475,6 +570,10 @@ !verbose 3 + !ifdef MUI_WELCOMEPAGE + !insertmacro MUI_FUNCTIONS_WELCOMEPAGE SetWelcome + !endif + !ifdef MUI_LICENSEPAGE !insertmacro MUI_FUNCTIONS_LICENSEPAGE SetLicense SetLicenseDialog !endif @@ -492,11 +591,69 @@ !endif !insertmacro MUI_FUNCTIONS_INSTFILESPAGE SetInstFiles + + !ifdef MUI_FINISHPAGE + !insertmacro MUI_FUNCTIONS_FINISHPAGE SetFinish + !endif !verbose 4 !macroend +!macro MUI_FUNCTIONS_WELCOMEPAGE SETWELCOME + + !verbose 3 + + Function "${SETWELCOME}" + + Push ${MUI_TEMP1} + Push ${MUI_TEMP2} + Push ${MUI_TEMP3} + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1028 + ShowWindow ${MUI_TEMP1} ${SW_HIDE} + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1035 + ShowWindow ${MUI_TEMP1} ${SW_HIDE} + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1045 + ShowWindow ${MUI_TEMP1} ${SW_NORMAL} + + !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioWizard.ini" + + Pop ${MUI_TEMP1} + + SetStaticBkColor ${MUI_TEMP1} 0x00FFFFFF + + GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1201 + SetStaticBkColor ${MUI_TEMP2} 0x00FFFFFF + CreateFont ${MUI_TEMP3} "Tahoma" 12 1000 + SendMessage ${MUI_TEMP2} ${WM_SETFONT} ${MUI_TEMP3} 0 + + GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1202 + SetStaticBkColor ${MUI_TEMP2} 0x00FFFFFF + + !insertmacro MUI_INSTALLOPTIONS_SHOW + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1028 + ShowWindow ${MUI_TEMP1} ${SW_NORMAL} + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1035 + ShowWindow ${MUI_TEMP1} ${SW_NORMAL} + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1045 + ShowWindow ${MUI_TEMP1} ${SW_HIDE} + + Pop ${MUI_TEMP3} + Pop ${MUI_TEMP2} + Pop ${MUI_TEMP1} + + FunctionEnd + + !verbose 4 + +!macroend + !macro MUI_FUNCTIONS_LICENSEPAGE SETLICENSE SETLICENSEDIALOG !verbose 3 @@ -562,7 +719,7 @@ !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE) - StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU)" /lastused "${MUI_STARTMENU_VARIABLE}" "${MUI_STARTMENU_DEFAULTFOLDER}" + StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENU_VARIABLE}" /checknoshortcuts "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" "${MUI_STARTMENU_DEFAULTFOLDER}" Pop "${MUI_STARTMENU_VARIABLE}" FunctionEnd @@ -583,6 +740,149 @@ !macroend +!macro MUI_FUNCTIONS_FINISHPAGE SETFINISH + + !verbose 3 + + Function "${SETFINISH}" + + Push ${MUI_TEMP1} + Push ${MUI_TEMP2} + Push ${MUI_TEMP3} + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1028 + ShowWindow ${MUI_TEMP1} ${SW_HIDE} + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1035 + ShowWindow ${MUI_TEMP1} ${SW_HIDE} + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1045 + ShowWindow ${MUI_TEMP1} ${SW_NORMAL} + + ;Write Finish text + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 2" "Text" "$(MUI_TEXT_FINISH_TITLE)" + + IfRebootFlag "" noreboot_init + + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 3" "Text" "$(MUI_TEXT_FINISH_INFO_REBOOT)" + + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Settings" "Numfields" "5" + + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Type" "RadioButton" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Text" "$(MUI_TEXT_FINISH_REBOOTNOW)" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Left" "190" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Right" "475" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Top" "180" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Bottom" "195" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "State" "1" + + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 5" "Type" "RadioButton" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 5" "Text" "$(MUI_TEXT_FINISH_REBOOTLATER)" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 5" "Left" "190" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 5" "Right" "475" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 5" "Top" "210" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 5" "Bottom" "225" + + Goto init + + noreboot_init: + + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 3" "Text" "$(MUI_TEXT_FINISH_INFO)" + + !ifdef MUI_FINISHPAGE_RUN + + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Text" "$(MUI_TEXT_FINISH_INFO)" + + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Settings" "Numfields" "4" + + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Type" "CheckBox" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Text" "$(MUI_TEXT_FINISH_RUN)" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Left" "190" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Right" "475" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Top" "180" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "Bottom" "195" + !insertmacro MUI_INSTALLOPTIONS_WRITE "ioWizard.ini" "Field 4" "State" "1" + + !endif + + init: + + !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioWizard.ini" + + Pop ${MUI_TEMP1} + + SetStaticBkColor ${MUI_TEMP1} 0x00FFFFFF + + GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1201 + SetStaticBkColor ${MUI_TEMP2} 0x00FFFFFF + CreateFont ${MUI_TEMP3} "Tahoma" 12 1000 + SendMessage ${MUI_TEMP2} ${WM_SETFONT} ${MUI_TEMP3} 0 + + GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1202 + SetStaticBkColor ${MUI_TEMP2} 0x00FFFFFF + + IfRebootFlag "" noreboot_show + + GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1203 + SetStaticBkColor ${MUI_TEMP2} 0x00FFFFFF + + GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1204 + SetStaticBkColor ${MUI_TEMP2} 0x00FFFFFF + + Goto show + + noreboot_show: + + !ifdef MUI_FINISHPAGE_RUN + + GetDlgItem ${MUI_TEMP2} ${MUI_TEMP1} 1203 + SetStaticBkColor ${MUI_TEMP2} 0x00FFFFFF + + !endif + + !ifdef MUI_FINISHPAGE_RUN + + show: + + !insertmacro MUI_INSTALLOPTIONS_SHOW + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1028 + ShowWindow ${MUI_TEMP1} ${SW_NORMAL} + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1035 + ShowWindow ${MUI_TEMP1} ${SW_NORMAL} + + GetDlgItem ${MUI_TEMP1} $HWNDPARENT 1045 + ShowWindow ${MUI_TEMP1} ${SW_HIDE} + + IfRebootFlag "" noreboot_end + + !insertmacro MUI_INSTALLOPTIONS_READ ${MUI_TEMP1} "ioWizard.ini" "Field 4" "State" + + StrCmp ${MUI_TEMP1} "1" "" +2 + Reboot + + Goto done + + noreboot_end: + + !insertmacro MUI_INSTALLOPTIONS_READ ${MUI_TEMP1} "ioWizard.ini" "Field 4" "State" + + StrCmp ${MUI_TEMP1} "1" "" +2 + Exec '"${MUI_FINISHPAGE_RUN}"' + + done: + + Pop ${MUI_TEMP3} + Pop ${MUI_TEMP2} + Pop ${MUI_TEMP1} + + FunctionEnd + + !verbose 4 + +!macroend + !macro MUI_FUNCTIONS_DESCRIPTION_BEGIN !verbose 3 @@ -662,6 +962,21 @@ !macroend +;-------------------------------- +;RESERVE FILES + +!macro MUI_RESERVEFILE_INSTALLOPTIONS + ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll" +!macroend + +!macro MUI_RESERVEFILE_WIZARDINI + ReserveFile "${NSISDIR}\Contrib\Modern UI\ioWizard.ini" +!macroend + +!macro MUI_RESERVEFILE_WIZARDBITMAP + ReserveFile "${NSISDIR}\Contrib\Icons\modern-wizard.bmp" +!macroend + ;-------------------------------- ;BASIC MACRO'S @@ -711,22 +1026,6 @@ !verbose 3 - !ifndef MUI_CUSTOMPAGECOMMANDS - !ifndef MUI_PAGECOMMANDS - !define MUI_PAGECOMMANDS - !insertmacro MUI_PAGECOMMANDS - !endif - !endif - - !ifdef MUI_UNINSTALLER - !ifndef MUI_UNCUSTOMPAGECOMMANDS - !ifndef MUI_UNPAGECOMMANDS - !define MUI_UNPAGECOMMANDS - !insertmacro MUI_UNPAGECOMMANDS - !endif - !endif - !endif - !define MUI_LANGUAGEFILE_CURRENT "${LANGUAGE}" !ifndef "MUI_LANGUAGEFILE_${LANGUAGE}_USED" @@ -756,7 +1055,7 @@ !ifndef "${INSTALLBUTTON}" !ifdef MUI_TEXT_CONTINUE_NEXT - LangString "${NAME}" "${LANG_${MUI_LANGUAGEFILE_CURRENT}}" "${VALUE} ${MUI_TEXT_CONTINUE_NEXT}" + LangString "${NAME}" "${LANG_${MUI_LANGUAGEFILE_CURRENT}}" "${VALUE}${MUI_TEXT_CONTINUE_NEXT}" !endif !ifndef MUI_TEXT_CONTINUE_NEXT LangString "${NAME}" "${LANG_${MUI_LANGUAGEFILE_CURRENT}}" "${VALUE}" @@ -765,7 +1064,7 @@ !ifdef "${INSTALLBUTTON}" !ifdef MUI_TEXT_CONTINUE_INSTALL - LangString "${NAME}" "${LANG_${MUI_LANGUAGEFILE_CURRENT}}" "${VALUE} ${MUI_TEXT_CONTINUE_INSTALL}" + LangString "${NAME}" "${LANG_${MUI_LANGUAGEFILE_CURRENT}}" "${VALUE}${MUI_TEXT_CONTINUE_INSTALL}" !endif !ifndef MUI_TEXT_CONTINUE_INSTALL LangString "${NAME}" "${LANG_${MUI_LANGUAGEFILE_CURRENT}}" "${VALUE}" @@ -829,6 +1128,35 @@ !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND Name MUI_NAME "${MUI_NAME}" + !ifdef MUI_STARTMENUPAGE + !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_STARTMENU_WINDOWTITLE" "${MUI_TEXT_STARTMENU_WINDOWTITLE}" + !endif + + !ifdef MUI_FINISHPAGE + !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_WINDOWTITLE" "${MUI_TEXT_FINISH_WINDOWTITLE}" + !endif + + !ifndef MUI_CUSTOMPAGECOMMANDS + !ifndef MUI_PAGECOMMANDS + !define MUI_PAGECOMMANDS + !insertmacro MUI_PAGECOMMANDS + !endif + !endif + + !ifdef MUI_UNINSTALLER + !ifndef MUI_UNCUSTOMPAGECOMMANDS + !ifndef MUI_UNPAGECOMMANDS + !define MUI_UNPAGECOMMANDS + !insertmacro MUI_UNPAGECOMMANDS + !endif + !endif + !endif + + !ifdef MUI_WELCOMEPAGE + !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_WELCOME_TITLE" "${MUI_TEXT_WELCOME_TITLE}" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CONTINUE "MUI_TEXT_WELCOME_INFO" "${MUI_TEXT_WELCOME_INFO}" "MUI_INSTALLBUTTON_WELCOME" + !endif + !ifdef MUI_LICENSEPAGE !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_LICENSE_TITLE" "${MUI_TEXT_LICENSE_TITLE}" !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_LICENSE_SUBTITLE" "${MUI_TEXT_LICENSE_SUBTITLE}" @@ -839,7 +1167,7 @@ !ifdef MUI_COMPONENTSPAGE !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_COMPONENTS_TITLE" "${MUI_TEXT_COMPONENTS_TITLE}" !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_COMPONENTS_SUBTITLE" "${MUI_TEXT_COMPONENTS_SUBTITLE}" - !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_CONTINUE "ComponentText" "MUI_INNERTEXT_COMPONENTS" "${MUI_INNERTEXT_COMPONENTS}" "MUI_INSTALLBUTTON_COMPONENTS" + !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_CONTINUE "ComponentText" "MUI_INNERTEXT_COMPONENTS_TOP" "${MUI_INNERTEXT_COMPONENTS_TOP} " "MUI_INSTALLBUTTON_COMPONENTS" !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE" "${MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE}" !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO" "${MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO}" !endif @@ -847,22 +1175,30 @@ !ifdef MUI_DIRECTORYPAGE !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_DIRECTORY_TITLE" "${MUI_TEXT_DIRECTORY_TITLE}" !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_DIRECTORY_SUBTITLE" "${MUI_TEXT_DIRECTORY_SUBTITLE}" - !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_CONTINUE "DirText" "MUI_INNERTEXT_DIRECTORY_TOP" "${MUI_INNERTEXT_DIRECTORY_TOP}" "MUI_INSTALLBUTTON_DIRECTORY" + !insertmacro MUI_LANGUAGEFILE_NSISCOMMAND_CONTINUE "DirText" "MUI_INNERTEXT_DIRECTORY_TOP" "${MUI_INNERTEXT_DIRECTORY_TOP} " "MUI_INSTALLBUTTON_DIRECTORY" !insertmacro MUI_LANGUAGEFILE_LANGSTRING MUI_INNERTEXT_DIRECTORY_DESTINATION "${MUI_INNERTEXT_DIRECTORY_DESTINATION}" !endif !ifdef MUI_STARTMENUPAGE - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_STARTMENU_WINDOWTITLE" "${MUI_TEXT_STARTMENU_WINDOWTITLE}" !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_STARTMENU_TITLE" "${MUI_TEXT_STARTMENU_TITLE}" !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_STARTMENU_SUBTITLE" "${MUI_TEXT_STARTMENU_SUBTITLE}" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CONTINUE "MUI_INNERTEXT_STARTMENU" "${MUI_INNERTEXT_STARTMENU}" "MUI_INSTALLBUTTON_STARTMENU" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING_CONTINUE "MUI_INNERTEXT_STARTMENU_TOP" "${MUI_INNERTEXT_STARTMENU_TOP} " "MUI_INSTALLBUTTON_STARTMENU" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_INNERTEXT_STARTMENU_CHECKBOX" "${MUI_INNERTEXT_STARTMENU_CHECKBOX}" !endif !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_INSTALLING_TITLE" "${MUI_TEXT_INSTALLING_TITLE}" !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_INSTALLING_SUBTITLE" "${MUI_TEXT_INSTALLING_SUBTITLE}" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISHED_TITLE" "${MUI_TEXT_FINISHED_TITLE}" - !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISHED_SUBTITLE" "${MUI_TEXT_FINISHED_SUBTITLE}" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_TITLE" "${MUI_TEXT_FINISH_TITLE}" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_FINISH_SUBTITLE" "${MUI_TEXT_FINISH_SUBTITLE}" + !ifdef MUI_FINISHPAGE + MiscButtonText "/LANG=${LANG_${MUI_LANGUAGEFILE_CURRENT}}" "" "" "" "${MUI_TEXT_FINISH_BUTTON}" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING MUI_TEXT_FINISH_INFO "${MUI_TEXT_FINISH_INFO}" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING MUI_TEXT_FINISH_INFO_REBOOT "${MUI_TEXT_FINISH_INFO_REBOOT}" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING MUI_TEXT_FINISH_REBOOTNOW "${MUI_TEXT_FINISH_REBOOTNOW}" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING MUI_TEXT_FINISH_REBOOTLATER "${MUI_TEXT_FINISH_REBOOTLATER}" + !insertmacro MUI_LANGUAGEFILE_LANGSTRING MUI_TEXT_FINISH_RUN "${MUI_TEXT_FINISH_RUN}" + !endif !ifdef MUI_ABORTWARNING !insertmacro MUI_LANGUAGEFILE_LANGSTRING "MUI_TEXT_ABORTWARNING" "${MUI_TEXT_ABORTWARNING}" @@ -880,7 +1216,6 @@ !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_FINISHED_TITLE" "${MUI_UNTEXT_FINISHED_TITLE}" !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING "MUI_UNTEXT_FINISHED_SUBTITLE" "${MUI_UNTEXT_FINISHED_SUBTITLE}" - !endif !ifdef MUI_TEXT_CONTINUE_NEXT diff --git a/Contrib/Modern UI/ioWizard.ini b/Contrib/Modern UI/ioWizard.ini new file mode 100644 index 00000000..fbaf1a09 --- /dev/null +++ b/Contrib/Modern UI/ioWizard.ini @@ -0,0 +1,21 @@ +[Settings] +Rect=1044 +NumFields=3 +[Field 1] +Type=bitmap +Left=0 +Right=164 +Top=0 +Bottom=314 +[Field 2] +Type=label +Left=190 +Right=475 +Top=25 +Bottom=65 +[Field 3] +Type=label +Left=190 +Right=475 +Top=80 +Bottom=170 \ No newline at end of file diff --git a/Contrib/UIs/modern.exe b/Contrib/UIs/modern.exe index 5273fdb2..418ee8bf 100644 Binary files a/Contrib/UIs/modern.exe and b/Contrib/UIs/modern.exe differ diff --git a/Contrib/UIs/modern2.exe b/Contrib/UIs/modern2.exe index 58e8561b..539b8494 100644 Binary files a/Contrib/UIs/modern2.exe and b/Contrib/UIs/modern2.exe differ diff --git a/Examples/Modern UI/Basic.nsi b/Examples/Modern UI/Basic.nsi index 0cf1a4f1..4230974b 100644 --- a/Examples/Modern UI/Basic.nsi +++ b/Examples/Modern UI/Basic.nsi @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.5 +;NSIS Modern User Interface version 1.6 ;Basic Example Script ;Written by Joost Verburg diff --git a/Examples/Modern UI/InstallOptions.nsi b/Examples/Modern UI/InstallOptions.nsi index 43e67c75..6b90cb66 100644 --- a/Examples/Modern UI/InstallOptions.nsi +++ b/Examples/Modern UI/InstallOptions.nsi @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.5 +;NSIS Modern User Interface version 1.6 ;Install Options Example Script ;Written by Joost Verburg @@ -17,7 +17,6 @@ !define MUI_UNINSTALLER - !define MUI_WINDOWTITLE !define MUI_CUSTOMPAGECOMMANDS !define TEMP1 $R0 @@ -62,7 +61,7 @@ ;Things that need to be extracted on startup (keep these lines before any File command!) ;Only useful for BZIP2 compression ;Use ReserveFile for your own Install Options ini files too! - ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll" + !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ReserveFile "ioA.ini" ReserveFile "ioB.ini" ReserveFile "ioC.ini" diff --git a/Examples/Modern UI/MultiLanguage.nsi b/Examples/Modern UI/MultiLanguage.nsi index 4a7b2981..ae0f401a 100644 --- a/Examples/Modern UI/MultiLanguage.nsi +++ b/Examples/Modern UI/MultiLanguage.nsi @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.5 +;NSIS Modern User Interface version 1.6 ;MultiLanguage Example Script ;Written by Joost Verburg diff --git a/Examples/Modern UI/StartMenu.nsi b/Examples/Modern UI/StartMenu.nsi index ef7bd495..b3736fad 100644 --- a/Examples/Modern UI/StartMenu.nsi +++ b/Examples/Modern UI/StartMenu.nsi @@ -1,4 +1,4 @@ -;NSIS Modern User Interface version 1.5 +;NSIS Modern User Interface version 1.6 ;Start Menu Folder Selection Example Script ;Written by Joost Verburg @@ -58,13 +58,17 @@ Section "modern.exe" SecCopyUI SetOutPath "$INSTDIR" File "${NSISDIR}\Contrib\UIs\modern.exe" - ;Create shortcut - CreateDirectory "$SMPROGRAMS\${MUI_STARTMENU_VARIABLE}" - CreateShortCut "$SMPROGRAMS\${MUI_STARTMENU_VARIABLE}\Modern UI.lnk" "$INSTDIR\modern.exe" - CreateShortCut "$SMPROGRAMS\${MUI_STARTMENU_VARIABLE}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + !insertmacro MUI_STARTMENU_WRITE_BEGIN + + ;Create shortcuts + CreateDirectory "$SMPROGRAMS\${MUI_STARTMENU_VARIABLE}" + CreateShortCut "$SMPROGRAMS\${MUI_STARTMENU_VARIABLE}\Modern UI.lnk" "$INSTDIR\modern.exe" + CreateShortCut "$SMPROGRAMS\${MUI_STARTMENU_VARIABLE}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" - ;Write shortcut location to the registry (for Uninstaller) - WriteRegStr HKCU "Software\${MUI_PRODUCT}" "Start Menu Folder" "${MUI_STARTMENU_VARIABLE}" + ;Write shortcut location to the registry (for Uninstaller) + WriteRegStr HKCU "Software\${MUI_PRODUCT}" "Start Menu Folder" "${MUI_STARTMENU_VARIABLE}" + + !insertmacro MUI_STARTMENU_WRITE_END ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" @@ -92,9 +96,14 @@ Section "Uninstall" ;Remove shortcut ReadRegStr ${TEMP1} HKCU "Software\${MUI_PRODUCT}" "Start Menu Folder" - Delete "$SMPROGRAMS\${TEMP1}\Modern UI.lnk" - Delete "$SMPROGRAMS\${TEMP1}\Uninstall.lnk" - RMDir "$SMPROGRAMS\${TEMP1}" ;Only if empty, so it won't delete other shortcuts + + StrCmp ${TEMP1} "" noshotcuts + + Delete "$SMPROGRAMS\${TEMP1}\Modern UI.lnk" + Delete "$SMPROGRAMS\${TEMP1}\Uninstall.lnk" + RMDir "$SMPROGRAMS\${TEMP1}" ;Only if empty, so it won't delete other shortcuts + + noshortcuts: RMDir "$INSTDIR" diff --git a/Examples/Modern UI/WelcomeFinish.nsi b/Examples/Modern UI/WelcomeFinish.nsi new file mode 100644 index 00000000..f2137508 --- /dev/null +++ b/Examples/Modern UI/WelcomeFinish.nsi @@ -0,0 +1,100 @@ +;NSIS Modern User Interface version 1.6 +;Welcome/Finish Page Example Script +;Written by Joost Verburg + +!define MUI_PRODUCT "Test Software" ;Define your own software name here +!define MUI_VERSION "1.0" ;Define your own software version here + +!include "${NSISDIR}\Contrib\Modern UI\System.nsh" + +;-------------------------------- +;Configuration + + !define MUI_WELCOMEPAGE + !define MUI_FINISHPAGE + !define MUI_FINISHPAGE_RUN "$INSTDIR\modern.exe" + + !define MUI_LICENSEPAGE + !define MUI_COMPONENTSPAGE + !define MUI_DIRECTORYPAGE + !define MUI_ABORTWARNING + !define MUI_UNINSTALLER + + ;Language + !insertmacro MUI_LANGUAGE "English" + + ;General + OutFile "WelcomeFinish.exe" + + ;License page + LicenseData "${NSISDIR}\Contrib\Modern UI\License.txt" + + ;Component-selection page + ;Descriptions + LangString DESC_SecCopyUI ${LANG_ENGLISH} "Copy the modern.exe file to the application folder." + + ;Folder-selection page + InstallDir "$PROGRAMFILES\${MUI_PRODUCT}" + + ;Things that need to be extracted on startup (keep these lines before any File command!) + ;Only useful for BZIP2 compression + ;Use ReserveFile for your own Install Options ini files too! + !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS + !insertmacro MUI_RESERVEFILE_WIZARDINI + !insertmacro MUI_RESERVEFILE_WIZARDBITMAP + +;-------------------------------- +;Modern UI System + +!insertmacro MUI_SYSTEM + +;-------------------------------- +;Installer Sections + +Section "modern.exe" SecCopyUI + + ;Add your stuff here + + SetOutPath "$INSTDIR" + File "${NSISDIR}\Contrib\UIs\modern.exe" + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +!insertmacro MUI_SECTIONS_FINISHHEADER ;Insert this macro after the sections + +;-------------------------------- +;Descriptions + +!insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI) +!insertmacro MUI_FUNCTIONS_DESCRIPTION_END + +;-------------------------------- +;Installer Functions + +Function .onInit + + !insertmacro MUI_WELCOMEFINISHPAGE_INIT + +FunctionEnd + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;Add your stuff here + + Delete "$INSTDIR\modern.exe" + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" + + !insertmacro MUI_UNFINISHHEADER + +SectionEnd + +;eof \ No newline at end of file