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. |