From 90b11cdccc6c70f0b42710a1d78e781c1ec72ee3 Mon Sep 17 00:00:00 2001
From: joostverburg
Date: Thu, 27 Feb 2003 22:20:04 +0000
Subject: [PATCH] startmenu: changed define names, pre/leave custom functions,
checkbox can be disabled, documentation updates
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2222 212acab6-be3b-0410-9dea-997c60f758d6
---
Contrib/Modern UI/Readme.html | 27 ++++++++++++++-----
Contrib/Modern UI/System.nsh | 46 +++++++++++++++++++-------------
Examples/Modern UI/StartMenu.nsi | 16 +++++------
3 files changed, 55 insertions(+), 34 deletions(-)
diff --git a/Contrib/Modern UI/Readme.html b/Contrib/Modern UI/Readme.html
index 320ef127..bdfc4ddb 100644
--- a/Contrib/Modern UI/Readme.html
+++ b/Contrib/Modern UI/Readme.html
@@ -154,16 +154,28 @@ follow these steps:
MUI_DIRECTORYPAGE
Show the directory selection page.
MUI_STARTMENUPAGE
- Show the Start Menu Folder selection page.
+ Show the Start Menu Folder selection page.
+ If you did not disable the 'Do not create shortcuts' checkbox,
+ put the script code to write the shortcuts between these macro's,
+ because the creation can be disabled by the user:
+
+!insertmacro MUI_STARTMENU_WRITE_BEGIN
+ ...create the shortcuts...
+!insertmacro MUI_STARTMENU_WRITE_END
+
+
-
MUI_STARTMENU_VARIABLE
+
MUI_STARTMENUPAGE_VARIABLE
Variable to store the current Start Menu Folder. Default is $9.
You cannot use this variable in your script (or you should Push/Pop it).e.
-
MUI_STARTMENU_DEFAULTFOLDER
+
MUI_STARTMENUPAGE_DEFAULTFOLDER
The default Start Menu Folder. Use $(LANGSTRINGNAME) as value is you want
to use a language string.
-
MUI_STARTMENU_REGISTRY_ROOT, MUI_STARTMENU_REGISTRY_KEY,
- MUI_STARTMENU_REGISTRY_VALUENAME
+
MUI_STARTMENUPAGE_NODISABLE
+ Do not display the checkbox to disable the creation of Start Menu
+ shortcuts.
+
MUI_STARTMENUPAGE_REGISTRY_ROOT,
+ MUI_STARTMENUPAGE_REGISTRY_KEY, MUI_STARTMENUPAGE_REGISTRY_VALUENAME
If your installer saves the Start Menu folder of a previous installation
in a registry, define these values and the Modern UI will use the saved
value as default folder.
@@ -479,7 +491,8 @@ MUI_CUSTOMFUNCTION_DIRECTORY_LEAVE
Start Menu Folder Page
-MUI_CUSTOMFUNCTION_STARTMENU
+MUI_CUSTOMFUNCTION_STARTMENU_PRE
+MUI_CUSTOMFUNCTION_STARTMENU_LEAVE
Install Files Page
@@ -593,7 +606,7 @@ it freely, subject to the following restrictions:
- |
+ |
diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh
index 48627fbf..3ebb90ce 100644
--- a/Contrib/Modern UI/System.nsh
+++ b/Contrib/Modern UI/System.nsh
@@ -409,7 +409,7 @@
Push ${MUI_TEMP1}
- StrCpy ${MUI_TEMP1} ${MUI_STARTMENU_VARIABLE} 1
+ StrCpy ${MUI_TEMP1} ${MUI_STARTMENUPAGE_VARIABLE} 1
StrCmp ${MUI_TEMP1} ">" no_startmenu_shortcuts
Pop ${MUI_TEMP1}
@@ -978,10 +978,10 @@
!endif
Function "${PRE}"
- !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_LICENSE_TITLE) $(MUI_TEXT_LICENSE_SUBTITLE)
!ifdef MUI_CUSTOMFUNCTION_LICENSE_PRE
Call "${MUI_CUSTOMFUNCTION_LICENSE_PRE}"
!endif
+ !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_LICENSE_TITLE) $(MUI_TEXT_LICENSE_SUBTITLE)
FunctionEnd
Function "${SHOW}"
@@ -1014,10 +1014,10 @@
!endif
Function "${PRE}"
- !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_COMPONENTS_TITLE) $(MUI_TEXT_COMPONENTS_SUBTITLE)
!ifdef MUI_CUSTOMFUNCTION_COMPONENTS_PRE
Call "${MUI_CUSTOMFUNCTION_COMPONENTS_PRE}"
!endif
+ !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_COMPONENTS_TITLE) $(MUI_TEXT_COMPONENTS_SUBTITLE)
FunctionEnd
Function "${SHOW}"
@@ -1051,10 +1051,10 @@
!endif
Function "${PRE}"
- !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_DIRECTORY_TITLE) $(MUI_TEXT_DIRECTORY_SUBTITLE)
!ifdef MUI_CUSTOMFUNCTION_DIRECTORY_PRE
Call "${MUI_CUSTOMFUNCTION_DIRECTORY_PRE}"
!endif
+ !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_DIRECTORY_TITLE) $(MUI_TEXT_DIRECTORY_SUBTITLE)
FunctionEnd
Function "${SHOW}"
@@ -1087,44 +1087,52 @@
!endif
;Check defines
- !ifndef MUI_STARTMENU_VARIABLE
- !define MUI_STARTMENU_VARIABLE "$9"
+ !ifndef MUI_STARTMENUPAGE_VARIABLE
+ !define MUI_STARTMENUPAGE_VARIABLE "$9"
!endif
- !ifndef MUI_STARTMENU_DEFAULTFOLDER
- !define MUI_STARTMENU_DEFAULTFOLDER "${MUI_PRODUCT}"
+ !ifndef MUI_STARTMENUPAGE_DEFAULTFOLDER
+ !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${MUI_PRODUCT}"
!endif
Function "${FUNCTION}"
+
+ !ifdef MUI_CUSTOMFUNCTION_STARTMENU_PRE
+ Call "${MUI_CUSTOMFUNCTION_STARTMENU_PRE}"
+ !endif
Push ${MUI_TEMP1}
!insertmacro MUI_HEADER_TEXT $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE)
- !ifdef MUI_STARTMENU_REGISTRY_ROOT
- !ifdef MUI_STARTMENU_REGISTRY_KEY
- !ifdef MUI_STARTMENU_REGISTRY_VALUENAME
+ !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT
+ !ifdef MUI_STARTMENUPAGE_REGISTRY_KEY
+ !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME
- StrCmp "${MUI_STARTMENU_VARIABLE}" "" "" +4
+ StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" "" +4
- ReadRegStr ${MUI_TEMP1} "${MUI_STARTMENU_REGISTRY_ROOT}" "${MUI_STARTMENU_REGISTRY_KEY}" "${MUI_STARTMENU_REGISTRY_VALUENAME}"
+ ReadRegStr ${MUI_TEMP1} "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}"
StrCmp ${MUI_TEMP1} "" +2
- StrCpy "${MUI_STARTMENU_VARIABLE}" ${MUI_TEMP1}
+ StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" ${MUI_TEMP1}
!endif
!endif
!endif
- StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENU_VARIABLE}" /checknoshortcuts "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" "${MUI_STARTMENU_DEFAULTFOLDER}"
+ !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
+ StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
+ !endif
Pop ${MUI_TEMP1}
StrCmp ${MUI_TEMP1} "success" 0 +2
- Pop "${MUI_STARTMENU_VARIABLE}"
+ Pop "${MUI_STARTMENUPAGE_VARIABLE}"
Pop ${MUI_TEMP1}
- !ifdef MUI_CUSTOMFUNCTION_STARTMENU
- Call "${MUI_CUSTOMFUNCTION_STARTMENU}"
+ !ifdef MUI_CUSTOMFUNCTION_STARTMENU_LEAVE
+ Call "${MUI_CUSTOMFUNCTION_STARTMENU_LEAVE}"
!endif
FunctionEnd
@@ -1146,10 +1154,10 @@
!endif
Function "${PRE}"
- !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_INSTALLING_TITLE) $(MUI_TEXT_INSTALLING_SUBTITLE)
!ifdef MUI_CUSTOMFUNCTION_INSTFILES_PRE
Call "${MUI_CUSTOMFUNCTION_INSTFILES_PRE}"
!endif
+ !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_INSTALLING_TITLE) $(MUI_TEXT_INSTALLING_SUBTITLE)
FunctionEnd
Function "${SHOW}"
diff --git a/Examples/Modern UI/StartMenu.nsi b/Examples/Modern UI/StartMenu.nsi
index 69f737d2..ae141894 100644
--- a/Examples/Modern UI/StartMenu.nsi
+++ b/Examples/Modern UI/StartMenu.nsi
@@ -10,14 +10,14 @@
;$9 is being used to store the Start Menu Folder.
;Do not use this variable in your script (or Push/Pop it)!
-;To change this variable, use MUI_STARTMENU_VARIABLE.
+;To change this variable, use MUI_STARTMENUPAGE_VARIABLE.
;Have a look at the Readme for info about other options (default folder,
;registry).
;Remember the Start Menu Folder
-!define MUI_STARTMENU_REGISTRY_ROOT "HKCU"
-!define MUI_STARTMENU_REGISTRY_KEY "Software\${MUI_PRODUCT}"
-!define MUI_STARTMENU_REGISTRY_VALUENAME "Start Menu Folder"
+!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
+!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${MUI_PRODUCT}"
+!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
!define TEMP $R0
@@ -75,12 +75,12 @@ Section "modern.exe" SecCopyUI
!insertmacro MUI_STARTMENU_WRITE_BEGIN
;Create shortcuts
- CreateDirectory "$SMPROGRAMS\${MUI_STARTMENU_VARIABLE}"
- CreateShortCut "$SMPROGRAMS\${MUI_STARTMENU_VARIABLE}\Modern UI.lnk" "$INSTDIR\modern.exe"
- CreateShortCut "$SMPROGRAMS\${MUI_STARTMENU_VARIABLE}\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
+ CreateDirectory "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}"
+ CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Modern UI.lnk" "$INSTDIR\modern.exe"
+ CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
;Write shortcut location to the registry (for Uninstaller)
- WriteRegStr HKCU "Software\${MUI_PRODUCT}" "Start Menu Folder" "${MUI_STARTMENU_VARIABLE}"
+ WriteRegStr HKCU "Software\${MUI_PRODUCT}" "Start Menu Folder" "${MUI_STARTMENUPAGE_VARIABLE}"
!insertmacro MUI_STARTMENU_WRITE_END