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
This commit is contained in:
joostverburg 2003-02-27 22:20:04 +00:00
parent 991dcd5a92
commit 90b11cdccc
3 changed files with 55 additions and 34 deletions

View file

@ -154,16 +154,28 @@ follow these steps:</p>
<p class="text"><span class="bold">MUI_DIRECTORYPAGE</span><br />
Show the directory selection page.</p>
<p class="text"><span class="bold">MUI_STARTMENUPAGE</span><br />
Show the Start Menu Folder selection page.</p>
Show the Start Menu Folder selection page.<br /><br />
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:
<pre class="margin">
!insertmacro MUI_STARTMENU_WRITE_BEGIN
...create the shortcuts...
!insertmacro MUI_STARTMENU_WRITE_END
</pre>
</p>
<div class="margin">
<p class="text"><span class="bold">MUI_STARTMENU_VARIABLE</span><br />
<p class="text"><span class="bold">MUI_STARTMENUPAGE_VARIABLE</span><br />
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.</p>
<p class="text"><span class="bold">MUI_STARTMENU_DEFAULTFOLDER</span><br />
<p class="text"><span class="bold">MUI_STARTMENUPAGE_DEFAULTFOLDER</span><br />
The default Start Menu Folder. Use $(LANGSTRINGNAME) as value is you want
to use a language string.</p>
<p class="text"><span class="bold">MUI_STARTMENU_REGISTRY_ROOT, MUI_STARTMENU_REGISTRY_KEY,
MUI_STARTMENU_REGISTRY_VALUENAME</span><br />
<p class="text"><span class="bold">MUI_STARTMENUPAGE_NODISABLE</span><br />
Do not display the checkbox to disable the creation of Start Menu
shortcuts.</p>
<p class="text"><span class="bold">MUI_STARTMENUPAGE_REGISTRY_ROOT,
MUI_STARTMENUPAGE_REGISTRY_KEY, MUI_STARTMENUPAGE_REGISTRY_VALUENAME</span><br />
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.</p>
@ -479,7 +491,8 @@ MUI_CUSTOMFUNCTION_DIRECTORY_LEAVE
</p>
<p class="text">
<span class="bold">Start Menu Folder Page</span><br>
MUI_CUSTOMFUNCTION_STARTMENU
MUI_CUSTOMFUNCTION_STARTMENU_PRE
MUI_CUSTOMFUNCTION_STARTMENU_LEAVE
</p>
<p class="text">
<span class="bold">Install Files Page</span><br>
@ -593,7 +606,7 @@ it freely, subject to the following restrictions:
</div></td>
</tr>
<tr>
<td><div class="footer">&copy;2002 Joost Verburg</div></td>
<td><div class="footer">&copy;2002-2003 Joost Verburg</div></td>
</tr>
</table>
</td></tr>

View file

@ -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}"

View file

@ -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