diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh index 65d63ec1..236cbbe9 100644 --- a/Contrib/Modern UI/System.nsh +++ b/Contrib/Modern UI/System.nsh @@ -419,6 +419,27 @@ StrCpy ${MUI_TEMP1} ${MUI_STARTMENUPAGE_VARIABLE} 1 StrCmp ${MUI_TEMP1} ">" mui.startmenu_write_done + + StrCmp ${MUI_STARTMENUPAGE_VARIABLE} "" 0 mui.startmenu_writebegin_notempty + + !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME + + StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 +6 + + ReadRegStr ${MUI_TEMP1} "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" + StrCmp ${MUI_TEMP1} "" +3 + StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" ${MUI_TEMP1} + Goto +2 + + StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + + !else + + StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + + !endif + + mui.startmenu_writebegin_notempty: Pop ${MUI_TEMP1} @@ -862,6 +883,19 @@ !macroend +!macro MUI_STARTMENU_INITDEFINES + + ;Check defines + !ifndef MUI_STARTMENUPAGE_VARIABLE + !define MUI_STARTMENUPAGE_VARIABLE "$9" + !endif + + !ifndef MUI_STARTMENUPAGE_DEFAULTFOLDER + !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${MUI_PRODUCT}" + !endif + +!macroend + ;-------------------------------- ;FUNCTIONS @@ -1048,14 +1082,6 @@ !macro MUI_FUNCTIONS_STARTMENUPAGE FUNCTION - ;Check defines - !ifndef MUI_STARTMENUPAGE_VARIABLE - !define MUI_STARTMENUPAGE_VARIABLE "$9" - !endif - !ifndef MUI_STARTMENUPAGE_DEFAULTFOLDER - !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${MUI_PRODUCT}" - !endif - Function "${FUNCTION}" !ifdef MUI_CUSTOMFUNCTION_STARTMENU_PRE @@ -1063,19 +1089,19 @@ !endif Push ${MUI_TEMP1} + + !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME + + StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 +4 + + ReadRegStr ${MUI_TEMP1} "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" + StrCmp ${MUI_TEMP1} "" +2 + StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" ${MUI_TEMP1} + + !endif !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE) - !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME - - StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" "" +4 - - ReadRegStr ${MUI_TEMP1} "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" - StrCmp ${MUI_TEMP1} "" +2 - StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" ${MUI_TEMP1} - - !endif - !ifndef MUI_STARTMENUPAGE_NODISABLE StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" !else @@ -1578,8 +1604,12 @@ !define MUI_MANUALVERBOSE_SET !define MUI_MANUALVERBOSE !endif + + !ifdef MUI_STARTMENUPAGE + !insertmacro MUI_STARTMENU_INITDEFINES + !endif - !insertmacro MUI_INTERFACE + !insertmacro MUI_INTERFACE !insertmacro MUI_FUNCTIONS_PAGES !insertmacro MUI_FUNCTIONS_GUIINIT