My application is the bottom window, the top is media player. Thanks to the little mermaid for providing a nice desktop to show off the glass effect.
MVC framework
Behind the scenes it uses an MVC library which significantly simplifies the logic, keeping everything in sync. I described this in my previous post as I realised that there were two models, one for download information and one for processing activity.
This library is very successful in simplifying threading concerns as well as it includes an IInvokableView interface which allows view to handle this very succinctly. In fact I even provide a rich base hierarchy which mean that implementing a new view whether its on a a label or a glass label, takes about 3 lines of code.
I'm toying with the idea of moving this whole framework into the component space so that you can just drop views into the design space and wire up the properties of controls straight to them.
HCI, Look and feel
Everything is drawn using transparency and I've tried to stay close to the overall look Vista glass. All corners are rounded and colours muted to keep a soft look in keeping with the transparency.
The list is guaranteed not to be more than ten items so instead of scrolling I resize the the window, or rather I use an animated resize to change the size slowly.
Items of interest get a glow to help bring the them to the eye. Due to the way that each item in the list can have sub rows, I also included a hover highlight, but so far I've avoided using a selection as that would imply that operations can be performed at the row level. Instead the list gets a click handler that informs which piece of text or image was the contact point, and lets you know which item that belongs too, should that help.
The status bar at the bottom basically has two indicators which show either current actions or issues. As soon as the action is completed we take away the glow and start to fade the colour to mid-tones with alpha, again using animation.
What does the application do
It reads an RSS feed for page URL's then scans through the pages linked to find a download URL. This is converted into a BITS operation which pulls down the file and wakes the application up again. The idea is not to run it as an icon in the system tray, but instead just have it run every day to have a look at what is available, and if there is nothing to do then get out of memory.
Don't you wish more applications did this, instead of hogging your memory just so they can 'quick launch'?