//////////////////////////////////////////////////////////////////////// // // Pie Menus for Internet Explorer 5.0 JScript. // Copyright (C) 2001 by Don Hopkins. // All rights reserved. // Designed and implemented by Don Hopkins. // // mailto:xardox@mindspring.com // http://www.piemenu.com // http://www.catalog.com/hopkins // // This program is provided for unrestricted use, // provided that this copyright message is preserved. // There is no warranty, and no author or distributer // accepts responsibility for any damage caused by // this program. // // The ideas behind pie menus are not patented or // restricted in any way, and the interface and // algorithms may be freely copied and improved upon. // Don't bother patenting pie menus, // because the idea has been around // for a long time in many forms, // and your patent will most likely be // invalid and easy to challenge, // therefore a waste of time and money. // It would be much better to spend your resources // innovating new ideas and developing great products // instead of trying to patent obvious old ideas. // // This code and the ideas behind it were developed // over time by Don Hopkins, thanks to the support of: // University of Maryland, UniPress Software, // Sun Microsystems, DUX Software, Turing Institute, // Carnegie Mellon University, Kaleida Labs, // Interval Research Corporation, Maxis Software, // Electronic Arts, Lush Creations, // Mike Gallaher, Mark Weiser, Jack Callahan, // Ben Shneiderman, Mitch Bradley, Owen Densmore, // Arthur van Hoff, James Gosling, Martha Zimet, // Ted Selker, David Liddle, Brad Meyers, // Bill Verplank, Craig Hubley, Bob Adams, // David Levitt, Russel Nelson, John Gilmore, // Hugh Daniel, Josh Siegel, Mary Hopkins, // Levi Kruger, Eric Bowman, Jamie Doornbos, // Jim Mackraz and Will Wright. // // Pie menus are the natural result of optimizing an // interface with respect to Fitts' Law. // It states that the larger the area and closer the // distance of the target, the less time (and the fewer errors) // users require to select the target. // // Therefore all of the pie menu targets have a large area // (pie slice shaped regions), each of them positioned closely // around the cursor in a different direction. // Their directional nature enables the user to // move the cursor further out, in order to gain // more precise control over the selection (leverage). // //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// // Features // // XML pie menu tree specification. // Arbitrary DHTML in center and menu items. // Submenus. // Recast as html behavior component. // Penultimate item tracking. //////////////////////////////////////////////////////////////////////// // TODO // // Fix scrolling bug: if page is scrolled up, // menu appears away from cursor. // Implement all callbacks. // Properties and callback handlers inherited // from pie to item to sub-pie to sub-item. // Implement API for dynamic menu creation. // Limit number of items to 8, boost number of items to even. // Item shuffling for reading order. // Title bar. // Tool tips. // Items inherit overridable properties from menu. // Submenus inherit overridable properties from supermenus. // URL navigation actions. // Mouse ahead display premption. // Scrolling pie menus. // Submenu navigation (back, cancel). // Keyboard navigation. // Simple text indented list menu specification. // Full control over all presentation styles. // Optimize memory usage. // Defer object creation. // Reuse presentation objects. // Streamline startup. // Cache expensive items. // Preloading media and common menus. // Dynamic layout, reshaping, animation, sophisticated feedback. // Save state as XML. // User editable menus. // Interactive pie menu authoring tool (wizard). //////////////////////////////////////////////////////////////////////// // Applications // // Pie Menu Browser Accelerator. // Take over right button menu with a browser utility pie menu. // Pie Menu Hot List Editor. // Arrange browser hot list items into a pie menu tree. // Pie Start Menu. // Arrange Windows Start Menu items into a pie menu tree. // Web site navigation. // Browse the table of contents of a web site, and jump to any page. HEY EMACS!!! Local Variables: mode: indented-text indent-tabs-mode: nil End: GOOD EMACS.