From 2b364bf17c39c67bf3d1763b9ba52bce0ceed6a6 Mon Sep 17 00:00:00 2001
From: kichik
Date: Tue, 14 Mar 2006 14:09:20 +0000
Subject: [PATCH] implemented feature request #1448176 - show function support
for start menu page
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4582 212acab6-be3b-0410-9dea-997c60f758d6
---
Contrib/Modern UI/Readme.html | 3 +--
Contrib/Modern UI/System.nsh | 23 +++++++++++++++++------
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/Contrib/Modern UI/Readme.html b/Contrib/Modern UI/Readme.html
index ddb841e5..1b989c24 100644
--- a/Contrib/Modern UI/Readme.html
+++ b/Contrib/Modern UI/Readme.html
@@ -1169,11 +1169,10 @@ Functions
"parameter">function
Notes:
-- The StartMenu page does not have a Show function
- In the Pre function of the Welcome page and the Finish page,
you can write to the InstallOptions INI file of the page
(ioSpecial.ini)
-- In the Show function of Welcome page and the Finish page,
+
- In the Show function of the Welcome, Finish and StartMenu pages,
$MUI_HWND contains the HWND of the inner dialog
diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh
index 5164062b..81e90e43 100644
--- a/Contrib/Modern UI/System.nsh
+++ b/Contrib/Modern UI/System.nsh
@@ -849,6 +849,11 @@ Var /GLOBAL MUI_TEMP2
!define "MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}"
!endif
+ !ifndef MUI_VAR_HWND
+ Var /GLOBAL MUI_HWND
+ !define MUI_VAR_HWND
+ !endif
+
PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom
PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuLeave_${MUI_UNIQUEID}
@@ -1313,18 +1318,24 @@ Var /GLOBAL MUI_TEMP2
StrCmp $(^RTL) 0 mui.startmenu_nortl
!ifndef MUI_STARTMENUPAGE_NODISABLE
- StartMenu::Select /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
+ StartMenu::Init /NOUNLOAD /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
!else
- StartMenu::Select /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
+ StartMenu::Init /NOUNLOAD /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
!endif
- Goto mui.startmenu_calldone
+ Goto mui.startmenu_initdone
mui.startmenu_nortl:
!ifndef MUI_STARTMENUPAGE_NODISABLE
- StartMenu::Select /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
+ StartMenu::Init /NOUNLOAD /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
!else
- StartMenu::Select /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
+ StartMenu::Init /NOUNLOAD /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
!endif
- mui.startmenu_calldone:
+ mui.startmenu_initdone:
+
+ Pop $MUI_HWND
+
+ !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
+
+ StartMenu::Show
Pop $MUI_TEMP1
StrCmp $MUI_TEMP1 "success" 0 +2