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