- /*
- NSIS Modern User Interface
- Welcome page (implemented using nsDialogs)
- */
- ;--------------------------------
- ;Page interface settings and variables
- !macro MUI_WELCOMEPAGE_INTERFACE
- !ifndef MUI_WELCOMEPAGE_INTERFACE
- !define MUI_WELCOMEPAGE_INTERFACE
- Var mui.WelcomePage
- Var mui.WelcomePage.Image
- Var mui.WelcomePage.Image.Bitmap
- Var mui.WelcomePage.Title
- Var mui.WelcomePage.Title.Font
- Var mui.WelcomePage.Text
- !endif
- !insertmacro MUI_DEFAULT MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp"
- !if "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP}" == ""
- !error "Invalid MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP"
- !endif
- !macroend
- ;--------------------------------
- ;Interface initialization
- !macro MUI_WELCOMEPAGE_GUIINIT
- !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEWELCOMEPAGE_GUINIT
- !define MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEWELCOMEPAGE_GUINIT
- Function ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePage.GUIInit
- InitPluginsDir
- File "/oname=$PLUGINSDIR\modern-wizard.bmp" "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP}"
- !ifdef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT
- Call "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT}"
- !endif
- FunctionEnd
- !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePage.GUIInit
- !endif
- !macroend
- ;--------------------------------
- ;Page declaration
- !macro MUI_PAGEDECLARATION_WELCOME
- !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEPAGE ""
- !insertmacro MUI_WELCOMEPAGE_INTERFACE
- !insertmacro MUI_WELCOMEPAGE_GUIINIT
- !insertmacro MUI_DEFAULT MUI_WELCOMEPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TITLE)"
- !insertmacro MUI_DEFAULT MUI_WELCOMEPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TEXT)"
- !insertmacro MUI_PAGE_FUNCTION_FULLWINDOW
- 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
- !macroend
- !macro MUI_PAGE_WELCOME
- !verbose push
- !verbose ${MUI_VERBOSE}
- !insertmacro MUI_PAGE_INIT
- !insertmacro MUI_PAGEDECLARATION_WELCOME
- !verbose pop
- !macroend
- !macro MUI_UNPAGE_WELCOME
- !verbose push
- !verbose ${MUI_VERBOSE}
- !insertmacro MUI_UNPAGE_INIT
- !insertmacro MUI_PAGEDECLARATION_WELCOME
- !verbose pop
- !macroend
- ;--------------------------------
- ;Page functions
- !macro MUI_FUNCTION_WELCOMEPAGE PRE LEAVE
- Function "${PRE}"
- !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
- ;Create dialog
- nsDialogs::Create 1044
- Pop $mui.WelcomePage
- nsDialogs::SetRTL $(^RTL)
- SetCtlColors $mui.WelcomePage "" "${MUI_BGCOLOR}"
- ;Image control
- ${NSD_CreateBitmap} 0u 0u 109u 193u ""
- Pop $mui.WelcomePage.Image
- !insertmacro MUI_INTERNAL_FULLWINDOW_LOADWIZARDIMAGE "${MUI_PAGE_UNINSTALLER_PREFIX}" $mui.WelcomePage.Image $PLUGINSDIR\modern-wizard.bmp $mui.WelcomePage.Image.Bitmap
- ;Positiong of controls
- ;Title
- !ifndef MUI_WELCOMEPAGE_TITLE_3LINES
- !define MUI_WELCOMEPAGE_TITLE_HEIGHT 28
- !else
- !define MUI_WELCOMEPAGE_TITLE_HEIGHT 38
- !endif
- ;Text
- ;17 = 10 (top margin) + 7 (distance between texts)
- !define /math MUI_WELCOMEPAGE_TEXT_TOP 17 + ${MUI_WELCOMEPAGE_TITLE_HEIGHT}
- ;Title
- ${NSD_CreateLabel} 120u 10u 195u ${MUI_WELCOMEPAGE_TITLE_HEIGHT}u "${MUI_WELCOMEPAGE_TITLE}"
- Pop $mui.WelcomePage.Title
- SetCtlColors $mui.WelcomePage.Title "" "${MUI_BGCOLOR}"
- CreateFont $mui.WelcomePage.Title.Font "$(^Font)" "12" "700"
- SendMessage $mui.WelcomePage.Title ${WM_SETFONT} $mui.WelcomePage.Title.Font 0
- ;Welcome text
- ${NSD_CreateLabel} 120u ${MUI_WELCOMEPAGE_TEXT_TOP}u 195u 130u "${MUI_WELCOMEPAGE_TEXT}"
- Pop $mui.WelcomePage.Text
- SetCtlColors $mui.WelcomePage.Text "" "${MUI_BGCOLOR}"
- ;Show page
- Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageLoadFullWindow
- !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
- nsDialogs::Show
- Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageUnloadFullWindow
- ;Delete image from memory
- ${NSD_FreeImage} $mui.WelcomePage.Image.Bitmap
- !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE_HEIGHT
- !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TEXT_TOP
- FunctionEnd
- Function "${LEAVE}"
- !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
- FunctionEnd
- !macroend