/* NSIS Modern User Interface Interface code for all pages */ ;-------------------------------- ;Variables Var mui.Header.Text Var mui.Header.Text.Font Var mui.Header.SubText Var mui.Header.Background Var mui.Header.Image Var mui.Branding.Text Var mui.Branding.Background Var mui.Line.Standard Var mui.Line.FullWindow Var mui.Button.Next Var mui.Button.Cancel Var mui.Button.Back ;-------------------------------- ;General interface settings !macro MUI_INTERFACE !ifndef MUI_INTERFACE !define MUI_INTERFACE ;These values are set after the interface settings in the script, ;so the script itself can override all values. ;Default interface settings in nsisconf.nsh !ifdef MUI_INSERT_NSISCONF !insertmacro MUI_NSISCONF !endif ;Default interface settings !insertmacro MUI_DEFAULT MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe" !insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe" !insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE_RIGHT "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe" !insertmacro MUI_DEFAULT MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" !insertmacro MUI_DEFAULT MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" !insertmacro MUI_DEFAULT MUI_BGCOLOR "FFFFFF" ;Default header images !ifdef MUI_HEADERIMAGE !insertmacro MUI_DEFAULT MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" !ifndef MUI_HEADERIMAGE_UNBITMAP !define MUI_HEADERIMAGE_UNBITMAP "${MUI_HEADERIMAGE_BITMAP}" !ifdef MUI_HEADERIMAGE_BITMAP_NOSTRETCH !insertmacro MUI_SET MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH "" !endif !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 !insertmacro MUI_SET MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH "" !endif !endif !endif !endif ;Default texts !insertmacro MUI_DEFAULT MUI_ABORTWARNING_TEXT "$(MUI_TEXT_ABORTWARNING)" !insertmacro MUI_DEFAULT MUI_UNABORTWARNING_TEXT "$(MUI_UNTEXT_ABORTWARNING)" ;Apply settings XPStyle On ;XP style setting in manifest resource ;Dialog resources ChangeUI all "${MUI_UI}" !ifdef MUI_HEADERIMAGE !ifndef MUI_HEADERIMAGE_RIGHT ChangeUI IDD_INST "${MUI_UI_HEADERIMAGE}" !else ChangeUI IDD_INST "${MUI_UI_HEADERIMAGE_RIGHT}" !endif !endif ;Icons Icon "${MUI_ICON}" UninstallIcon "${MUI_UNICON}" !endif !macroend ;-------------------------------- ;Abort warning message box !macro MUI_ABORTWARNING !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 ;-------------------------------- ;Initialization of GUI !macro MUI_HEADERIMAGE_INIT UNINSTALLER ;Load and display header image !ifdef MUI_HEADERIMAGE InitPluginsDir !ifdef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL ${if} $(^RTL) == 1 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 ${else} !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 ${endif} !endif !endif !macroend !macro MUI_GUIINIT_OUTERDIALOG UNINSTALLER ;Initialize outer dialog (fonts & colors) ;Header GetDlgItem $mui.Header.Text $HWNDPARENT 1037 CreateFont $mui.Header.Text.Font "$(^Font)" "$(^FontSize)" "700" SendMessage $mui.Header.Text ${WM_SETFONT} $mui.Header.Text.Font 0 GetDlgItem $mui.Header.SubText $HWNDPARENT 1038 !ifndef MUI_HEADER_TRANSPARENT_TEXT SetCtlColors $mui.Header.Text "" "${MUI_BGCOLOR}" SetCtlColors $mui.Header.SubText "" "${MUI_BGCOLOR}" !else SetCtlColors $mui.Header.Text "" "transparent" SetCtlColors $mui.Header.SubText "" "transparent" !endif ;Header image !insertmacro MUI_HEADERIMAGE_INIT "${UNINSTALLER}" ;Header background GetDlgItem $mui.Header.Background $HWNDPARENT 1034 SetCtlColors $mui.Header.Background "" "${MUI_BGCOLOR}" ;Header image background GetDlgItem $mui.Header.Image $HWNDPARENT 1039 SetCtlColors $mui.Header.Image "" "${MUI_BGCOLOR}" ;Branding text GetDlgItem $mui.Branding.Background $HWNDPARENT 1028 SetCtlColors $mui.Branding.Background /BRANDING GetDlgItem $mui.Branding.Text $HWNDPARENT 1256 SetCtlColors $mui.Branding.Text /BRANDING SendMessage $mui.Branding.Text ${WM_SETTEXT} 0 "STR:$(^Branding) " ;Lines GetDlgItem $mui.Line.Standard $HWNDPARENT 1035 GetDlgItem $mui.Line.FullWindow $HWNDPARENT 1045 ;Buttons GetDlgItem $mui.Button.Next $HWNDPARENT 1 GetDlgItem $mui.Button.Cancel $HWNDPARENT 2 GetDlgItem $mui.Button.Back $HWNDPARENT 3 !macroend ;-------------------------------- ;Interface functions !macro MUI_FUNCTION_GUIINIT Function .onGUIInit !insertmacro MUI_GUIINIT_OUTERDIALOG "" !ifdef MUI_PAGE_FUNCTION_GUIINIT Call "${MUI_PAGE_FUNCTION_GUIINIT}" !endif !ifdef MUI_CUSTOMFUNCTION_GUIINIT Call "${MUI_CUSTOMFUNCTION_GUIINIT}" !endif FunctionEnd !macroend !macro MUI_UNFUNCTION_GUIINIT Function un.onGUIInit !insertmacro MUI_GUIINIT_OUTERDIALOG UN !ifdef MUI_UNPAGE_FUNCTION_GUIINIT Call "${MUI_UNPAGE_FUNCTION_GUIINIT}" !endif !ifdef MUI_CUSTOMFUNCTION_UNGUIINIT Call "${MUI_CUSTOMFUNCTION_UNGUIINIT}" !endif FunctionEnd !macroend !macro MUI_FUNCTION_ABORTWARNING Function .onUserAbort !ifdef MUI_PAGE_FUNCTION_ABORTWARNING Call ${MUI_PAGE_FUNCTION_ABORTWARNING} !endif !ifdef MUI_ABORTWARNING !insertmacro MUI_ABORTWARNING !endif !ifdef MUI_CUSTOMFUNCTION_ABORT Call "${MUI_CUSTOMFUNCTION_ABORT}" !endif FunctionEnd !macroend !macro MUI_FUNCTION_UNABORTWARNING Function un.onUserAbort !ifdef MUI_UNPAGE_FUNCTION_ABORTWARNING Call ${MUI_UNPAGE_FUNCTION_ABORTWARNING} !endif !ifdef MUI_UNABORTWARNING !insertmacro MUI_UNABORTWARNING !endif !ifdef MUI_CUSTOMFUNCTION_UNABORT Call "${MUI_CUSTOMFUNCTION_UNABORT}" !endif FunctionEnd !macroend