- Added new control type "Button"
- Added new flag "NOTIFY" - Added new flag "NOWORDWRAP" for multi-line text boxes - Reduced size down to 12K git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3254 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
c0e8dc4f73
commit
6b73b0e490
7 changed files with 686 additions and 462 deletions
|
@ -1,3 +1,9 @@
|
|||
DLL version 2.3 (12/4/2003)
|
||||
* Added new control type "Button"
|
||||
* Added new flag "NOTIFY"
|
||||
* Added new flag "NOWORDWRAP" for multi-line text boxes
|
||||
* Reduced size down to 12K
|
||||
|
||||
DLL version 2.2 (6/10/2003)
|
||||
* Added New control type LINK
|
||||
* \r\n converts to newline in Multiline edit box
|
||||
|
@ -24,45 +30,45 @@ DLL version 2.0 (1/4/2003)
|
|||
* New documentation (by Joost Verburg)
|
||||
* New GROUP/NOTABSTOP/DISABLED flags
|
||||
|
||||
DLL version 1.7 beta (11/2/2002)
|
||||
DLL version 1.7 beta (11/2/2002)
|
||||
* Added initDialog and show DLL functions
|
||||
|
||||
DLL version 1.6 beta (9/30/2002)
|
||||
* CancelConfirmIcon becomes CancelConfirmFlags and can now take the other common MessageBox flags
|
||||
|
||||
DLL version 1.5 beta (9/26/2002)
|
||||
DLL version 1.5 beta (9/26/2002)
|
||||
* Made close [x] button behave like Cancel (thanks brainsucker)
|
||||
|
||||
DLL version 1.4 beta (9/4/2002)
|
||||
* Added Icon and Bitmap controls (by Amir Szekely)
|
||||
|
||||
DLL version 1.3 beta (8/15/2002)
|
||||
* Added CancelShow (by ORTIM)
|
||||
* Added CancelShow (by ORTIM)
|
||||
* Added pixel transformation for widgets (by ORTIM)
|
||||
|
||||
DLL version 1.2 beta (7/31/2002)
|
||||
* Added CancelEnabled (by ORTIM)
|
||||
* Added CancelConfirmCaption and CancelConfirmIcon (by Amir Szekely)
|
||||
* Added CancelConfirmCaption and CancelConfirmIcon (by Amir Szekely)
|
||||
|
||||
DLL version 1.1 beta (7/22/2002)
|
||||
* Font is now taken from the main NSIS window (by Amir Szekely)
|
||||
|
||||
DLL version 1.0 beta (12/16/2001)
|
||||
* Moved to DLL, no longer need parentwnd ini writing
|
||||
* Tons of changes - no longer fully compatible (see source for a big list)
|
||||
* removed support for silent installers (it seems the old version would bring up it's own dialog)
|
||||
* Moved to DLL, no longer need parentwnd ini writing
|
||||
* Tons of changes - no longer fully compatible (see source for a big list)
|
||||
* removed support for silent installers (it seems the old version would bring up it's own dialog)
|
||||
|
||||
version 1.4 (11/18/2001)
|
||||
* Added Listbox controls.
|
||||
* Added MULTISELECT flag.
|
||||
* Added Listbox controls.
|
||||
* Added MULTISELECT flag.
|
||||
* Made the HWND list for the parent window controls dynamically allocated. This prevents a crash if NSIS ever gets more than 150 controls on it's main window.
|
||||
* The TEXT property of DirRequest control can be used to specify an initial directory. The current directory is automatically selected when clicking the browse button of the DirRequest control.
|
||||
* Added ROOT property to DirRequest which can be used to set the root directory (mostly due to felfert)
|
||||
* Edit controls will now auto scroll (thanks felfert)
|
||||
* Fixed a problem where the window wouldn't draw properly on some systems (thanks felfert)
|
||||
* The TEXT property of DirRequest control can be used to specify an initial directory. The current directory is automatically selected when clicking the browse button of the DirRequest control.
|
||||
* Added ROOT property to DirRequest which can be used to set the root directory (mostly due to felfert)
|
||||
* Edit controls will now auto scroll (thanks felfert)
|
||||
* Fixed a problem where the window wouldn't draw properly on some systems (thanks felfert)
|
||||
|
||||
version 1.3 (11/03/2001)
|
||||
* Got rid of the call to RedrawWindow() because it's no longer needed with the WS_CLIPCHILDREN flag for NSIS.
|
||||
* Got rid of the call to RedrawWindow() because it's no longer needed with the WS_CLIPCHILDREN flag for NSIS.
|
||||
* Removed a few hardcoded limits of buffer sizes
|
||||
* Added Checkbox and RadioButton controls
|
||||
* Added RIGHT and CHECKED flags
|
||||
|
@ -71,10 +77,10 @@ version 1.2.2 (10/30/2001)
|
|||
* Additional size reductions. Further reduced the size down to 8k.
|
||||
* The text parameter to a combobox can now be used to specify the initial value
|
||||
* Changed from InvalidateRect() to RedrawWindow() to force a redraw after a browse dialog
|
||||
* On startup, set the flags of the NSIS window to include WS_CLIPCHILDREN. Otherwise, our controls don't get drawn right.
|
||||
* On startup, set the flags of the NSIS window to include WS_CLIPCHILDREN. Otherwise, our controls don't get drawn right.
|
||||
|
||||
version 1.2.1 (10/28/2001)
|
||||
* Bug fix. ControlID for the caption and the OK button were reused by the first two controls. (Thanks Schultz)
|
||||
* Bug fix. ControlID for the caption and the OK button were reused by the first two controls. (Thanks Schultz)
|
||||
|
||||
version 1.2j (10/28/2001)
|
||||
* 8.5kb from 44kb. heh. (by Justin Frankel)
|
||||
|
@ -98,4 +104,4 @@ version 1.01 (10/25/2001)
|
|||
* Added the license to the documentation
|
||||
|
||||
version 1.0 (10/25/2001)
|
||||
* Barely qualifies as a distribution
|
||||
* Barely qualifies as a distribution
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -54,14 +54,14 @@ h1
|
|||
text-align: center;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
|
||||
h2
|
||||
{
|
||||
font-size: 165%;
|
||||
color: #7A7272;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
|
||||
h3
|
||||
{
|
||||
font-size: 150%;
|
||||
|
@ -85,13 +85,13 @@ a:link, a:visited, a:active
|
|||
color: #294F75;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
a:hover
|
||||
{
|
||||
color: #182634;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
.subtable
|
||||
{
|
||||
border: 0px;
|
||||
|
@ -199,6 +199,14 @@ according to a different rect than NSIS's dialogs rect.</td>
|
|||
<td class="righttable">If 1 is specified the dialog will be mirrored and all texts will be aligned
|
||||
to the right. Use NSIS's $(^RTL) to fill this field, it's the easiest way.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="lefttable"><strong>State</strong></td>
|
||||
<td class="lefttable"><em>(output)</em></td>
|
||||
<td class="righttable">This is not something you have to supply yourself but is set by
|
||||
InstallOptions, before calling your custom page validation function, to the field
|
||||
number of the custom Button control (or other control having the Notify flag) the
|
||||
user pressed, if any.
|
||||
</tr>
|
||||
</table>
|
||||
<p>Each field section has the heading "Field #" where # must be sequential numbers from 1 to
|
||||
NumFields. Each Field section can contain the following values:</p>
|
||||
|
@ -209,14 +217,14 @@ NumFields. Each Field section can contain the following values:</p>
|
|||
<td class="righttable">Type of control to be created. Valid values are "<em>Label</em>",
|
||||
"<em>Text</em>", "<em>Password</em>", "<em>Combobox</em>", "<em>DropList</em>", "<em>Listbox</em>",
|
||||
"<em>CheckBox</em>", "<em>RadioButton</em>", "<em>FileRequest</em>", "<em>DirRequest</em>"
|
||||
"<em>Icon</em>", "<em>Bitmap</em>" or "<em>GroupBox</em>".<br />
|
||||
"<em>Icon</em>", "<em>Bitmap</em>", "<em>GroupBox</em>", "<em>Link</em>" or "<em>Button</em>".<br />
|
||||
<br />
|
||||
A "<em>Label</em>" is used to display static text. (i.e. a caption for a textbox)<br />
|
||||
A "<em>Text</em>" and "<em>Password</em>" accept text input from the user. "<em>Password</em>"
|
||||
masks the input with * characters.<br />
|
||||
A "<em>Combobox</em>" allows the user to type text not in the popup list, a "<em>Droplist</em>"
|
||||
only allows selection of items in the list.<br />
|
||||
A "<em>listbox</em>" shows multiple items and can optionally allow the user to select more than one
|
||||
A "<em>Listbox</em>" shows multiple items and can optionally allow the user to select more than one
|
||||
item.<br />
|
||||
A "<em>CheckBox</em>" control displays a check box with label.<br />
|
||||
A "<em>RadioButton</em>" control displays a radio button with label.<br />
|
||||
|
@ -228,7 +236,9 @@ An "<em>Icon</em>" control displays an icon. Use no Text to use the installer ic
|
|||
A "<em>Bitmap</em>" control displays a bitmap.<br />
|
||||
A "<em>GroupBox</em>" control displays a frame to group controls.<br />
|
||||
A "<em>Link</em>" control displays a static hot text, when the user click the control the contents
|
||||
of <strong>State</strong> (e.g. http://...) will be executed using ShellExecute<br /></td>
|
||||
of <strong>State</strong> (e.g. http://...) will be executed using ShellExecute<br />
|
||||
A "<em>Button</em>" control displays a push button that your NSIS script can act on
|
||||
when pressed. See the "<em>NOTIFY</em>" flag for more information.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="lefttable"><strong>Text</strong></td>
|
||||
|
@ -271,7 +281,7 @@ You should not use this on a "<em>combobox</em>" since the user can not control
|
|||
selected.<br />
|
||||
This should be set to a maximum of 260 for "<em>FileRequest</em>" and "<em>DirRequest</em>"
|
||||
controls.<br />
|
||||
Ignored on "<em>label</em>" controls.</td>
|
||||
Ignored on "<em>Label</em>" controls.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="lefttable"><strong>MinLen</strong></td>
|
||||
|
@ -444,9 +454,16 @@ carriage return be inserted when the user presses the ENTER key while entering t
|
|||
box.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="righttable">NOWORDWRAP</td>
|
||||
<td class="righttable">Used by "<em>Text</em>" controls with multiple-line. Disables the
|
||||
word-wrap that occurs when long lines are entered. Long lines instead scroll off to the
|
||||
side. Specifying the HSCROLL flag also has this effect.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="righttable">HSCROLL</td>
|
||||
<td class="righttable">Used by "<em>Text</em>" controls with multiple-line. Show a horizontal
|
||||
scrollbar.</td>
|
||||
scrollbar and disable word-wrap.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="righttable">VSCROLL</td>
|
||||
|
@ -458,6 +475,16 @@ scrollbar.</td>
|
|||
<td class="righttable">Used by "<em>Text</em>" controls. Prevents the user from entering or editing
|
||||
text in the edit control, but allow the user to select and copy the text.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="righttable">NOTIFY</td>
|
||||
<td class="righttable">Used by "<em>Button</em>", "<em>CheckBox</em>" and "<em>RadioButton</em>"
|
||||
controls. Causes InstallOptions to call your NSIS custom page validation/leave function
|
||||
whenever the button is pressed. Your validation/leave function can read the "<em>State</em>"
|
||||
value from the "<em>Settings</em>" section to determine which custom button has been
|
||||
pressed, if any, and perform some appropriate action followed by an Abort instruction
|
||||
(to tell NSIS to return to the page). The Contrib\InstallOptions folder contains an
|
||||
example script showing how this might be used.</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -691,6 +718,16 @@ FunctionEnd
|
|||
</pre>
|
||||
<h2>Version history</h2>
|
||||
<ul>
|
||||
<li>DLL version 2.3 (12/4/2003)
|
||||
<ul>
|
||||
<li>Added new control type "Button"</li>
|
||||
<li>Added new flag "NOTIFY"</li>
|
||||
<li>Added new flag "NOWORDWRAP" for multi-line text boxes</li>
|
||||
<li>Reduced size down to 12K</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>DLL version 2.2 (4/9/2003)
|
||||
<ul>
|
||||
<li>Added new control "link"</li>
|
||||
|
|
83
Contrib/InstallOptions/testnotify.ini
Normal file
83
Contrib/InstallOptions/testnotify.ini
Normal file
|
@ -0,0 +1,83 @@
|
|||
[Settings]
|
||||
NumFields=9
|
||||
|
||||
[Field 1]
|
||||
Type=Groupbox
|
||||
Text="This is a group box..."
|
||||
Left=0
|
||||
Right=-1
|
||||
Top=0
|
||||
Bottom=-4
|
||||
|
||||
[Field 2]
|
||||
Type=Checkbox
|
||||
Text=Install support for X
|
||||
Flags=NOTIFY
|
||||
State=1
|
||||
Left=10
|
||||
Right=100
|
||||
Top=17
|
||||
Bottom=25
|
||||
|
||||
[Field 3]
|
||||
Type=Checkbox
|
||||
Text=Install support for Y
|
||||
State=0
|
||||
Left=10
|
||||
Right=100
|
||||
Top=30
|
||||
Bottom=38
|
||||
|
||||
[Field 4]
|
||||
Type=Checkbox
|
||||
Text=Install support for Z
|
||||
State=0
|
||||
Left=10
|
||||
Right=100
|
||||
Top=43
|
||||
Bottom=51
|
||||
|
||||
[Field 5]
|
||||
Type=FileRequest
|
||||
Flags=GROUP|FILE_MUST_EXIST|FILE_EXPLORER|FILE_HIDEREADONLY
|
||||
State=C:\poop.poop
|
||||
Filter=Poop Files|*.poop|All files|*.*
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=56
|
||||
Bottom=69
|
||||
|
||||
[Field 6]
|
||||
Type=DirRequest
|
||||
Text=Select a directory...
|
||||
State=C:\Program Files\NSIS
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=74
|
||||
Bottom=87
|
||||
|
||||
[Field 7]
|
||||
Type=Label
|
||||
Text=This is a label...
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=89
|
||||
Bottom=97
|
||||
|
||||
[Field 8]
|
||||
Type=Text
|
||||
Flags=MULTILINE|VSCROLL|WANTRETURN|NOWORDWRAP
|
||||
State="Multiline\r\nedit..."
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=97
|
||||
Bottom=118
|
||||
|
||||
[Field 9]
|
||||
Type=Button
|
||||
Flags=NOTIFY
|
||||
Text=Clear
|
||||
Left=-60
|
||||
Right=-10
|
||||
Top=27
|
||||
Bottom=41
|
105
Contrib/InstallOptions/testnotify.nsi
Normal file
105
Contrib/InstallOptions/testnotify.nsi
Normal file
|
@ -0,0 +1,105 @@
|
|||
; InstallOptions script demonstrating custom buttons
|
||||
;----------------------------------------------------
|
||||
|
||||
!include WinMessages.nsh
|
||||
|
||||
Var hwnd ; Window handle of the custom page
|
||||
|
||||
; The name of the installer
|
||||
Name "InstallOptions Test"
|
||||
|
||||
; The file to write
|
||||
OutFile "TestNotify.exe"
|
||||
|
||||
; Show install details
|
||||
ShowInstDetails show
|
||||
|
||||
; Called before anything else as installer initialises
|
||||
Function .onInit
|
||||
|
||||
; Extract InstallOptions files
|
||||
; $PLUGINSDIR will automatically be removed when the installer closes
|
||||
InitPluginsDir
|
||||
File /oname=$PLUGINSDIR\test.ini "testnotify.ini"
|
||||
|
||||
FunctionEnd
|
||||
|
||||
; Our custom page
|
||||
Page custom ShowCustom LeaveCustom ": Testing InstallOptions"
|
||||
|
||||
Function ShowCustom
|
||||
|
||||
; Initialise the dialog but don't show it yet
|
||||
InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\test.ini"
|
||||
; In this mode InstallOptions returns the window handle so we can use it
|
||||
Pop $hwnd
|
||||
; Now show the dialog and wait for it to finish
|
||||
InstallOptions::show
|
||||
; Finally fetch the InstallOptions status value (we don't care what it is though)
|
||||
Pop $0
|
||||
|
||||
FunctionEnd
|
||||
|
||||
Function LeaveCustom
|
||||
|
||||
; At this point the user has either pressed Next or one of our custom buttons
|
||||
; We find out which by reading from the INI file
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Settings" "State"
|
||||
StrCmp $0 0 validate ; Next button?
|
||||
StrCmp $0 2 supportx ; "Install support for X"?
|
||||
StrCmp $0 9 clearbtn ; "Clear" button?
|
||||
Abort ; Return to the page
|
||||
|
||||
supportx:
|
||||
; Make the FileRequest field depend on the first checkbox
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 2" "State"
|
||||
GetDlgItem $1 $hwnd 1204 ; PathRequest control (1200 + field 5 - 1)
|
||||
EnableWindow $1 $0
|
||||
GetDlgItem $1 $hwnd 1205 ; ... button (the following control)
|
||||
EnableWindow $1 $0
|
||||
Abort ; Return to the page
|
||||
|
||||
clearbtn:
|
||||
; Clear all text fields
|
||||
GetDlgItem $1 $hwnd 1204 ; PathRequest control (1200 + field 5 - 1)
|
||||
SendMessage $1 ${WM_SETTEXT} 0 "STR:"
|
||||
GetDlgItem $1 $hwnd 1206 ; DirRequest control (1200 + field 6 - 1 + 1 browse button)
|
||||
SendMessage $1 ${WM_SETTEXT} 0 "STR:"
|
||||
GetDlgItem $1 $hwnd 1209 ; DirRequest control (1200 + field 8 - 1 + 2 browse buttons)
|
||||
SendMessage $1 ${WM_SETTEXT} 0 "STR:"
|
||||
Abort ; Return to the page
|
||||
|
||||
validate:
|
||||
; At this point we know the Next button was pressed, so perform any validation
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 2" "State"
|
||||
StrCmp $0 1 done
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 3" "State"
|
||||
StrCmp $0 1 done
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 4" "State"
|
||||
StrCmp $0 1 done
|
||||
MessageBox MB_ICONEXCLAMATION|MB_OK "You must select at least one install option!"
|
||||
Abort
|
||||
done:
|
||||
|
||||
FunctionEnd
|
||||
|
||||
; Installation page
|
||||
Page instfiles
|
||||
|
||||
Section
|
||||
|
||||
;Get Install Options dialog user input
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 2" "State"
|
||||
DetailPrint "Install X=$0"
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 3" "State"
|
||||
DetailPrint "Install Y=$0"
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 4" "State"
|
||||
DetailPrint "Install Z=$0"
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 5" "State"
|
||||
DetailPrint "File=$0"
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 6" "State"
|
||||
DetailPrint "Dir=$0"
|
||||
ReadINIStr $0 "$PLUGINSDIR\test.ini" "Field 8" "State"
|
||||
DetailPrint "Info=$0"
|
||||
|
||||
SectionEnd
|
|
@ -79,9 +79,9 @@ Page custom PageReinstall PageLeaveReinstall
|
|||
|
||||
;--------------------------------
|
||||
;Reserve Files
|
||||
|
||||
|
||||
;These files should be inserted before other files in the data block
|
||||
|
||||
|
||||
ReserveFile "makensis.ini"
|
||||
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
|
||||
|
||||
|
@ -104,7 +104,7 @@ Section "NSIS Core Files (required)" SecCore
|
|||
File ..\makensisw.exe
|
||||
File ..\license.txt
|
||||
File ..\NSIS.chm
|
||||
|
||||
|
||||
File ..\NSIS.exe
|
||||
IfFileExists $INSTDIR\nsisconf.nsi "" +2
|
||||
Rename $INSTDIR\nsisconf.nsi $INSTDIR\nsisconf.nsh
|
||||
|
@ -119,23 +119,23 @@ Section "NSIS Core Files (required)" SecCore
|
|||
|
||||
SetOutPath $INSTDIR\Contrib\Makensisw
|
||||
File ..\contrib\makensisw\*.txt
|
||||
|
||||
|
||||
SetOutPath $INSTDIR\Menu
|
||||
File ..\Menu\*.html
|
||||
SetOutPath $INSTDIR\Menu\images
|
||||
File ..\Menu\images\*.gif
|
||||
|
||||
|
||||
Delete $INSTDIR\makensis.htm
|
||||
Delete $INSTDIR\Docs\*.html
|
||||
Delete $INSTDIR\Docs\style.css
|
||||
RMDir $INSTDIR\Docs
|
||||
|
||||
|
||||
ReadRegStr $R0 HKCR ".nsi" ""
|
||||
StrCmp $R0 "NSISFile" 0 no_nsioldassoc
|
||||
DeleteRegKey HKCR "NSISFile"
|
||||
Goto nsi
|
||||
no_nsioldassoc:
|
||||
|
||||
|
||||
StrCmp $R0 "NSIS.Script" 0 no_nsi
|
||||
nsi:
|
||||
WriteRegStr HKCR ".nsi" "" "NSIS.Script"
|
||||
|
@ -144,20 +144,20 @@ Section "NSIS Core Files (required)" SecCore
|
|||
ReadRegStr $R0 HKCR "NSIS.Script\shell\open\command" ""
|
||||
StrCmp $R0 "" 0 no_nsiopen
|
||||
WriteRegStr HKCR "NSIS.Script\shell" "" "open"
|
||||
WriteRegStr HKCR "NSIS.Script\shell\open\command" "" 'notepad.exe "%1"'
|
||||
WriteRegStr HKCR "NSIS.Script\shell\open\command" "" 'notepad.exe "%1"'
|
||||
no_nsiopen:
|
||||
WriteRegStr HKCR "NSIS.Script\shell\compile" "" "Compile NSIS Script"
|
||||
WriteRegStr HKCR "NSIS.Script\shell\compile\command" "" '"$INSTDIR\makensisw.exe" "%1"'
|
||||
WriteRegStr HKCR "NSIS.Script\shell\compile-compressor" "" "Compile NSIS Script (Choose Compressor)"
|
||||
WriteRegStr HKCR "NSIS.Script\shell\compile-compressor\command" "" '"$INSTDIR\makensisw.exe" /ChooseCompressor "%1"'
|
||||
no_nsi:
|
||||
|
||||
|
||||
ReadRegStr $R0 HKCR ".nsh" ""
|
||||
StrCmp $R0 "NSHFile" 0 no_nsholdassoc
|
||||
DeleteRegKey HKCR "NSHFile"
|
||||
Goto nsh
|
||||
no_nsholdassoc:
|
||||
|
||||
|
||||
StrCmp ".nsh" "NSIS.Header" 0 no_nsh
|
||||
nsh:
|
||||
WriteRegStr HKCR ".nsh" "" "NSIS.Header"
|
||||
|
@ -166,7 +166,7 @@ Section "NSIS Core Files (required)" SecCore
|
|||
ReadRegStr $R0 HKCR "NSIS.Header\shell\open\command" ""
|
||||
StrCmp $R0 "" 0 no_nshopen
|
||||
WriteRegStr HKCR "NSIS.Header\shell" "" "open"
|
||||
WriteRegStr HKCR "NSIS.Header\shell\open\command" "" 'notepad.exe "%1"'
|
||||
WriteRegStr HKCR "NSIS.Header\shell\open\command" "" 'notepad.exe "%1"'
|
||||
no_nshopen:
|
||||
no_nsh:
|
||||
|
||||
|
@ -228,11 +228,11 @@ Section "Desktop Shortcut" SecShortcuts
|
|||
CreateShortCut "$SMPROGRAMS\NSIS\NSIS Documentation.lnk" "$INSTDIR\NSIS.chm"
|
||||
WriteINIStr "$SMPROGRAMS\NSIS\NSIS Site.url" "InternetShortcut" "URL" "http://nsis.sourceforge.net/"
|
||||
CreateShortCut "$SMPROGRAMS\NSIS\Uninstall NSIS.lnk" "$INSTDIR\uninst-nsis.exe"
|
||||
|
||||
|
||||
!endif
|
||||
|
||||
CreateShortCut "$DESKTOP\Nullsoft Install System.lnk" "$INSTDIR\NSIS.exe"
|
||||
|
||||
|
||||
SectionEnd
|
||||
|
||||
SubSection "User Interfaces" SecInterfaces
|
||||
|
@ -280,7 +280,7 @@ Section "Modern User Interface" SecInterfacesModernUI
|
|||
|
||||
SetOutPath $INSTDIR\Include
|
||||
File "..\Include\MUI.nsh"
|
||||
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section "Default User Interface" SecInterfacesDefaultUI
|
||||
|
@ -362,10 +362,10 @@ Section "NSIS Update" SecToolsUpdate
|
|||
SetOutPath $INSTDIR\Bin
|
||||
File ..\Bin\NSISUpdate.exe
|
||||
File ..\Bin\InstallCVSData.exe
|
||||
|
||||
|
||||
IfFileExists "$INSTDIR\CVS\Root" 0 +2
|
||||
Exec '"$INSTDIR\Bin\InstallCVSData.exe"'
|
||||
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section "Zip2Exe" SecToolsZ2E
|
||||
|
@ -478,7 +478,7 @@ SectionEnd
|
|||
Section "InstallOptions" SecPluginsIO
|
||||
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Installing Plug-inss | InstallOptions..."
|
||||
DetailPrint "Installing Plug-ins | InstallOptions..."
|
||||
SetDetailsPrint listonly
|
||||
|
||||
SectionIn 1 2
|
||||
|
@ -492,6 +492,8 @@ Section "InstallOptions" SecPluginsIO
|
|||
File ..\contrib\installoptions\test.nsi
|
||||
File ..\contrib\installoptions\testlink.ini
|
||||
File ..\contrib\installoptions\testlink.nsi
|
||||
File ..\contrib\installoptions\testnotify.ini
|
||||
File ..\contrib\installoptions\testnotify.nsi
|
||||
SectionEnd
|
||||
|
||||
Section "Math" SecPluginsMath
|
||||
|
@ -983,17 +985,17 @@ Section -post
|
|||
; * Always install default icons / bitmaps
|
||||
|
||||
!insertmacro SectionFlagIsSet ${SecInterfacesModernUI} ${SF_SELECTED} mui nomui
|
||||
|
||||
mui:
|
||||
|
||||
mui:
|
||||
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Configurating Modern UI..."
|
||||
SetDetailsPrint listonly
|
||||
|
||||
!insertmacro SectionFlagIsSet ${SecLangFiles} ${SF_SELECTED} langfiles nolangfiles
|
||||
|
||||
|
||||
nolangfiles:
|
||||
|
||||
|
||||
SetOutPath "$INSTDIR\Contrib\Language files"
|
||||
File "..\Contrib\Language files\English.nlf"
|
||||
SetOutPath "$INSTDIR\Contrib\Modern UI\Language files"
|
||||
|
@ -1003,9 +1005,9 @@ Section -post
|
|||
langfiles:
|
||||
|
||||
!insertmacro SectionFlagIsSet ${SecGraphics} ${SF_SELECTED} graphics nographics
|
||||
|
||||
|
||||
nographics:
|
||||
|
||||
|
||||
SetOutPath $INSTDIR\Contrib\Graphics
|
||||
SetOutPath $INSTDIR\Contrib\Graphics\Checks
|
||||
File "..\Contrib\Graphics\Checks\modern.bmp"
|
||||
|
@ -1176,7 +1178,7 @@ Section -post
|
|||
SetDetailsPrint none
|
||||
RMDir $INSTDIR\Contrib\Source
|
||||
SetDetailsPrint lastused
|
||||
|
||||
|
||||
WriteUninstaller $INSTDIR\uninst-nsis.exe
|
||||
|
||||
SetDetailsPrint both
|
||||
|
@ -1250,10 +1252,10 @@ FunctionEnd
|
|||
Function PageReinstall
|
||||
|
||||
ReadRegStr $R0 HKLM "Software\NSIS" ""
|
||||
|
||||
|
||||
StrCmp $R0 "" 0 +2
|
||||
Abort
|
||||
|
||||
|
||||
;Detect version
|
||||
ReadRegDWORD $R0 HKLM "Software\NSIS" "VersionMajor"
|
||||
IntCmp $R0 ${VER_MAJOR} minor_check new_version older_version
|
||||
|
@ -1296,43 +1298,43 @@ Function PageReinstall
|
|||
reinst_start:
|
||||
|
||||
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "makensis.ini"
|
||||
|
||||
|
||||
FunctionEnd
|
||||
|
||||
Function PageLeaveReinstall
|
||||
|
||||
|
||||
!insertmacro MUI_INSTALLOPTIONS_READ $R1 "makensis.ini" "Field 2" "State"
|
||||
|
||||
StrCmp $R0 "1" 0 +2
|
||||
StrCmp $R1 "1" reinst_uninstall reinst_done
|
||||
|
||||
|
||||
StrCmp $R0 "2" 0 +3
|
||||
StrCmp $R1 "1" reinst_done reinst_uninstall
|
||||
|
||||
reinst_uninstall:
|
||||
ReadRegStr $R1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "UninstallString"
|
||||
|
||||
|
||||
;Run uninstaller
|
||||
HideWindow
|
||||
|
||||
|
||||
ClearErrors
|
||||
ExecWait '$R1 _?=$INSTDIR'
|
||||
|
||||
|
||||
IfErrors no_remove_uninstaller
|
||||
IfFileExists "$INSTDIR\makensis.exe" no_remove_uninstaller
|
||||
|
||||
|
||||
Delete $R1
|
||||
RMDir $INSTDIR
|
||||
|
||||
|
||||
no_remove_uninstaller:
|
||||
|
||||
|
||||
StrCmp $R0 "2" 0 +2
|
||||
Quit
|
||||
|
||||
|
||||
BringToFront
|
||||
|
||||
reinst_done:
|
||||
|
||||
|
||||
FunctionEnd
|
||||
|
||||
!macro secSelected SEC
|
||||
|
@ -1415,18 +1417,18 @@ Section Uninstall
|
|||
SetDetailsPrint textonly
|
||||
DetailPrint "Deleting Registry Keys..."
|
||||
SetDetailsPrint listonly
|
||||
|
||||
|
||||
ReadRegStr $R0 HKCR ".nsi" ""
|
||||
StrCmp $R0 "NSIS.Script" 0 +2
|
||||
DeleteRegKey HKCR ".nsi"
|
||||
|
||||
|
||||
ReadRegStr $R0 HKCR ".nsh" ""
|
||||
StrCmp $R0 "NSIS.Header" 0 +2
|
||||
DeleteRegKey HKCR ".nsh"
|
||||
|
||||
DeleteRegKey HKCR "NSIS.Script"
|
||||
DeleteRegKey HKCR "NSIS.Header"
|
||||
|
||||
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS"
|
||||
DeleteRegKey HKLM "Software\NSIS"
|
||||
|
||||
|
@ -1444,7 +1446,7 @@ Section Uninstall
|
|||
Delete $INSTDIR\nsisconf.nsi
|
||||
Delete $INSTDIR\nsisconf.nsh
|
||||
Delete $INSTDIR\NSIS.chm
|
||||
RMDIR /r $INSTDIR\CVS
|
||||
RMDIR /r $INSTDIR\CVS
|
||||
RMDir /r $INSTDIR\Contrib
|
||||
RMDir /r $INSTDIR\Menu
|
||||
RMDir /r $INSTDIR\Source
|
||||
|
@ -1456,4 +1458,4 @@ Section Uninstall
|
|||
|
||||
SetDetailsPrint both
|
||||
|
||||
SectionEnd
|
||||
SectionEnd
|
||||
|
|
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue