InstallOptions 2
Introduction
- InstallOptions is a NSIS plugin which allows you to create custom pages for NSIS installers, to
-prompt the user for extra information.
- InstallOptions will create a dialog which will be displayed inside the NSIS window. The controls
-on the dialog can be defined in an INI file.
- NSIS 2 has a new page system, which allows you to add custom pages to your installer without
-messing with Prev/Next functions. With the new plugin system, you also don't have to worry anymore
-about extracting and deleting the DLL file. When you store the INI files in the plugins directory,
-NSIS will also delete them automatically.
- This new version of InstallOptions has been designed for NSIS 2. It supports customized user
-interfaces and custom font and DPI settings.
+
+ InstallOptions is a NSIS plugin which allows you to create
+custom pages for NSIS installers, to prompt the user for extra
+information.
+ InstallOptions will create a dialog which will be displayed
+inside the NSIS window. The controls on the dialog can be defined
+in an INI file.
+ NSIS 2 has a new page system, which allows you to add custom
+pages to your installer without messing with Prev/Next functions.
+With the new plugin system, you also don't have to worry anymore
+about extracting and deleting the DLL file. When you store the INI
+files in the plugins directory, NSIS will also delete them
+automatically.
+ This new version of InstallOptions has been designed for NSIS 2.
+It supports customized user interfaces and custom font and DPI
+settings.
+
INI File
- The INI file has one required section. This section includes the number of controls to be
-created as well as general window attributes. The INI file also includes a variable number of Field
+
+ The INI file has one required section. This section includes the
+number of controls to be created as well as general window
+attributes. The INI file also includes a variable number of Field
sections which are used to create the controls to be displayed.
- The required section is named "Settings". It can contain the following values:
+ The required section is named "Settings". It can
+contain the following values:
NumFields |
(required) |
-The number of control elements to be displayed on the dialog window. |
+The number of control elements to be
+displayed on the dialog window. |
Title |
(optional) |
-If specified, gives the text to set the titlebar to. Otherwise, the titlebar
-text is not changed. |
+If specified, gives the text to set the
+titlebar to. Otherwise, the titlebar text is not changed. |
CancelEnabled |
(optional) |
-If specified, overrides NSIS settings and enables or disables the cancel
-button. If set to 1, the cancel button will be enabled. If set to 0, the cancel button will be
+ | If specified, overrides NSIS settings and
+enables or disables the cancel button. If set to 1, the cancel
+button will be enabled. If set to 0, the cancel button will be
disabled. |
CancelShow |
(optional) |
-If specified, overrides NSIS settings and shows or hides the cancel button
-If set to 1, the cancel button will be shown. If set to 0, the cancel button will be hidden. |
+If specified, overrides NSIS settings and
+shows or hides the cancel button If set to 1, the cancel button
+will be shown. If set to 0, the cancel button will be hidden. |
BackEnabled |
(optional) |
-If specified, overrides NSIS settings and enables or disables the back
-button. If set to 1, the back button will be enabled. If set to 0, the back button will be
+ | If specified, overrides NSIS settings and
+enables or disables the back button. If set to 1, the back button
+will be enabled. If set to 0, the back button will be
disabled. |
CancelButtonText |
(optional) |
-Overrides the text for the cancel button. If not specified, the cancel
-button text will not be changed. |
+Overrides the text for the cancel button. If
+not specified, the cancel button text will not be changed. |
NextButtonText |
(optional) |
-Overrides the text for the next button. If not specified, the next button
-text will not be changed. |
+Overrides the text for the next button. If
+not specified, the next button text will not be changed. |
BackButtonText |
(optional) |
-Overrides the text for the back button. If not specified, the back button
-text will not be changed. |
+Overrides the text for the back button. If
+not specified, the back button text will not be changed. |
Rect |
(optional) |
-Overrides the default rect ID to run over. This will make IO resize itself
-according to a different rect than NSIS's dialogs rect. |
+Overrides the default rect ID to run over.
+This will make IO resize itself according to a different rect than
+NSIS's dialogs rect. |
RTL |
(optional) |
-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. |
+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. |
State |
(output) |
-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. |
+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. |
- Each field section has the heading "Field #" where # must be sequential numbers from 1 to
-NumFields. Each Field section can contain the following values:
+ Each field section has the heading "Field #" where # must be
+sequential numbers from 1 to NumFields. Each Field section can
+contain the following values:
Type |
(required) |
-Type of control to be created. Valid values are "Label",
-"Text", "Password", "Combobox", "DropList", "Listbox",
-"CheckBox", "RadioButton", "FileRequest", "DirRequest"
-"Icon", "Bitmap", "GroupBox", "Link" or
+ | Type of control to be created. Valid values
+are "Label", "Text", "Password",
+"Combobox", "DropList", "Listbox",
+"CheckBox", "RadioButton",
+"FileRequest", "DirRequest" "Icon",
+"Bitmap", "GroupBox", "Link" or
"Button".
-A "Label" is used to display static text. (i.e. a caption for a textbox)
-A "Text" and "Password" accept text input from the user. "Password"
-masks the input with * characters.
-A "Combobox" allows the user to type text not in the popup list, a "Droplist"
-only allows selection of items in the list.
-A "Listbox" shows multiple items and can optionally allow the user to select more than one
-item.
-A "CheckBox" control displays a check box with label.
-A "RadioButton" control displays a radio button with label.
-A "FileRequest" control displays a textbox and a browse button. Clicking the browse button
-will display a file requester where the user can browse for a file.
-A "DirRequest" control displays a textbox and a browse button. Clicking the browse button
-will display a directory requester where the user can browse for a directory.
-An "Icon" control displays an icon. Use no Text to use the installer icon.
+A "Label" is used to display static text. (i.e. a caption
+for a textbox)
+A "Text" and "Password" accept text input from
+the user. "Password" masks the input with *
+characters.
+A "Combobox" allows the user to type text not in the popup
+list, a "Droplist" only allows selection of items in the
+list.
+A "Listbox" shows multiple items and can optionally allow
+the user to select more than one item.
+A "CheckBox" control displays a check box with
+label.
+A "RadioButton" control displays a radio button with
+label.
+A "FileRequest" control displays a textbox and a browse
+button. Clicking the browse button will display a file requester
+where the user can browse for a file.
+A "DirRequest" control displays a textbox and a browse
+button. Clicking the browse button will display a directory
+requester where the user can browse for a directory.
+An "Icon" control displays an icon. Use no Text to use the
+installer icon.
A "Bitmap" control displays a bitmap.
-A "GroupBox" control displays a frame to group controls.
-A "Link" control displays a static hot text. When the user clicks the control the contents
-of State (e.g. http://...) will be executed using ShellExecute. Alternatively
-State can be omitted and the NOTIFY flag used to have your NSIS script
-called. See the "NOTIFY" flag below for more information.
-A "Button" control displays a push button that can be used in the same way as the
-"Link" control above. |
+A "GroupBox" control displays a frame to group
+controls.
+A "Link" control displays a static hot text. When the user
+clicks the control the contents of State (e.g.
+http://...) will be executed using ShellExecute. Alternatively
+State can be omitted and the NOTIFY flag
+used to have your NSIS script called. See the "NOTIFY"
+flag below for more information.
+A "Button" control displays a push button that can be used
+in the same way as the "Link" control above.
Text |
(optional) |
-Specifies the caption of a label, checkbox, or radio button control. For
-icon and bitmaps control this specifies the path to the image.
+ | Specifies the caption of a label, checkbox,
+or radio button control. For icon and bitmaps control this
+specifies the path to the image.
-Note: For labels, \r\n will be converted to a newline. To use a back-slash in your
-text you have to escape it using another back-slash - \\. Described below
-are NSIS functions for converting text to/from this format. |
+Note: For labels, \r\n will be converted to a
+newline. To use a back-slash in your text you have to escape it
+using another back-slash - \\. Described below are NSIS functions for converting text
+to/from this format.
State |
(optional) |
-Specifies the state of the control. This is updated when the user closes the
-window, so you can read from it from NSIS. For edit texts and dir and file request boxes, this is
-the string that is specified. For radio button and check boxes, this can be '0' or '1' (for
-unchecked or checked). For list boxes, combo boxes and drop lists this is the selected items
-separated by pipes ('|'). For Links and Buttons this can specify something to be executed or opened
-(using ShellExecute).
+ | Specifies the state of the control. This is
+updated when the user closes the window, so you can read from it
+from NSIS. For edit texts and dir and file request boxes, this is
+the string that is specified. For radio button and check boxes,
+this can be '0' or '1' (for unchecked or checked). For list boxes,
+combo boxes and drop lists this is the selected items separated by
+pipes ('|'). For Links and Buttons this can specify something to be
+executed or opened (using ShellExecute).
-Note: For Text fields with the MULTILINE flag, \r\n will be converted to a
-newline. To use a back-slash in your text you have to escape it using another back-slash - \\.
-Described below are NSIS functions for converting text to/from this
-format. |
+Note: For Text fields with the MULTILINE flag,
+\r\n will be converted to a newline. To use a back-slash in your
+text you have to escape it using another back-slash - \\. Described
+below are NSIS functions for converting
+text to/from this format.
ListItems |
(optional) |
-A list of items to display in a combobox, droplist, or listbox.
-This is a single line of text with each item separated by a pipe character '|' |
+A list of items to display in a combobox,
+droplist, or listbox.
+This is a single line of text with each item separated by a pipe
+character '|' |
MaxLen |
(optional) |
-Causes validation on the selected control to limit the maximum length of
-text.
-If the user specifies more text than this, a message box will appear when they click "OK" and the
-dialog will not be dismissed.
-You should not use this on a "combobox" since the user can not control what is
-selected.
-This should be set to a maximum of 260 for "FileRequest" and "DirRequest"
-controls.
+ | Causes validation on the selected control to
+limit the maximum length of text.
+If the user specifies more text than this, a message box will
+appear when they click "OK" and the dialog will not be
+dismissed.
+You should not use this on a "combobox" since the user can
+not control what is selected.
+This should be set to a maximum of 260 for "FileRequest"
+and "DirRequest" controls.
Ignored on "Label" controls. |
MinLen |
(optional) |
-Causes validation on the selected control to force the user to enter a
-minimum amount of text.
-If the user specifies less text than this, a message box will appear when they click "OK" and the
-dialog will not be dismissed.
-Unlike MaxLen, this is useful for "Combobox" controls. By setting this to a value of "1"
-the program will force the user to select an item.
+ | Causes validation on the selected control to
+force the user to enter a minimum amount of text.
+If the user specifies less text than this, a message box will
+appear when they click "OK" and the dialog will not be
+dismissed.
+Unlike MaxLen, this is useful for "Combobox" controls. By
+setting this to a value of "1" the program will force the user to
+select an item.
Ignored on "Label" controls. |
ValidateText |
(optional) |
-If the field fails the test for "MinLen" or "MaxLen", a
-messagebox will be displayed with this text.
+ | If the field fails the test for
+"MinLen" or "MaxLen", a messagebox will be
+displayed with this text.
-Note: \r\n will be converted to a newline, two back-slashes will be converted to
-one - \\. Described below are NSIS functions for converting text to/from
-this format. |
+Note: \r\n will be converted to a newline, two
+back-slashes will be converted to one - \\. Described below are NSIS functions for converting text
+to/from this format.
Left
@@ -313,50 +357,59 @@ Right
Top
Bottom |
(required) |
-The position on the dialog where this control appears. All sizes should be
-set in dialog units. To get the right dimensions for your controls, design your dialog using a
+ | The position on the dialog where this
+control appears. All sizes should be set in dialog units. To get
+the right dimensions for your controls, design your dialog using a
resource editor and copy the dimensions to the INI file.
-Note: You can specify negative coordinates to specify the distance from the right
-or bottom edge.
+Note: You can specify negative coordinates to
+specify the distance from the right or bottom edge.
-Note (2): For combobox or droplist, the "bottom" value is not used in the
-same way.
-In this case, the bottom value is the maximum size of the window when the pop-up list is being
-displayed. All other times, the combobox is automatically sized to be one element tall. If you have
-trouble where you can not see the combobox drop-down, then check the bottom value and ensure it is
-large enough. A rough guide for the height required is the number of items in the list multiplied
+Note (2): For combobox or droplist, the
+"bottom" value is not used in the same way.
+In this case, the bottom value is the maximum size of the window
+when the pop-up list is being displayed. All other times, the
+combobox is automatically sized to be one element tall. If you have
+trouble where you can not see the combobox drop-down, then check
+the bottom value and ensure it is large enough. A rough guide for
+the height required is the number of items in the list multiplied
by 8, plus 20.
-Note (3): FileRequest and DirRequest controls will allocate 15 dialog units to the
-browse button. Make this control wide enough the contents of the textbox can be seen. |
+Note (3): FileRequest and DirRequest controls will
+allocate 15 dialog units to the browse button. Make this control
+wide enough the contents of the textbox can be seen.
Filter |
(optional) |
-Specifies the filter to be used in the "FileRequest" control.
-This is constructed by putting pairs of entries together, each item separated by a |
-character.
-The first value in each pair is the text to display for the filter.
+ | Specifies the filter to be used in the
+"FileRequest" control.
+This is constructed by putting pairs of entries together, each item
+separated by a | character.
+The first value in each pair is the text to display for the
+filter.
The second value is the pattern to use to match files.
For example, you might specify:
Filter=Text Files|*.txt|Programs|*.exe;*.com|All Files|*.*
If not specified, then the filter defaults to All Files|*.*
-Note: you should not put any extra spaces around the | characters. |
+Note: you should not put any extra spaces around
+the | characters.
Root |
(optional) |
-Used by DirRequest controls to specify the root directory
-of the search. By default, this allows the user to browse any directory on the computer. This will
+ | Used by DirRequest controls
+to specify the root directory of the search. By default, this
+allows the user to browse any directory on the computer. This will
limit the search to a particular directory on the system. |
Flags |
(optional) |
-This specifies additional flags for the display of different controls. Each
-value should be separated by a | character, and you should be careful not to put any spaces around
+ | This specifies additional flags for the
+display of different controls. Each value should be separated by a
+| character, and you should be careful not to put any spaces around
the | character.
@@ -365,79 +418,91 @@ the | character.
REQ_SAVE |
-This causes "FileRequest" controls to display a Save As dialog. If
-not specified, an Open dialog is used. |
+This causes "FileRequest" controls
+to display a Save As dialog. If not specified, an Open dialog is
+used. |
FILE_MUST_EXIST |
-Used by "FileRequest" to determine if the selected file must
-exist.
+ | Used by "FileRequest" to determine
+if the selected file must exist.
This only applies if an "Open" dialog is being displayed.
-This currently does not force the file to exist other than through the browse button. |
+This currently does not force the file to exist other than through
+the browse button.
FILE_EXPLORER |
-Used by "FileRequest", enables new file request look
-(recommended) |
+Used by "FileRequest", enables new
+file request look (recommended) |
FILE_HIDEREADONLY |
-Used by "FileRequest", hides "open read only" checkbox in open
-dialog. |
+Used by "FileRequest", hides "open
+read only" checkbox in open dialog. |
WARN_IF_EXIST |
-Used by "FileRequest" to display a warning message if the selected
-file already exists.
-The warning message is only displayed for files selected with the browse button. |
+Used by "FileRequest" to display a
+warning message if the selected file already exists.
+The warning message is only displayed for files selected with the
+browse button. |
PATH_MUST_EXIST |
-Used by "FileRequest" to force the path to exist. Prevents the user
-from typing a non-existent path into the browse dialog window.
+ | Used by "FileRequest" to force the
+path to exist. Prevents the user from typing a non-existent path
+into the browse dialog window.
This only validates path's selected with the browse button. |
PROMPT_CREATE |
-Used by "FileRequest" to display a warning if the selected file
-does not exist. However, it still allows the user to select the file.
-This only displays the warning for files selected with the browse button.
+ | Used by "FileRequest" to display a
+warning if the selected file does not exist. However, it still
+allows the user to select the file.
+This only displays the warning for files selected with the browse
+button.
Doesn't work along with REQ_SAVE. |
RIGHT |
-Used by "Checkbox" and "Radiobutton" controls to specify
-you want the checkbox to the right of the text instead of the left as is the default. |
+Used by "Checkbox" and
+"Radiobutton" controls to specify you want the checkbox to
+the right of the text instead of the left as is the default. |
MULTISELECT |
-Used by "Listbox" controls. Turns string selection on or off each
-time the user clicks or double-clicks a string in the list box. The user can select any number of
-strings. If this flag and EXTENDEDSELCT are not specified, only one item can be selected from the
-list. |
+Used by "Listbox" controls. Turns
+string selection on or off each time the user clicks or
+double-clicks a string in the list box. The user can select any
+number of strings. If this flag and EXTENDEDSELCT are not
+specified, only one item can be selected from the list. |
EXTENDEDSELCT |
-Used by "Listbox" controls. Allows multiple items to be selected by
-using the SHIFT key and the mouse or special key combinations. If this flag and MULTISELECT are not
+ | Used by "Listbox" controls. Allows
+multiple items to be selected by using the SHIFT key and the mouse
+or special key combinations. If this flag and MULTISELECT are not
specified, only one item can be selected from the list. |
RESIZETOFIT |
-This causes "Bitmap" controls to resize the image to the size of
-the control. Also useful to support custom DPI settings. |
+This causes "Bitmap" controls to
+resize the image to the size of the control. Also useful to support
+custom DPI settings. |
GROUP |
-Add this flag to the first control of a group of controls to group them.
-Grouping controls allows you to create multiple groups of radio button and makes keyboard
+ | Add this flag to the first control of a
+group of controls to group them. Grouping controls allows you to
+create multiple groups of radio button and makes keyboard
navigation using arrow keys easier. |
NOTABSTOP |
-Do not stop on the control when the user pressed the Tab key. Add NOTABSTOP
-to all controls of a group except the first one to allow navigation between groups with the Tab
-key. |
+Do not stop on the control when the user
+pressed the Tab key. Add NOTABSTOP to all controls of a group
+except the first one to allow navigation between groups with the
+Tab key. |
DISABLED |
@@ -445,30 +510,33 @@ key.
ONLY_NUMBERS |
-Used by "Text" controls. Forces the user to enter only numbers into
-the edit box. |
+Used by "Text" controls. Forces the
+user to enter only numbers into the edit box. |
MULTILINE |
-Used by "Text" controls. Causes the control to accept
-multiple-lines. |
+Used by "Text" controls. Causes the
+control to accept multiple-lines. |
WANTRETURN |
-Used by "Text" controls with multiple-line. Specifies that a
-carriage return be inserted when the user presses the ENTER key while entering text into the text
+ | Used by "Text" controls with
+multiple-line. Specifies that a carriage return be inserted when
+the user presses the ENTER key while entering text into the text
box. |
NOWORDWRAP |
-Used by "Text" 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. |
+Used by "Text" 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. |
HSCROLL |
-Show a horizontal scrollbar. When used by "Text" controls with
-multiple-lines this also disables word-wrap. |
+Show a horizontal scrollbar. When used by
+"Text" controls with multiple-lines this also disables
+word-wrap. |
VSCROLL |
@@ -476,18 +544,23 @@ multiple-lines this also disables word-wrap.
READONLY |
-Used by "Text" controls. Prevents the user from entering or editing
-text in the edit control, but allow the user to select and copy the text. |
+Used by "Text" controls. Prevents
+the user from entering or editing text in the edit control, but
+allow the user to select and copy the text. |
NOTIFY |
-Used by "Button", "Link", "CheckBox",
-"RadioButton", "ListBox" and "DropList" controls. Causes InstallOptions
-to call your NSIS custom page validation/leave function whenever the control's selection changes.
-Your validation/leave function can read the "State" value from the "Settings"
-section to determine which control caused the notification, 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. |
+Used by "Button", "Link",
+"CheckBox", "RadioButton", "ListBox" and
+"DropList" controls. Causes InstallOptions to call your
+NSIS custom page validation/leave function whenever the control's
+selection changes. Your validation/leave function can read the
+"State" value from the "Settings" section to
+determine which control caused the notification, 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. |
|
@@ -495,16 +568,25 @@ Contrib\InstallOptions folder contains an example script showing how this might
TxtColor |
(optional) |
-Used by Link controls to specify the foreground color of
-the text. Format: 0xBBRRGG (hexadecimal). |
+Used by Link controls to
+specify the foreground color of the text. Format: 0xBBRRGG
+(hexadecimal). |
+
How to use
+
Modern UI
- For information about using InstallOptions with the Modern UI, have a look at the Modern UI documentation.
+
Extract the INI File
- First, you have to extract the INI files for the dialogs in the .onInit function:
+
+ First, you have to extract the INI files for the dialogs in the
+.onInit function:
Function .onInit
@@ -512,18 +594,20 @@ Function .onInit
File /oname=$PLUGINSDIR\test.ini test.ini
FunctionEnd
-
+
Call the DLL
- You can call InstallOptions in a page function, check the NSIS documentation for information about the page system.
-Example:
+
+ You can call InstallOptions in a page function, check the
+NSIS documentation for
+information about the page system. Example:
Page custom SetCustom ValidateCustom
The InstallOptions DLL has three functions:
- dialog - Creates the dialog immediately
-- initDialog - Creates the dialog in memory, does not show it
+- initDialog - Creates the dialog in memory, does not show
+it
- show - Shows a dialog created in memory
Usually, you only need to use the dialog function:
@@ -538,22 +622,26 @@ Function SetCustom ;FunctionName defined with Page command
Pop $R0
FunctionEnd
-
+
Get the input
- To get the input of the user, read the State value of a Field using ReadINIStr:
+
+ To get the input of the user, read the State value of a Field
+using ReadINIStr:
ReadINIStr $R0 "$PLUGINSDIR\test.ini" "Field 1" "State"
Note:
- Some InstallOptions values are escaped (in a similar manner to "C" strings) to allow characters
-to be used that are not normally valid in INI file values. The affected values are:
+ Some InstallOptions values are escaped (in a similar manner to
+"C" strings) to allow characters to be used that are not normally
+valid in INI file values. The affected values are:
- The ValidateText field
- The Text value of Label fields
-- The State value of Text fields that have the MULTILINE flag
+- The State value of Text fields that have the MULTILINE
+flag
- The escape character is the back-slash character ("\") and the available escape sequences
-are:
+ The escape character is the back-slash character ("\") and the
+available escape sequences are:
"\\" |
@@ -572,7 +660,8 @@ are:
Tab (ASCII 9) |
- The following functions can be used to convert a string to and from this format:
+ The following functions can be used to convert a string to and
+from this format:
; Convert an NSIS string to a form suitable for use by InstallOptions
; Usage:
@@ -648,10 +737,12 @@ done:
Pop $1
Exch $0
FunctionEnd
-
+
Validate the input
- If you want to validate the input on the page, for example, you want to check whether the user
-has filled in a textbox, use the leave function of the Page command and Abort when the validation
+
+ If you want to validate the input on the page, for example, you
+want to check whether the user has filled in a textbox, use the
+leave function of the Page command and Abort when the validation
has failed:
Function ValidateCustom
@@ -662,35 +753,47 @@ Function ValidateCustom
Abort
FunctionEnd
-
+
Return value
- After you have called the DLL, InstallOptions adds one value to the stack, with one of the
-following values:
+
+ After you have called the DLL, InstallOptions adds one value to
+the stack, with one of the following values:
- success - The user has pressed the Next button
- back - The user has pressed the Back button
- cancel - The user has pressed the Cancel button
-- error - An error has occurred, the dialog cannot be displayed.
+- error - An error has occurred, the dialog cannot be
+displayed.
- Usually, you don't need to check this value, but you still have to remove it from the stack
-(have a look at the example above).
- If you want to check the user input immediately, for example, to display a warning when the
-input is invalid, you should check whether the user has pressed the Back or Next button.
+ Usually, you don't need to check this value, but you still have
+to remove it from the stack (have a look at the example above).
+ If you want to check the user input immediately, for example, to
+display a warning when the input is invalid, you should check
+whether the user has pressed the Back or Next button.
+
+
Reserve files
- If you are using BZIP2 (solid) compression, it's important that files which are being extracted
-in init- or page functions function are located before other files in the data block, because this
-will make your installer faster.
- If there are File commands in your sections or functions above the init- or page functions, add
-ReserveFile commands above your sections and functions:
+
+ If you are using BZIP2 (solid) compression, it's important that
+files which are being extracted in init- or page functions function
+are located before other files in the data block, because this will
+make your installer faster.
+ If there are File commands in your sections or functions above
+the init- or page functions, add ReserveFile commands above your
+sections and functions:
ReserveFile "test.ini"
ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
-
+
Fonts and colors
- If you want to use custom fonts or colors on your InstallOptions dialogs, you should use the
-initDialog and show functions. initDialog creates the dialog in memory, but does not show it. After
-calling initDialog, you can set the fonts and colors, and call show to show the dialog. initDialog
-pushes the HWND of the custom dialog to the stack. To get the HWND of the controls use:
+
+ If you want to use custom fonts or colors on your InstallOptions
+dialogs, you should use the initDialog and show functions.
+initDialog creates the dialog in memory, but does not show it.
+After calling initDialog, you can set the fonts and colors, and
+call show to show the dialog. initDialog pushes the HWND of the
+custom dialog to the stack. To get the HWND of the controls
+use:
GetDlgItem (output var) (hwnd of the custom dialog) (1200 + Field number - 1)
@@ -721,23 +824,28 @@ Function FunctionName ;FunctionName defined with Page command
Pop $R0
FunctionEnd
-
+
Version history
+
- DLL version 2.4 (1/4/2004)
-- Initial focus is set in "initDialog" making it possible to override it from NSIS prior to
-calling "show"
-- When initial focus is to a Text field InstallOptions now follows standard Windows behaviour by
-having the text selected
-- Label and other static fields no longer have State= written to the INI file when leaving the
-dialog
-- NOTIFY flag can now be used with Link fields (State should be omitted in this case)
-- Likewise, State can now be used with Button fields (behaves the same as with Link fields)
-- NOTIFY flag can also now be used with ListBox and DropList fields to have NSIS notified when
-the selection changes
-- Meaning of RIGHT flag is now reversed in right-to-left language mode
-- HSCROLL and VSCROLL flags are no longer restricted to Text fields
+- Initial focus is set in "initDialog" making it possible to
+override it from NSIS prior to calling "show"
+- When initial focus is to a Text field InstallOptions now
+follows standard Windows behaviour by having the text selected
+- Label and other static fields no longer have State= written to
+the INI file when leaving the dialog
+- NOTIFY flag can now be used with Link fields (State should be
+omitted in this case)
+- Likewise, State can now be used with Button fields (behaves the
+same as with Link fields)
+- NOTIFY flag can also now be used with ListBox and DropList
+fields to have NSIS notified when the selection changes
+- Meaning of RIGHT flag is now reversed in right-to-left language
+mode
+- HSCROLL and VSCROLL flags are no longer restricted to Text
+fields
- Various Link field fixes
@@ -768,13 +876,15 @@ the selection changes
- DLL version 2.1 (3/15/2003)
-- \r\n converts to newline in both label Text and ValidateText
+- \r\n converts to newline in both label Text and
+ValidateText
- New browse dialog style (modern)
- Word wrapping for check boxes and radio buttons
- No ugly border for edit fields under XP
- Scroll bar for list boxes
- Works with SetStaticBkColor
-- DISABLED dir and file request fields now disable the browse button too
+- DISABLED dir and file request fields now disable the browse
+button too
- No more STATE value for labels
- Minor fixes
@@ -784,7 +894,8 @@ the selection changes
- DLL version 2.0 (1/4/2003)
- Supports custom font and DPI settings (by Joost Verburg)
-- INI files should contain dialog units now, no pixels (by Joost Verburg)
+- INI files should contain dialog units now, no pixels (by Joost
+Verburg)
- RESIZETOFIT flag for Bitmap control (by Amir Szekely)
- New documentation (by Joost Verburg)
- New GROUP/NOTABSTOP/DISABLED flags
@@ -792,12 +903,16 @@ the selection changes
Complete version history
+
Credits
+
Original version by Michael Bishop
DLL version by Nullsoft, Inc.
DLL version 2 by Amir Szekely, ORTIM, Joost Verburg
New documentation by Joost Verburg
+
License
+
Original version Copyright © 2001 Michael Bishop
DLL version 1 Copyright © 2001-2002 Nullsoft, Inc., ORTIM
@@ -819,9 +934,10 @@ it freely, subject to the following restrictions:
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any distribution.
+
|