So I've discovered that some of my Glass controls are having issues running under non-visual styles environments. It's not the end of the world, but there are quite a few users out there who run Classic windows. Fortunately the 2nd thing I discovered was I'm in good company, ever seen Windows Media player in Classic mode, can you see part of the back/next an the very top left? Media Player is snapping to that size. Or the way that when the application gets focus you can't read the song titles.
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'?
I've updated v1.0 of my wizard on CodeProject to use the The Microsoft Public License (Ms-PL). Now I just have to get v3 out http://centivus.com/Wizard.aspx. The wizard code is all there, it's just the licencing I need to validate.
This means I have to stop playing with pretty UIs for a bit .
I've been trying to track down an obscure bug for weeks. I've finally found out why I can't see what the problem is. Debug.Assert(..);
Unfortunately the app I am debugging has a custom control and when ever this issue occurs I've been looking at a really confusing state that I could not see how it got into. It just seems as if some processing had stopped half way through.
Well now I realise that the processing has.
You see a Debug.Assert() was being thrown.
This causes an OnPaint event
During the OnPaint the code is called AGAIN
Another Debug.Assert fires, but this time it does get exposed to me
Plan B
#if DEBUG if (_connections.Contains(arrow) == false) Debugger.Break();#endif
Everything you ever wanted to know about the new UI.http://blogs.msdn.com/jensenh/archive/2006/11/10/the-office-2007-ui-bible.aspx