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