305 lines
7.2 KiB
Plaintext
305 lines
7.2 KiB
Plaintext
/*
|
|
|
|
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\UGX\banner.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
|