Circle Menu Demo

Enjoy playing around with it.
Please let it load up for a few seconds. It will bring up a Circle Menu in the center of the window on its own.

Well, here's the demo. I hope you enjoy it. You can pick any one of the interaction methods I've described. You can also choose whether you want the Visible Slices feature to be turned on or off. Finally, you can choose whether the menu option windows are all the same size or only as big as the text inside forces them to be.
When you start a Circle Menu will be created for you to try out. If you want to quit the menu, click on the central square. (In fact, whenever you want to leave a menu or sub-menu, click on its central square) You can click anywhere in the window to bring up another Circle Menu. One thing to remember: you can't change interaction methods while a particular Circle Menu is running. If you want to change the interaction method, quit the Circle Menu currently open, select your interaction method of choice and click on the demo window.
The menu you'll be using is a copy of the Windows 95/98 menu that you get when you right-click on the desktop background.

Problems:
The applet works badly under Internet Explorer. You can look at the Circle Menu and use the default interaction mechanism (Expanding Circle), but because Internet Explorer chooses to put these large warnings on all my windows (including the menu option windows), the buttons which would have allowed you to make your selection are pushed aside. Thus, you can only partially use Circle Menu.

Also, it seems to work badly on platforms other than Windows. For example, Macintoshes don't seem to allow for the mouse tracking capabilities that the demo needs. Solaris doesn't ever display the windows where the menu options are shown. Linux seems to have the same problem. Also, different Java Virtual Machines on the same platform do things differently, making the results even more unpredictable (I tried Sun, Netscape, Microsoft and CodeWarrior JVM's). Remember that bit about write once, run anywhere? Unfortunately, as I am busy with the user trials demo, I don't have time to debug it on multiple platforms.

So for now the safest bet is running the demo on a Netscape in Windows.
 

Free Source Code!
And you thought you had all the free stuff on the web.


Yes, I'm giving the source code away. Yes, its free. You can read it, you can modify it, you can print it out and use it to start a fire. Just make sure to keep it in the public domain and to mention where you got it from. You don't see a link to it here because I haven't put it up yet because it still needs to be cleaned up and properly documented.

Confessions
Sorry, but I've got to come clean about a few things.

Depending on your computer, it may be v.e..r....y... ..s......l....o........w. I developed this on a PentiumII-400 and it runs quite well on my computer but you may not be as lucky. The reason? I wrote it in Java so that it would be possible for pretty much anyone to get access to Circle Menus. On the down side, Java tends to be pretty slow. Sorry, did the best I could given the design constraints. Although I love optimized code, I don't really know how to optimize for Java's particular oddities. The Circle Menu applet only works as a demo. Sorry, but you can't just take my code and embed it into your applications. Not even if they're written in Java. The reason is that Java doesn't allow one to track the mouse's motion when the mouse is not over one of the windows in your Java application. So that's why I have to cover the entire screen with one large window: so that I always know where the mouse is. And I need that information in order to implement my interaction mechanisms. I understand the Java Drag and Drop API may be able to help me but not in this version of Circle Menus.

Bright Side
Why there's still room for hope

Despite the above difficulties, all's not lost. For one, Circle Menus can be written in pretty much any language or environment and I hope that my Circle Menus will encourage others to write their own versions.
But more immediately, I'm going to write another version as well. One written not in Java, but in Dynamic HTML and JavaScript. This means that any web author will be able to easily incorporate Circle Menus into their web sites, just like they already use pull-down menus. And knowing how people really go for cute and novel stuff (especially on the Internet), I think that as a result Circle Menus will really catch on, at least as a fad and you know, even that is better than their state today.

Circle Menu Central