Skip to content
⌘ NSIS Forum Archive

Ultra-Modern UI

269 posts

SuperPat#edited

Ultra-Modern UI

Hello,

After nearly three years of waiting, I am pleased to announce the first pre-release of UltraModernUI 1.00 beta 2.

Changelog:

# UltraModernUI is resynchronised under Modern UI version 1.8.
# UltraModernUI include also a second interface named ModernUIEx. ModernUIEx is an extended version of Modern UI but with the new UltraModern pages support.
# UltraModernUI included henceforth three plugins that are supported natively :
* The SkinnedControls plugin. SkinnedControls is based on the wansis plug-in of Saivert and can skin all buttons of your NSIS installer like the most recent installers as well as the scrollbars (only for Windows 2000/XP/2003/Vista).
* The InstallOptionEx plugin. InstallOptionEx is writen by Diego Pedroso (deguix) and is an expanded version of InstallOptions containing many new features, with size drawback. This unofficial version, by SuperPat, contain a lot of bugfix necessary to the correct operation of some UltraModernUI pages.
* The NSISArray plugin. This plug-in written by Afrow UK, allows the support of the array in NSIS. It comes with plenty of functions for managing your arrays. This plugin is used with the AlternativeStartMenu and MultiLanguages Pages of UltraModernUI.

# All the Skin were remakes and twenty skins are now available. blue, blue2, SoftBlue, red, red2, SoftRed....

# Twenty background skins are now available. blue, blue2, SoftBlue, red, red2, SoftRed....

# New pages are available:
* MultiLanguage Page if you want to replace the MultiLanguage Plug-in.
* Maintenance Page with Repair, Modify, Uninstall and Continue Setup options.
* Update Page with Update, Uninstall and Continue Setup options.
* Informmation Page for viewing text and RichText files.
* SerialNumber Page.
* Setup Type Page with Minimal, Standard, Complete and Custom options.
* AlternativeStartMenu Page to replace the StartMenu Plug-in. It allow to use a TreeWiew instead of the ListView and can set the ShellVarContext
* Additional Tasks page.
* File and Disk Request Page.

# Left Text, Left Time and LeftMessageBox functions are removed.

# UltraModernUI is translated into two languages English and French an partially translated into German and Brazilian Portuguese.


TODO:

- The documentation is outdated and the SkinnedControls plugin documentation is non-existant. So you can see examples to see all properties.
- Need to rewrite one of the macros managing "UMUI Flags" (It allows, among other things, what options were chosen in the different pages ...).


I need your help for:

- Your feedback
- The translation of UltraModernUI into the other languages
- Creation of more skins
- The corrections of some InstallOptionsEx plug-in bugs:
* Transparent Icons are not transparent in the page...
* Button are not drawn if we use SkinnedControls plugin... whereas that work very well with InstallOptions.
- Improvement for SkinnedControls plug-in:
* Skin checkboxs and radiobuttons
* Skin progress bars
* Skin dropLists arrow

I plan to release the final version in March, 20th, the third anniversary of the release of the first version

Thanks in advance for your help.


Download
Joost Verburg#
Any plans to update it to the Modern UI version 2.0? MUI2 allows you to add additional pages to the standard MUI framework (see for example the Multi-User header file in SVN) and also makes it a lot easier to customize existing pages.

It should be possible to have an UltraModernUI as an extension of the standard MUI. Then it won't be a fork of the MUI and will share most of the scripts.
SuperPat#
Yes, I have plan to update to MUI2, but I prefer finalize this version, otherwise you would have to wait a lot more!


Take MUI2 need to rewrite several pages. Moreother, I am not sure that we can use the RichText and TreeView with nsDialg.


For UltraModernUI 2 I would need some features:

Would it be possible with nsDialg create customized messagesbox?

NsDialg might also add controls on static pages?

Is it possible to create a "timer" plugin who, at regular intervals, would call, in another thread, a nsis function?
TonyDS#
Hi SuperPat

Can you let me know if LogicLib.nsh is already included in the new UMUI.nsh please? As I get an error when I try to compile my script.

This is the order I have my included *.nsh

!include "UMUI.nsh"
!include "Sections.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"

and this is the error

!include: closed: "C:\Program Files\NSIS\Include\Sections.nsh"
!include: "C:\Program Files\NSIS\Include\FileFunc.nsh"
!define: "FILEFUNC_INCLUDED"=""
!include: closed: "C:\Program Files\NSIS\Include\FileFunc.nsh"
!include: "C:\Program Files\NSIS\Include\LogicLib.nsh"
!define: "Continue" already defined!
!include: error in script: "C:\Program Files\NSIS\Include\LogicLib.nsh" on line 582
I've been looking at both the UMUI.nsh and LogicLib.nsh and the error is correct, on line 61 of the UMUI.nsh you have

!define CONTINUE 512 ; set by MAINTENANCE and UPDATE pages

and on line 582 of the LogicLib.nsh it has the define

!define Continue `!insertmacro _Goto Continue "For or Do or While"`

I think you may have to change your Continue to something else

Edit; Default is also defined in both

Oh by the way thanks for the new Ultra Modern
thek#
Hi SuperPat
Thanks a lot for the release!

probably I don't need to rewrite the script for ModernUI 2 anymore :-)
TonyDS#
Sorry mate but nothing has changed

the date on the UMUI.NSH is still 05/01/08 18:57, I still get the same error
Sheik#
Also, when I try to install "UltraModernUI_1.00_2008-01-07.exe" twice, the 2nd time it comes back with a "NSIS2 is not installed on your computer".
In fact, the first install appears to destroy any memory of the original install of the NSIS package.

When I install the "combined" NSIS + UMUI, it erases the NSIS package, and installs only a few of the packages in NSIS, so a lot of plugins are missing!

Scott
Sheik#
Also, during "Install files" page, when you do a "Show Details", the display of the install of the files in the SysListView is "jumpy".
It used to be smooth, not really sure whats wrong in there...

Scott
Sheik#
Hi SuperPat,

Also, this thread:
Are you a developer who uses NSIS to distribute your application? Are you a Winamp plug-in developer who wants to use NSIS to distribute your plug-in? Have suggestions for other people like you? This is the place.


This appears to not have been added.
My "pre" function that calls INITDIALOG still has the problem where any custom pages do not have their backgrounds drawn correctly...
Sheik#
Hi SuperPat,

Also, The "confirm" page doesn't seem to correctly color the background...

Attached is a pic of the problem:
Sheik#
For the last problem on the "confirm" page, the only way I have been able to resolve it, is by doing the following in the:
!macro UMUI_FUNCTION_CONFIRMPAGE "PRE" section:

!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "confirm.ini"
Pop $1
SetCtlColors $1 "" "${MUI_BGCOLOR}"
;fill the ini and set the color of all the controls in your page
GetDlgItem $0 $1 1200
SetCtlColors $0 ${UMUI_TEXT_COLOR} ${MUI_BGCOLOR}
GetDlgItem $0 $1 1201
SetCtlColors $0 ${UMUI_TEXT_COLOR} ${MUI_BGCOLOR}
GetDlgItem $0 $1 1202
SetCtlColors $0 ${UMUI_TEXT_COLOR} ${MUI_BGCOLOR}


ie, the suggestion given at this URL:
Are you a developer who uses NSIS to distribute your application? Are you a Winamp plug-in developer who wants to use NSIS to distribute your plug-in? Have suggestions for other people like you? This is the place.



Scott
SuperPat#
New build version 2008-01-08

I've really corrected the incompatibility with logiclib.
I've improve the UltraModernUI installer packages.


My "pre" function that calls INITDIALOG still has the problem where any custom pages do not have their backgrounds drawn correctly...
If you want your page will be automatically skinned you have to use the INSTALLOPTIONS_DISPLAY or INSTALLOPTIONS_DISPLAY_RETURN macros.
The init dialog doesn't do this because if you set your own color into your pre function thes will be erase by the INSTALLOPTIONS_SHOW, INSTALLOPTIONS_SHOW_RETURN macros.


For the confirm page, I don't know why it is not skinned because th page use the INSTALLOPTIONS_DISPLAY macro. Can you send your example script?
Sheik#
Hi SuperPat,

I will try to make a quick example script to show the problem.


Also, I have found a problem with the Welcome page.
It doesn't have the Welcome text in the upper part of the dialog like it used to.

I am attaching 2 pics, pic1 that is from the previous version of UMUI, and pic2 that uses the new UMUI.
Notice the top of the dialog...
Sheik#
Okay, I guess I can't do 2 attachments on the same message.
Attached is the 2nd of the pics.
Sheik#
BTW,

You fixed the "CONTINUE" problem by changing it to CONTINUE_SETUP

But you missed the "DEFAULT" problem.
It has the same issue. It conflicts with the name in LogicLib.

You need to change this:
!define DEFAULT 0 ; Default any flag set

To like "DEFAULT_SETUP", like you did with "CONTINUE_SETUP".
SuperPat#
For the header texts on the welcome page, I withdraw there because they are empty in the InstallSheild intaller. Moreother, the same text was shown 3 times on the Welcome, finish, abort pages.
It is not a bug.


For the DEFAULT incompatibility, I will fix it tomorrow.
SuperPat#
New build Available: 2008-01-09

- Fixed incompatibility with logiclib.nsh the flag DEFAULT become DEFAULT_STATE
- Fixed bug in the UMUI package which remove NSIS key from the registry + some improvements.
kichik#
- Fixed incompatibility with logiclib.nsh the flag DEFAULT become DEFAULT_STATE
You should prefix any constants used by UMUI with UMUI_ or something similar. This way, there'd be no collisions with built-in stuff like LogicLib.
evin#edited
I attached the image, but I don't know what happened. 🙁

So, the image: 3bugs

I hope this working.
SuperPat#
Originally posted by evin
I found 3 bugs. (in the picture with red arrow)
These are not bugs:
the background are not transparent because texts were superimposed when they change.

I never found how to erase texts before to be modified.
evin#
I hope, this problem soon resolve. Then it will be perfect. 🙂

(soon, I give you a Hungarian translation to the UMUIb2)
SuperPat#
If somebody has a solution to correct this problem, I am interested.

Thank for translation.

PS: your background image seems very sympathetic, you could perhaps send it to me to be integrated into UMUI
evin#
I made some transparent test with UMUIb1 (long time ago), but I just replaced the BGCOLOR scripts to Transparent. Almost worked. 🙂

The background was just a test image, to see, all text are transparented or not. I think it's very simply.

Modified Blue UMUI (the free Photoshop brush attached)
legcsabi#
UMUI_PAGE_FILEDISKREQUEST

Hi!
i would like to know how to use the new PageEx called
UMUI_PAGE_FILEDISKREQUEST?

I tried playing with the following commands:
var vv
!define UMUI_FILEDISKREQUESTPAGE_VARIABLE $vv
!define UMUI_FILEDISKREQUESTPAGE_FILE
!insertmacro UMUI_PAGE_FILEDISKREQUEST
but in vain, I always get a compiler error from UMUI on this line: DirVar "$${UMUI_FILEDISKREQUESTPAGE_VARIABLE}"

Has someone a working example on this page?
thx
SuperPat#
var dir
!define UMUI_FILEDISKREQUESTPAGE_VARIABLE dir
!define UMUI_FILEDISKREQUESTPAGE_VARIABLE_FILE_TO_FOUND "filetosearch"
!define UMUI_FILEDISKREQUESTPAGE_FILE ;use file request
!insertmacro UMUI_PAGE_FILEDISKREQUEST