Archive: InstallSpider UI For NSIS


InstallSpider UI For NSIS
I have completed most of this UI now. Attached is the setup program (beta version 1) and all resources required for the new UI. I am still suprised that the installer is less than 100KB. I have also included one example and a readme.htm file. The few new features are outlined in the readme.htm.

The feature I am very proud of is the windows versions and which versions to install on. It is outlined in the readme.htm. I will post a few screenshots in the next few days.

I will also be adding lots of new features in the coming weeks.

[edit]attachment deleted, use attachment in following posts[/edit]


your installer should at least install the ui to the correct nsis-directory instead of assuming it's in c:\program files. the uninstaller has no effect, had to delete all files manually.


JasonFriday13, to get it to install to just NSIS\ you need to copy all your files to a seperate folder with the file system intact, e.g. NSIS\Release\[Contrib, Docs, Examples etc]
Then you need to highlight all those folders and Add to Archive.

-Stu


Thanks for contributing to the NSIS project. I have a few comments about your UI:

* Maybe you can keep the MUI prefix for macros and settings that are the same so changing the UI would be very easy.

* The feature to check for a Windows version is indeed useful, but not really a part of a user interface. Providing this as a separate library would make it available to users of other UIs as well.

* You made some small style changes to the language file. I don't see a real reason for this (the MUI language files have been checking to comply to Windows standards). Sharing language files would also have the advantage of being able to use many languages and will keep the texts consistent.


Thanks for the replies. When I tested it on my machine, I change the name of the nsis directory and installed the UI. Then I uninstalled it making sure all the files were deleted. The setup gets the nsis directory from the registry. I opened the makensis setup script and used a line from there to get it. The uninstaller should have worked (I have tested it myself), but if the files are not deleted, the registry keys would still be deleted so you can delete the files.

As for the language files, I was just trying to make them sound like the setup program that this one copies. I have included the setup script in the installation if you want to modify it. It's located at 'NSISDIR}\contrib\InstallSpiderUI\setup.nsi'. I might just change the language macros in the system.nsh to have the prefix MUI so that the language files of the MUI are used. I have also included two more !define texts in the language file. They are for the confirm page. My UI does not have header text like the MUI, so I didn't put in defines for it. Have a look at my hangman setup program. I have a confirm page that has header texts and dialog texts that might be suitable (the setup script is included).

For the windows version check, I will probably export the code into a header file to make it more usable. I am still going to keep the IS prefix on all the macros just so that you know you are not using the MUI.

Thanks again for the feedback.


kichik: can you please delete the attachment on my first post, it has mistakes in it.

Here is an updated version that fixes alot of items and now it uses the same language files as the MUI. I have just copied the MUI system.nsh and modified it from there. The macro system is the same and I have added a confirm page as well. To stop getting 'error: string not defined' at the bottom of the compiler, download and copy the MUI confirm page files into the modern ui folder which is available on one of my recent threads.

Well, here is the next version.


The next version is here. The readme says it all. I am sure this one works properly this time.


Here is a taster of what is to come in the next version of InstallSpider. I added the splash code and the banner code to bgimage and compiled it. The dll size is currently 11kb.


The full version (1.0) is due out this week, just have to finish writing the documentation on all the new features. I have attached an example installer (to be included with the release) so that you get a taster on what is in this version. Notice I have fixed the icon not being shown on the background window, the background window now no longer appears in the taskbar and alt-tab dialog, and that the uninstaller background does not have a title bar (another feature I have added). To uninstall just run the setup program again.

Enjoy.


This is it. Version 1.0. I have banished the rumours about the Instfiles page and the custom section macros. These don't exist.

Heaps of new macros, a new plugin (shield.dll) which is hidden beneath the new macros, a few more bitmaps, and lots of bugfixes.

Enjoy. :cool:


Here is a zip with two screen shots. One is the directory page of the Microangelo 5.59 setup directory page, the other is the directory page of this interface.


From ISUI docs:

This macro takes the ease out of making a custom page appear in your installer/uninstaller. (FILE) is the filename of the installoptions file.
I'm assuming you want to make inserting custom pages easier. :)

-dandaman32

lol it's saying that the macro makes it harder :)

I think you probably want to say:
This macro makes it easier to insert a custom page in your installer/uninstaller. (FILE) is the filename of the installoptions file.

-Stu


Missed for uninstaller (uninstspiderUI.exe):

RMDir "$INSTDIR\Examples\InstallSpiderUI"
RMDir "$INSTDIR\Plugins"
RMDir "$INSTDIR\Examples"
RMDir "$INSTDIR"

lol I didn't proofread properly. Also I will fix the setup program. Thanks.


Here is version 1.01 with the problems above fixed.


Unfortunatly, I have lost the source code to the shield.dll plugin, so this means that it is time for a rewrite and cleanup. I also lost almost all my data including all of the projects I have been working on for the past few years.:(
I am now going to use the mui in the latest version of nsis, and redocument the documentation. Expect a new version to be out in a few months. It's good to be updated once in a while.

edit: I will probably wikify the next release, I think it needs it's own page now.

- Jason aka JasonFriday13.


I have now wikified InstallSpiderUI here. I have made some progress on the Shield.dll plugin, but this time I will not have as many features as the last one did. I'll keep you posted.


The latest version of InstallSpiderUI is out. Go to wiki page above to download. The most important feature (I think) is uninstaller abort to finish. Also removed Shield.dll in favour of an nsis source patch (adds 1KB on stubs, which beats adding 5KB for a plugin that does the same thing). Enjoy.


InstallSpiderUI minor update. Fixed tiny details. Version 1.03 available on wiki.


I have attached an image of the new license page for the next release. I have not written the functionality of it yet, but it's a start.


InstallSpiderUI 1.04 out now. Wiki page.


I have finally decided to release an update. Wiki page.

I have added a plugin called SimpleBg. It is basically a stripped down BgImage.dll with the paint routines from the source of nsis.

Yes, I know, long time no see. I will be popping in now and then to see what is going on.


Here is version 1.06. some minor improvements including palette reducing on some of the wizard images (now 15kb :D).

http://nsis.sourceforge.net/InstallSpiderUI


From one of my threads in 2005:

2.
How about an extra parameter on the page command? Example:
page instfiles [pre] [show] [leave] [rect]
where rect is the custom dialog control to display the page in (the default is 1018. I would like to be able to change it so I can have pages displayed in different locations in the window - this will help in my InstallSpider UI).
Again, this would come in handy for my UI.

[edit] Feature has been submitted on sourceforge.

Wouldn't moving around 1018 in the pre callback function work?


Oh, I never thought of that. I thought the controls on the inbuilt dialogs couldn't be moved. Time to start experimenting (starts rubbing hands together :)).


A new version based on MUI2 is now available on the wiki. Check it out here.

I have decided not to worry about that feature described above, I have already done the work to work around it. I don't want to remove that lovely coding I did for the license page.


It's been ages, but I have done some tweaking recently and made a simple patch that moves a built-in page to a different rect. I ported the code from ui.c in the contrib\uis folder using the system plugin. This also got rid of some weird problems with my custom license code and made it so much easier to read. I also tweaked the setup program, removing a messagebox that I forgot about on the last version :hang:.

Anyway, new version 2.01 is available on the wiki: http://nsis.sourceforge.net/InstallSpiderUI

For those of you that are interested, this is the code that moves a built-in page to a different rect.

;Get control handles
FindWindow $mui.LicensePage "#32770" "" $HWNDPARENT

Push $0
Push $1
Push $2
Push $3
Push $4
Push $5

GetDlgItem $0 $HWNDPARENT 1044

; Setup our struct (RECT)
System::Alloc 32
Pop $1

System::Call 'user32::GetWindowRect(ir0, p r1)'
System::Call 'user32::ScreenToClient(i$HWNDPARENT, p r1)'

; Read data from our struct
System::Call '*$1(i.r2, i.r3, i.r4, i.r5)'
System::Call 'user32::SetWindowPos(i$mui.LicensePage, i0, ir2, ir3, i0, i0, i0x0010|0x0001|0x0004) i.r4'

System::Free $1

Pop $5
Pop $4
Pop $3
Pop $2
Pop $1
Pop $0