Mac-Style Busy Icon: spinning clock

Here are three Mac-style busy indicators, or spinners, running at three speeds.

Please don't "hotlink" these graphics. Copy them to your web server.

For a set of BMP files, one frame per image, get the attached macclock.zip file. I'm using them instead of the gears in Learning VB: spinning my wheels, animating an image with the timer.

How to do this on GIMP:

Create a new blank image, square.

Drag horizontal and vertical guides to the halfway points.

Using the brush tool, lay down a black dot at 12-o'clock.

Set the opacity to 25%.

Duplicate the layer 13 times, then delete the background image. Now the images should be numbered 1 to 12.

For each layer, rotate each by a 30-degree increment. Frame 1 should be rotated -30, frame 2 rotated -60, frame 3 rotated -90, and so forth. The degrees are -30, -60, -90, -120, -150, -180, +150 (which is just -210), +120, +90, +60, +30.

Due to the transparancy, the image should be gray, and look a little like a clock.

The rotations have made the layers pretty large. Using the right-mouse-button, click on each layer and trim the layer to the image size. Crop as needed to make the image look okay.

Save it as an XCF file.

Now, you will use this "onionskin" to create each clock image. I will call this the "source" image. The animation will be composed in another document, which I'll call the "destination" image. Create a new document, the destination, with dimensions identical to the source.

Arrange the layers in the source image so the 12-o'clock image is at the top, and the layers are in numerical order.

Use the Edit->Copy Visible to snapshot this composed image. Paste it into the destination image. Click the Anchor button to create a new layer from the pasted image.

Arrange the layers in the source image so the 1-o'clock image is at the top, and the layers are in numerical order, and "wrapping around" with 12-o'clock below 1-o'clock.

Use the Edit-Copy Visible to snapshot this composed image. Paste into destination, then click the Anchor button to create a new layer.

Repeat this for every hour on the source image.

Once completed, you can convert the destination image into an animation by saving as a GIF, and following the dialog boxes. (Remember to save the original as an XCF.)

I haven't Script-Fu'd it, but it's ripe for it.

Implementation

I needed to alter the code (linked above) so that it showed three states: the batch thread is not running, the batch thread is running but the schedule doesn't allow work, and the thread is really working. So the code got altered a little bit. (code is forthcoming)

So, what I do now is hide the spinning clock when the thread isn't running. When the thread is waiting for the schedule to start, it shows the clock in a frozen state (at 2:00, which doesn't look like 12:00, so it looks stalled). When it's doing work, it shows the full animation.

Unfortunately, this state info isn't saved in a single location, so it's inferred in a hard-to-read way, for now.

AttachmentSize
macclock.zip34.01 KB
rotatingclock-slow2.gif16.56 KB
rotatingclock-fast2.gif16.56 KB
rotatingclock2.gif16.56 KB
rotatingclock-slow.gif1.5 KB
rotatingclock-fast.gif1.5 KB
rotatingclock.gif1.5 KB

.