/* NSIS Modern User Interface Support code for all pages */ ;-------------------------------- ;Page initialization !macro MUI_PAGE_INIT ;Include interface settings in neccesary !insertmacro MUI_INTERFACE ;Define settings for installer page !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER_PREFIX !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER_FUNCPREFIX !insertmacro MUI_SET MUI_PAGE_UNINSTALLER_PREFIX "" !insertmacro MUI_SET MUI_PAGE_UNINSTALLER_FUNCPREFIX "" ;Generate unique ID !insertmacro MUI_UNSET MUI_UNIQUEID !define MUI_UNIQUEID ${__LINE__} !macroend !macro MUI_UNPAGE_INIT ;Include interface settings !insertmacro MUI_INTERFACE ;Define prefixes for uninstaller page !insertmacro MUI_SET MUI_UNINSTALLER "" !insertmacro MUI_SET MUI_PAGE_UNINSTALLER "" !insertmacro MUI_SET MUI_PAGE_UNINSTALLER_PREFIX "UN" !insertmacro MUI_SET MUI_PAGE_UNINSTALLER_FUNCPREFIX "un." ;Generate unique ID !insertmacro MUI_UNSET MUI_UNIQUEID !define MUI_UNIQUEID ${__LINE__} !macroend ;-------------------------------- ;Header text for standard MUI page !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 ;-------------------------------- ;Header text for custom page !macro MUI_HEADER_TEXT TEXT SUBTEXT ;Called from script !verbose push !verbose ${MUI_VERBOSE} !ifdef MUI_HEADER_TRANSPARENT_TEXT LockWindow on !endif SendMessage $mui.Header.Text ${WM_SETTEXT} 0 "STR:${TEXT}" SendMessage $mui.Header.SubText ${WM_SETTEXT} 0 "STR:${SUBTEXT}" !ifdef MUI_HEADER_TRANSPARENT_TEXT LockWindow off !endif !verbose pop !macroend ;-------------------------------- ;Custom page functions !macro MUI_PAGE_FUNCTION_CUSTOM TYPE !ifdef MUI_PAGE_CUSTOMFUNCTION_${TYPE} Call "${MUI_PAGE_CUSTOMFUNCTION_${TYPE}}" !undef MUI_PAGE_CUSTOMFUNCTION_${TYPE} !endif !macroend ;-------------------------------- ;Support for full window pages (like welcome/finish page) !macro MUI_PAGE_FUNCTION_FULLWINDOW !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_FULLWINDOW !define MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_FULLWINDOW Function ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageLoadFullWindow LockWindow on ;The branding text needs to be hidden because the full windows page ;overlaps with it. ShowWindow $mui.Branding.Background ${SW_HIDE} ShowWindow $mui.Branding.Text ${SW_HIDE} ;The texts need to be hidden because otherwise they may show through ;the page above when the Alt key is pressed. ShowWindow $mui.Header.Text ${SW_HIDE} ShowWindow $mui.Header.SubText ${SW_HIDE} ShowWindow $mui.Header.Image ${SW_HIDE} ;Show line below full width of page ShowWindow $mui.Line.Standard ${SW_HIDE} ShowWindow $mui.Line.FullWindow ${SW_NORMAL} LockWindow off FunctionEnd Function ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageUnloadFullWindow ;Set everything back to normal again LockWindow on ShowWindow $mui.Branding.Background ${SW_NORMAL} ShowWindow $mui.Branding.Text ${SW_NORMAL} ShowWindow $mui.Header.Text ${SW_NORMAL} ShowWindow $mui.Header.SubText ${SW_NORMAL} ShowWindow $mui.Header.Image ${SW_NORMAL} ShowWindow $mui.Line.Standard ${SW_NORMAL} ShowWindow $mui.Line.FullWindow ${SW_HIDE} LockWindow off FunctionEnd !endif !macroend