I was thinking about something Travis mentioned to me the other day about Animations. He pointed out that the Animations package only gives you finite animation. It runs for a particular amount of time and then finishes.
After letting that rattle around in my head for a bit I realised that all animations are like that. Actually, they just loop a set of finite animations endlessly. So I've added a #loop API to Animations (v3 in public store). You can start the Animation with #loop and stop it with #stop.
One prime example of a common endless animation is the blinking cursor. Previously in WithStyle I used ExtraActivity to achieve a blinking cursor. This was pretty good, but now that I have Animations, I wanted to be able to achieve the same sort of thing.
We got fancy in WithStyle,.. while you're typing the cursor won't blink, it stays solid. When you idle, the cursor starts to blink. Pretty nifty actually. For a quick and dirty example in VisualWorks I decided not to do that.
Instead, I plugged in to every input field and text edit area in VisualWorks Wrappers to give them a blinking cursor. The example was pretty easy, just have an animation that turned the cursor on and invalidated the current edit area and then flip the cursor off and invalidate again.. so on and so forth forever.
I've published BlinkingInsertionPoint to public store which does just that. It hooks in to all looks and feels (except motif, which has its own special insertion point drawer) and begins the animation immediately. All editable text areas will now have a blinking cursor using the new #loop behaviour.