Archive: UltraModern UI


UltraModern UI
I came to this marvellous program a few days ago and was able to write an installer with only a few day's work. Thanks for your great job!

However, I used the 'UltraModernUI' and have a few questions (I am not sure if ALL problems have to do with the GUI). I am not sure about the version (it nowhere it tells me for sure) but it seems to be "Version 1.00 beta 2 - March ??, 2008", as this is stated in ReadMe.txt.

.) One can "!define UMUI_PARAMS_REGISTRY_ROOT HKLM" but the correct installation path "UMUI_INSTALLERFULLPATH_REGISTRY_ROOT" is in HKCU (cannot write to HKLM)
.) !define UMUI_INSTALLDIR_REGISTRY_KEY "InstDir" together with !define UMUI_INSTALLDIR_REGISTRY_VALUENAME "$INSTDIR" seems not to work - how does it work?
.) !define UMUI_UNINSTALLPATH_REGISTRY_VALUENAME "Uninstall With" together with !define UMUI_UNINSTALL_FULLPATH "$INSTDIR\Uninstall.exe" seems not to work - does not write the correct path when changed (always writes default path)
.) InstallDirRegKey ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "InstDir" does not work - DOC says: read installation DIR from registry if present (else use '$InstallDir')
.) !define UMUI_USE_ALTERNATE_PAGE has a bug: it does not support fonts (Arial 12 remains small: 8Pt?)
.) !define UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT has a MAJOR bug: when disabled also disables the 'shortcut' checkbox!
.) I am REALLY MISSING a checkbox for (NOT) creating a desktop shortcut (usually an icon can be installed on the desktop but can be unselected by the user)
.) !define MUI_HEADER_TRANSPARENT_TEXT this does not work: there are UGLY fields in the various pages. To make it visible, select a grey background and check the various pages. Take special attention to the two size fields when selecting items to install (one has transparent background, the other has opaque background) - YECK!

The documentation that comes with the 'UltraModernUI' is very incomplete (to put it politely). Has anybody more information?


1) UMUI_PARAMS_REGISTRY_ROOT and UMUI_PARAMS_REGISTRY_KEY are global define used if the specialised define (e.g.: UMUI_INSTALLERFULLPATH_REGISTRY_ROOT MUI_STARMENU_REGISTRY_ROOT and all other) are not defined.

2) UMUI_INSTALLDIR_REGISTRY_VALUENAME is used by the maintenance page to save the original path of the installer.
(in th uninstallation, if you choose the repair or modify option, it will locate the installer thanks to the path savez in th registry). See Mainteance.nsi example.

3) the UMUI_UNINSTALL_FULLPATH must always contains the uninstaller path. For example $INSTDIR\uninstall.exe.
This value is save to the registry to be use by the maintenance page to locate it if you choose the uninstall options. (In your code you must write your installer in the same directory of the define). See Mainteance.nsi example.

4) InstallDirRegKey is use by NSIS to load the $INSTDIR variable with the content saved in the registry but you need to white this value manually in your section:
WriteRegStr HKLM ${UMUI_PARAMS_REGISTRY_ROOT} "${UMUI_PARAMS_REGISTRY_KEY}" "InstDir" $INSTDIR
Except if you define also UMUI_INSTALLDIR_REGISTRY_VALUENAME. In this case the value is saved automatically and you need to remove the InstallDirRegKey instruction.

5) the alternate page use "MS Sans Serif" size: 8
Remove this define to use the old font.

6) You are right, i will see it soon. Thanks for report.

7) See the AdditionalTasks.nsi far a "create desktop" shortcut checkbox example.

8) !define MUI_HEADER_TRANSPARENT_TEXT is used only in the header, not in body pages.
If you speak about not transparent text in pages:
For the label that change like in components, directory and installfile pages, the new text is written (by NSIS) on the top of the old text and become unreadable. Only the solution I know is to use a background image having plains colors at the position of theses labels.

9) The documentation will be completed progressively soon.

I hop I've correctly answer your question.


Thanks to this post, several bug were corrected and a new build is available, see this post:

http://forums.winamp.com/showthread....34#post2388434