Archive: Ultra Modern UI Issue (Possible Bug)


Ultra Modern UI Issue (Possible Bug)
Hi,

I would like to bring to your attention on an Ultra Modern UI (UMUI) issue that I am currently facing.

Currently, I would compile my NSIS scripts under the UMUI mode (version 1.00b). The Installer when executed upon compilation works fine.

However, when tested on a couple of Computers running on Windows XP SP 2(One computer runs in Windows XP Pro English and the other runs in Windows XP Pro Japanese), the UMUI display seems to run out of shape.

I have attached a sample screenshot of the UMUI problem with this post. Please download the screenshot to observe the issue.

Based on the attached Screenshot, it is visible that the alignment of the UMUI images is out of shape with some brown-gray patches in between display UI.

I have tested the Installer in many PCs and I am only able to reproduce it at two PCs with running Operating Systems as mentioned earlier.

I am not sure on the cause of this issue. I have gone through the UMUI Readme but I could not find any related items pertaining to this issue. Besides that, I have also tried searching through the NSIS forum for any related issues but to no avail.

At the moment, I could only suspect possible Windows Display /Appearance settings that might have affected the display of the UMUI screen. However, when compared to other PCs which have the same display configuration, the UMUI installer works fine there.

Please advice me on this issue or any possible countermeasures for it. I am worried that since it has occurred twice, it may occur on other platforms.

Thanks very much.


The display setting probably at fault is DPI. Control Panel->Display->Settings->Advanced->General->Display->DPI setting. For those two computers it'd probably be 120 DPI.


Hi,

You are right!

Based on your explanation, I re-configured and restarted a test PC with a Display DPI of 120dpi. Once I activate the UMUI Installer, the problem as mentioned earlier occured!

Hence, once I reconfigured the PC to its Display DPI set at 96dpi, then the UMUI display was ok.

I will add this information as a known issue in deploying the installer. However, are there any possible countermeasures regarding this issue?

Thanks again for your quick support.


The Modern UI handles different DPI settings correctly and resizes images if necessary. This should be fixed by the author of the Ultra Modern UI.


I will see that.

Thanks.


I have just tested with UltraModernUI beta 2 and this problem is fixed.


Thanks Super Pat for fixing the problem in UMUI beta 2

It would be great if you could provide me with a link to download the latest UMUI version (beta 2).

I have tried searching at the UMUI official website (http://ultramodernui.sourceforge.net/index.php) or even at the NSIS Home page, but I could not locate the latest UMUI installer. The only available version is still version 1.00 beta 1.

Hence, would be grateful if you or anyone could provide me with a link to download the latest beta version (beta 2) of UMUI.

Thanks very much.


Currently, Beta 2 is not finished yet...
I work above and it remain some tricks to do before its public preversion release:

The phase of tests public will begin when all what appears in bold will be carried out.
The final beta2 will release when all the remainder of this list will be carried



TODO Lists for the Beta2 version:

- Maintenance Page: Coding the Modify an existing install feature.
- AdditionalTasks and Serial Number pages: support of the safeguard of the parameters in the registery for the update/Repair/Modify option. Require to rewrite a part of these pages.
- Rewriting one of the macros managing "Flags UMUI" (They allow, amongst other things, to know which options were chosen in various pages...)
- Second reading and cleaning of all the code
- Complete the documentation

Correction for my unofficial version of InstallOptionEx:
- If we change the background color of a Link control to transparent, the background color become white...
- We cannot change the text and background colors of a GroupBox control, it remains color of Windows....



Feature Lists for the Beta2 version:

# UltraModernUI will include also a second Unser Interface named ModernUIEx. ModernUIEx will be an extended version of Modern UI but with the new UltraModern pages support.
# UltraModernUI will include henceforth three plugins that will be natively supported :
* The new SkinnedScrollBar plugin will be able skin all Buttons and ScrollBars of your NSIS installer (scrollbar only for Windows 2000/XP/2003/Vista?).
* An unofficial version of the InstallOptionEx plugin that will contain a lot of bugfix necessary to the correct operation of some UltraModernUI pages.
* The NSISArray plugin used with the AlternativeStartMenu and MultiLanguages Pages of UltraModernUI beta2.
# All the Skin will be remakes and twenty skins will be available. blue, blue2, SoftBlue, red, red2, SoftRed....
# New pages will be available:
* MultiLanguage Page to replace (if you prefer) 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 allows the use of a TreeWiew instead of the ListView and can set the ShellVarContext
* Additionnal Tasks page with checkboxes en radiobutton.
* File and Disk Request Page (But not during the install files page).
# Some macros to simplify the writing of scripts



I will need all beta testers, translators, correctors (for the orthography of the French and English files and of Documentation) available but also, if some developers are interested for help me on my new SkinnedControls plugin that skin Buttons AND/OR ScrollBars and to debug my unofficial version of InstallOptionEx, I am also a interested.



Some Screenshots:

The three skins type:
The "blue" skin:
http://guerin45.free.fr/NSIS13.png
The "blue2" skin:
http://guerin45.free.fr/NSIS12.png
The "SoftBlue" skin:
http://guerin45.free.fr/NSIS14.png


The "SoftBrown" Skin with Buttons and ScrollBars Skinned
http://guerin45.free.fr/NSIS15.png

The SetupType Page:
http://guerin45.free.fr/NSIS11.png
The SetupType page in the ModernUIEx mode:
http://guerin45.free.fr/NSIS10.png

The AlernativeStartMenu page with treeview and SellVarContext options (and also with the GroupBox InstallOptionEx bug :confused: ):
http://guerin45.free.fr/NSIS09.png

The Multi-languages page in ModernUIEx mode:
http://guerin45.free.fr/NSIS06.png

The UMUI_Small UI:
http://guerin45.free.fr/NSIS02.png
http://guerin45.free.fr/NSIS03.png


Sorry for my late reply.

Thanks Super Pat for your information and for helping fix the DPI display bug. I am looking forward to the next release of UMUI.

Another question though about UMUI. I have been researching on how to add an additional button into the NSIS page components. I found the ButtonEvent plugin (by Afrow) and tried using it in my UMUI specification installer.

However, upon running the installer, the extra button does not seem to appear. I followed the same method as seen in the given example for this plugin(including using the 'modern_modified.exe' as provided with this plugin). But it does not work.

Is it because 'modern_modified.exe' is configured for MUI only? I tried recompiling the given ButtonEvent plugin example in UMUI mode. I received a compilation error 'Function named ".onGUIEnd" already exist'. I suspect that this function was initialized somewhere within the UMUI codes. Thus I passed the ButtonEvent:UnLoad code to Section -Post. The compilation worked fine. But upon executing the installer, the additional button was Not Visible.

Is there anyway on how I could add an extra button (parallel position to the Next, Back and Cancel buttons) for UMUI page components?

Thanks very much for any feedback or advice regarding this issue.


You need to modify the UI Contrib/UIs/UltraModernUI/UltraModern.exe with ressource hacker to add your button in the components page.


Hi,

Using Resource Hacker, I managed to extract the UI components of the UltraModen.exe and added an extra button to the UI.

The ID of this button is 0.

When I compiled the UltraModen.exe using Resource hacker and re-compiled a sample test UMUI NSIS script, the extra button does appear as expected ('Help' button).

However, I need some help on how to get an event if the button is pressed. I am not sure on how to do this. I tried using the Button Event plugin with the newly compiled UltraModen.exe, but it did not work.

I have attached a sample of newly added button into UltraModen.exe with this post. Using Resource hacker, you would be able to see the newly added button ('Help' button) and its ID at 0.

So if you have any idea on how to make NSIS detect if this button is pressed in UMUI, please let me know. By pressing this button, a function should be executed to open an Internet Browser containg User Guide on the compiled installer.

Hence, I am grateful on any guides to this issue. Thank you very much.


Use a different ID, like 2001 or something.

-Stu


DPI :(
Hi Super Pat,

I too am having a problem with the DPI settings. It seems Dell ships laptops with high resolutions and DPI set at 120.Very annoying.

I tried to email you but the email bounced.

Any chance of being able to get hold of Beta 2? Or releasing a fix for DPI problem? That would make me very happy :)


Hi,

Fix Beta 1 is no easy and beta 2 remain too incomplete for a release...

More other, in this moment, I have a ton of work… I will try to release this version before the end of the year.

Still a little of patience


Ok thanks for the quick reply - I will see about using a different skin for my current requirement as I have quite a few dell laptop users :( who all moan at me hehe


Hello,

SuperPat, is there a chance that you add support for MUI_CUSTOMFUNCTION_(UN)GUIEND defines in beta2?
Since UltraModernUI is using an .onGUIEnd function I had to add the following bit in it in order to be able to add my own instructions:
!ifdef MUI_CUSTOMFUNCTION_GUIEND
Call "${MUI_CUSTOMFUNCTION_GUIEND}"
!endif
It's the same than what you already provide for .onGUIInit, I just renamed it to GUIEND :-)


Hi SuperPat,

I would just like to know when would the UMUI version 2 be available.

Will there be a version 2 release?

I would like to add the fixes for UMUI into my current installer.

Thanks.


Hello,

The MUI_CUSTOMFUNCTION_(UN)GUIEND defines already exists on the beta 2

For the Help Button, I am not sure that it is very usefull, I will see this later.

I always work on it in my free time but It remain unfinished.

This is the lastest TODO List:
- Maintenance Page: coding of the function of Modification of an existing installation.
- Serial Number page: support of the safeguard of the parameters in the register, addition of the TOLOWER, TOUPPER and NUMBERS flags, To pass from an input to another during striking on the keyboard of the serial.
- Rewriting one of the macros managing UMUI Flags (They allow, amongst other things, to know which options were chooses in various pages...)
- Second reading and cleaning of all the code
- Complete the documentation
Corrections for InstallOptionEx:
* Transparent Icons are not transparent in the page...
* Button are not drawn if I use my SkinnedButton plugin... whereas that work very well with InstallOptions


Any news with beta 2 yet SuperPat?

Oh small bug if you have a second License Page with Checkbox
when you use !define MUI_LICENSEPAGE_TEXT_BOTTOM to change the text at the bottom, it doesn't change,

Though if I use it with Modern UI it works fine


Hello,

I will work on the beta 2 during my holidays.
Can you send an example of your script that illustrates this bug?


Thanks SuperPat email sent


Hi SuperPat,

You also might want to look at the new nsDialogs stuff.

It might just fix most of your pending "bugs" that still exist in beta1 and beta2.

Granted, I suspect its going be a big rewrite, but I suspect it probably solves a lot of our pending bugs in InstallOptionsEx.

Scott


TonyDS, Tanks for your feedback,

To resolve the bug, you need to delete these lines in the Contrib\UltraModernUI\UMUI.nsh at the line 1396:

!ifndef MUI_LICENSEPAGE_RADIOBUTTONS
!ifndef MUI_LICENSEPAGE_CHECKBOX
!insertmacro MUI_INNERDIALOG_TEXT 1006 "$(MUI_INNERTEXT_LICENSE_BOTTOM)"
!endif
!endif

!ifdef MUI_LICENSEPAGE_CHECKBOX
!insertmacro MUI_INNERDIALOG_TEXT 1006 "$(MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX)"
!endif

!ifdef MUI_LICENSEPAGE_RADIOBUTTONS
!insertmacro MUI_INNERDIALOG_TEXT 1006 "$(MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS)"
!endif


SuperPat


For nsDialog, I will not implement it for the moment, because it would involve too many changes. And I am not even sure we can use the RishText and TreeView components with it.

So, I will wait until Modern UI 2 used, by default with NSIS, and in stable version before rewriting UltraModernUI completely. Thus I will see that for version 2.0 of UltraModern UI.


Thanks SuperPat for the response and solution, I'll look forward to v2 when its done :)

Yep that worked :)

Cheers

Tony