Most of the user visible work was actually done last weekend, but between being sick and getting called into work (in spite of the last point) Tuesday because The Internet Broke, it never got released. By the time I could have packaged it all up, it was another weekend.
Last week’s work consisted of improving operation in firefox (the disk set selection lists have text now) and building up the ability to recognize. This, as with many things, meant spending a lot of time banging my head against Dashboard. While Safari will politely send mousemove events every time the modifiers change, and Firefox will give you keyup/down events if you can arrange to have the focus on a text control, Dashboard forces you to move the mouse to find out that the keys changed state.
With that ability, however limited, you can now hold ALT to report the position under the cursor, and nail down where on a disk a certain event happens. Building on this, many disks now have textual descriptions – days of the week, approximate months, and moon phases.
This week’s work consisted mainly of code cleanup, and fixing more Dashboard quirks. The main issue was some noticeable flicker when hovering the cursor around. It seems that Dashboard will send mousemove events much more rapidly than most browsers, and it was redrawing the overlay like crazy in response to the updated positions. I made a generalized function-call-throttling mechanism.
Dashboard is also making the opening animation choppy with it’s fancy ripple effect. I’ve got a small delay, but making it long enough to avoid the choppiness would leave people wondering where the widget is.
The Plan for 1.0
I’ve actually got a plan for the choppiness, which solves another problem I’ve got – where to put the CGD logo. The ‘loading’ picture will be the CGD logo; when the clock is ready go (and Dashboard is finished rippling) it will zoom-switch with the regular clock.
I also reclassified a lot of features as post-1.0, and invented a new bug category of Sweet Dreams to file them under. By the current plan, 0.7 is more or less feature complete. A large part of the reclassifying meant punting on a lot of features that just wanted for a clean GUI. The code is still there, and part of this weekend’s work was exposing parameters to make it easy for someone with a text editor to set the extra parameters.
I also finally discovered where Dashboard stores widget preferences – Apple’s ‘defaults’ database – which opens up a possible alternate method.