This idea adds the capability for the Chameleon GUI to show an alternative image for each device when highlighted/selected. This gives more options and allows for more adventurous theme design. So for this to work the code needs to be amended and extra graphic files are required.
I had this idea last year and applied it to Chameleon v2 RC3 r658 then presented it to Zef which, after discussion, led to the shelving of this project. The reason for that was because RC3 (and RC4) require a theme to be embedded, and the extra graphics meant the compiled binary would take the booter near the maximum size limit of 392704 bytes which was deemed unnecessary.
However, since Asere freed the bootloader from a mandatory embedded theme and hence RC5 can also run without an embedded theme I am re-visiting the idea..
Outline of operation.The theme selected for use, pointed to by the 'theme' boot option, will have the following extra files:
device_generic_o.png
device_hfsplus_o.png
device_ext3_o.png
device_fat16_o.png
device_fat32_o.png
device_ntfs_o.png
device_cdrom_o.png
• Chameleon loads the graphics in to an array.
• The GUI draws the normal/original graphic in the theme for the device.
• To show the selected device, it draws the next graphic in the array, which in this case is the extra graphic in place of the original graphic.
• If the user selects a different device, the code draws the original device graphic back, then draws the highlighted graphic for the newly selected device.
The code requires all extra graphics to be present for loading and
therefore won't work with current themes unless they have the extra graphic files added. The code has since been changed to allow full compatibility with existing themes.
ExampleUsing a new theme I have yet to release, here is how the GUI will show the default devices.

Then when selected, the devices will be replaced with the extra '_o' graphics (here I show them all at once, but you would only see one at a time).
Code ChangesThe changes required affect the following files
i386/boot2/gui.c
i386/boot2/gui.h
i386/boot2/options.c
ConclusionI think this functionality could improve the look of Chameleon without too much trouble and I hope it might be considered for further evaluation and possibly inclusion in to RC5. I also understand that this code doesn't include any error checking and is only something I have put together using my limit knowledge of coding. But it works and I am personally using it now against a build for RC5 r168 on the boot and cdboot files.
Themes for use with this modI now have a branch on the repo and all the changes have been applied there for anyone to look at. The code has also been tweaked to allow it to work as normal with existing themes as well as the newer rollover themes.
I have now added four complete themes for use with this mod:
http://forum.voodooprojects.org/index.php/topic,1432.msg7318.html#msg7318http://forum.voodooprojects.org/index.php/topic,1432.msg7327.html#msg7327http://forum.voodooprojects.org/index.php/topic,1432.msg7413.html#msg7413http://forum.voodooprojects.org/index.php/topic,1432.msg7427.html#msg7427Update: 15th JulyI found a problem with the normal device image still being drawn with the rollover image. Problem fixed and v2 boot file made. See
this post for more details.
The modified boot file for testing these themes is attached below.
Note: this is a pre-release version of Chameleon RC5 and is subject to change.Update: 26th JulyThis idea has now been implemented in to the trunk of the forthcoming RC5. Many thanks to Zef & Meklort for writing the revised code necessary to make this happen and thanks also to Azimuth & Smith@@ for their testing and feedback.
