NSIS Dialog Designer

From NSIS Wiki
Jump to navigationJump to search

NSIS Dialog Designer is an IDE that provides a graphical tool to easily design your custom setup pages for the great NSIS installer system.

It supports MUI2 (Modern User Interface 2) dialogs and generates NSIS files ready to be included into your own *.nsi install script.

Screenshot

NSIS Dialog Designer is freeware and can be used to design both free and commercial setups.

NSIS Dialog Designer is still a work-in-progress; please test it and give me your feedback to let this tool suit your needs.

Use this thread for comments: http://forums.winamp.com/showthread.php?p=2764874#post2764874.

How does it work

NSIS Dialog Designer is a relatively simple IDE; if you're used to Visual Studio(TM) or Eclipse you'll feel at home. Start by creating a new dialog (File | New), then add some controls to it by choosing them from the Toolbox. Each control has properties and you can easily edit them into the property grid.

When you save the dialog (suppose you called it Form1), NSIS Dialog Designer will create 2 separate files:

  • Form1.nsddef is the definition of your dialog in XML format; it contains all controls definitions and their properties
  • Form1.nsdinc is an NSIS script containing all the NSIS commands needed to render your dialog; this is the file you'll include into your own NSIS setup script.

Supported controls

NSIS Dialog Designer actually supports the following controls:

  • HLine
  • VLine
  • Label
  • Icon
  • Bitmap
  • Link
  • Button
  • GroupBox
  • CheckBox
  • RadioButton
  • Text
  • Password
  • Number
  • ComboBox
  • DropList
  • ListBox
  • ProgressBar
  • DirRequest
  • FileRequest
  • RichEdit

For each control you can set name, position and size, font, colors. Controls also have events bindable to your own script functions.

You can also provide your own script parts and fully customize the generated script.

Download

NSIS Dialog Designer is free and available here:

Version history

v.1.5.0 - 2020-03-22
NEW: Script file encoding now defaults to UTF8; a new Dialog property allows to force encoding back to ANSI.

v.1.4.4 - 2019-08-01
FIX: Removed decimals from control coordinates in generated NSIS script.

v.1.4.3 - 2018-10-16
NEW: New Dialog property to disable generation of *_Show function in NSIS script.
FIX: Designer grid size is not saved to configuration.

v.1.4.2 - 2016-08-24
FIX: Fixed setup procedure for Windows 10 compatibility.
FIX: Fixed .NET framework detection (use .NET Framework 4.0 if already installed).

v.1.4.1 - 2015-09-07
FIX: Fixed small memory leak in generated NSIS script
     (dialog handle left on the stack when calling nsDialogs::Show).

v.1.4.0 - 2015-03-17
NEW: Dialog has a new property "DialogUI" which allows user to set custom
     DialogID and Size (i.e.: using a different UI like sdbarker_tiny.exe)
FIX: HLine and VLine controls don't pop their handle from stack.

v.1.3.3 - 2015-03-09
FIX: Readonly and TextLimit properties of Number control do not work.

v.1.3.2 - 2014-11-10
FIX: Fixed DialogID and Size management, form Size is now readonly unless DialogID is set to a custom value.

v.1.3.1 - 2014-10-27
FIX: Can't set custom dialog size, it always revert back to default.
FIX: Style and ExStyle dialog properties were serialized even of not necessary.
FIX: Removed useless Visible and Enabled dialog properties.

v.1.3.0 - 2014-08-12
NEW: TabIndex property of each control is now synchronized with control order into its parent child controls collection.
     Changing TabIndex (directly or through the "Set TabOrder..." menu command will also change the scripting order of the
     control into the generated NSIS script.
NEW: A warning is now emitted into .nsdinc file to warn the user about manually editing the file.
FIX: When dragging a control over another, the dragged control disappeared making it difficult to place two overlapping
     controls (think about a background bitmap).
FIX: Show a custom error message when setting Dialog BackColor property to Transparent.
FIX: Fixed properties exposed by HLine and VLine special controls.
FIX: Generated script for DirRequest/FileRequest controls is missing some properties (Enabled, Visible, onChange, onClick,
     Style, ExStyle, ControlCustomScript).

v.1.2.0 - 2014-07-11
NEW: CoordinateSystem conversions are now done with higher precision.
     (thanks to shadowpoa for feedback: http://forums.winamp.com/showpost.php?p=3001224)
NEW: Control sizes are now written with up to 2 decimals in NSIS generated script.
NEW: Added a new "All" subproperty to controls CoordinateSystem property;
     it can be used to change X,Y,Width,Height subproperties all together.
FIX: Wrong vertical CoordinateSystem conversion "Pixel --> DialogUnits".

v.1.1.3 - 2013-12-16
FIX: Fixed generated script for DirRequest and FileRequest controls, not respecting CoordinateSystem.

v.1.1.2 - 2013-01-11
FIX: Removed non-working color properties on ComboBox, CheckBox and RadioButton.
     See here for workarounds:
     ComboBox: http://forums.winamp.com/showpost.php?p=2174815
     CheckBox: http://forums.winamp.com/showpost.php?p=2354612
     RadioButton: http://forums.winamp.com/showpost.php?p=1974758
FIX: Multiline TextBox coordinates were always in pixels
FIX: TextBox creation script styles when Multiline=True

v.1.1.1 - 2012-10-01
FIX: Fixed generated script for FileRequest control (wrong test on returned string).

v.1.1.0 - 2012-09-14
NEW: Improved support for DialogIDs other than the default one (1018).
     User can now select 1044 (Welcome & Finish pages) and designer will change dialog size accordingly.
NEW: Added RichText control support. It does not support RTF text loading, it must be customized by
     the user (see here: http://forums.winamp.com/showthread.php?t=288129)

v.1.0.0 - 2012-08-25
After a long time from latest one, it's now time to release the first stable version.
FIX: Text property of Number control now accepts numeric values and variable nalems (like $abc).
FIX: Minor cosmetic fixes.

v.0.9.16 - 2012-04-20
FIX: SelectedItem property of ListBox, ComboBox and DropList controls now accepts any value (like $abc).

v.0.9.15 - 2012-04-13
FIX: NullReference exception thrown when adding an HLine or VLine control.

v.0.9.14 - 2012-03-20
NEW: Panel control, which is only a container for other controls
     (useful to create more than one RadioButtons group).
     It has no corresponding NSIS control, so no NSIS script if generated for it.
NEW: Added property "Checked" to RadioButton control.
     Only one RadioButton can be selected at once; if you need to create two (or more) different groups,
     you must include RadioButtons into a GroupBox or Panel control.

v.0.9.13 - 2012-03-09
FIX: Wrong code generated for MaxLength property of TextBox control (thanks to fabpolli for bug report).

v.0.9.12 - 2012-02-27
NEW: Added "Percentage" to the available NSIS coordinate systems.
NEW: Selection of NSIS coordinate system is now possible at control level, and for each
     component (X, Y, Width, Height). So now is possible to have different coordinate
     systems for different controls.
     Controls coordinate system default value is "Inherit"; this means that by default
     each control is rendered using the same coordinate system as the containing dialog.

v.0.9.11 - 2012-02-11
NEW: NSIS scripts (*.nsdinc files) controls position and size values can now be selected
     between DU (Dialog units, the new default mode) and Pixels.
     The default coordinate system mode can be set into Options dialog.
NEW: Added 2 new controls: DirRequest and FileRequest.

v.0.9.10 - 2011-11-23
FIX: Fixed bug that prevents opening forms where SetupType property is different from default value (Install).
FIX: IDE layout was not saved correctly and lost between version upgrades.
     Please reset layout (View | Reset layout), customize it then restart IDE to save correctly.

v.0.9.9 - 2011-11-21
NEW: Added new "check updates" features: it periodically checks for new releases on CoolSoft website.
NEW: Script preview editor now preserves selection and cursor position after script changes and
     when switching between multiple opened dialogs.
NEW: TabIndex property can now be used to customize focus path through controls.
NEW: Added context menu to dialog designer, it shows Edit menu items.
NEW: Dialog .nsddef files are now created with UTF-8 encoding.
NEW: .nsddef and .nsdinc files now include NSISDialogDesigner version into header comments.
NEW: Duplicate font definitions are merged, generating only a single variable.
NEW: .nsddef files can now be opened by drag&drop from Windows Explorer.
NEW: IDE layout can now be reset through View menu item "Reset layout".
FIX: Property are now stored into .nsddef only if value is different from default.
FIX: Fixed issue on copy/paste controls (duplicate control name).
FIX: User custom scripts won't be generated during debug, avoiding compile error due to missing functions.

v.0.9.8 - 2011-09-12
NEW: Script editor/preview now has NSIS syntax highlighting and code folding,
thanks to FastColoredTextBox
(LGPL3 control, see here: http://www.codeproject.com/KB/edit/FastColoredTextBox_.aspx)
FIX: Styles property wrongly uses the value of ExStyles property.

v.0.9.7 - 2011-09-11
NEW: Added support for Unicode into generated .nsdinc scripts (needs an Unicode version of NSIS).
NEW: New (self explaining) control properties: Visible and Enabled.
NEW: Dialog name (and so the corresponding NSIS variable) can now be set independently
     from its .nsddef filename. It could be set through the new "Name" dialog property.
FIX: Generated test script (the one compiled with F5) now checks user
     custom scripts to avoid redefining an already defined function.
     (thanks to Benjamin Richardson for reporting bug)
FIX: Fixed broken uninstall test script.
FIX: Some properties appear in bold into Property Grid, even if their
     value is the default one. This caused the generate script to be longer than required.
FIX: Custom script editor now accepts TAB key.
FIX: Script preview is cleared when closing the last dialog editor.
FIX: Fixed focus management issues that prevents DEL key to work into PropertyGrid.

v.0.9.6 - 2011-06-28
NEW: Added new property SetupType to dialog, allowing the generated script to be used
     in both Install and Uninstall scripts.
NEW: Debugger code to debug Uninstaller dialogs.
FIX: Cleaned up the debug scripts.

v.0.9.5 - 2011-06-16
BUG: Fixed key management preventing DEL key to be used inside PropertyGrid (thanks to Jovet for bug report)
NEW: Edit menu items now are enabled according to active content (designer, property, toolbox, ...)
NEW: DialogID and Size now are public properties (deedsmedia request)
     (can be reset to default values by right-clicking on PropertyGrid item)

v.0.9.4 - 2011-05-29
BUG: Fixed permission issues on UAC enabled systems.

v.0.9.3 - 2011-04-20
NEW: Added new properties ForeColor and BackColor
     (not working for: Button, ComboBox, DropList, GroupBox, HLine, VLine, ProgressBar)
NEW: Added new property Font
NEW: Designer now can show a grid (see Tools | Options menu)
BUG: Editor does not save dialogs when exiting with close button.
BUG: Script preview not updated when a new control is added

v.0.9.2 - 2011-04-20
BUG: Missing property "Name" is now shown
     (Dialog does not have it because name is the same as its definition filename)

v.0.9.1 - 2011-04-20
NEW: New dockable content with realtime NSIS generated script preview

v.0.9.0 - 2011-04-18
First public release