- Pie menu
-
In computer interface design, a pie menu (also known as a radial menu) is a circular context menu where selection depends on direction. A pie menu is made of several "pie slices" around an inactive center and works best with stylus input, and well with a mouse. Pie slices are drawn with a hole in the middle for an easy way to exit the menu.
Pie menus work well with keyboard acceleration, particularly four and eight item menus, on the cursor keys and the number pad. A goal of pie menus is to provide a smooth, reliable gestural style of interaction for novices and experts.[1]
A slice can lead to another pie menu; selecting this may center the mouse cursor in the new menu. A marking menu[2] is a variant of the technique.[3]
As a kind of context menu, pie menus are often context-sensitive,[4] showing different options depending on what the mouse cursor was pointing at when the menu was requested.
Contents
History
The first documented radial menu is attributed to a system called PIXIE in 1969. Some universities explored alternative visual layouts.[5]
In 1986, Mike Gallaher and Don Hopkins together arrived independently to the concept of a context menu based on the angle to the origin where the exact angle could be passed as a parameter to a command, and the radius could be used to trigger a submenu.[6]
The first performance comparison to linear menus was performed at 1988 showing an increase in performance of 15% less time and a reduction of selection errors.[7]
Usage
For the novice, pie menus are easy because they are a self-revealing gestural interface: They show what you can do and direct you how to do it. By clicking and popping up a pie menu, looking at the labels, moving the cursor in the desired direction, then clicking to make a selection, you learn the menu and practice the gesture to "mark ahead" ("mouse ahead" in the case of a mouse, "wave ahead" in the case of a dataglove). With a little practice, it becomes quite easy to mark ahead even through nested pie menus.
For the expert, they're efficient because—without even looking—you can move in any direction, and mark ahead so fast that the menu doesn't even pop up. Only when used more slowly like a traditional menu, does a pie menu pop up on the screen, to reveal the available selections.
Most importantly, novices soon become experts, because every time you select from a pie menu, you practice the motion to mark ahead, so you naturally learn to do it by feel. As Jaron Lanier of VPL Research has remarked, "The mind may forget, but the body remembers." Pie menus take advantage of the body's ability to remember muscle motion and direction, even when the mind has forgotten the corresponding symbolic labels.[1]
Comparison with other interaction techniques
Pie menus are faster and more reliable to select from than linear menus, because selection depends on direction instead of distance. The circular menu slices are large in size and near the pointer for fast interaction (see Fitts's law). Experienced users use muscle memory without looking at the menu while selecting from it.[1][8] Nested pie menus can efficiently offer many options, and some pie menus can pop up linear menus, and combine linear and radial items in the same menu.[9] Pie menus just like any popup menu are shown only when requested, resulting in less visual distraction and cognitive load than toolbars and menu bars that are always shown.
Pie menus show available options, in contrast to invisible mouse gestures. Pie menus, which delay appearance until the cursor is not moving, reduce intrusiveness to the same level as mouse gestures for experienced users. Pie menus take up more screen space than linear menus, and the number of slices in an individual menu must be kept low for effectiveness by using submenus. When using pie menus, submenus may overlap with the parent menu, but the parent menu may become translucent or hidden.
Pie menus are most suited for actions that have been laid out by humans, and have logical grouping choices. Linear menus are most suited for dynamic, large menus that have many possible options, without any logical grouping,[1] since pie menus can only show a limited number of menu items. Around 3-12 items can be reasonably accommodated in a radial layout, but additional items past that tend to counteract the benefits of using pie menus in the first place. This can be overcome with related techniques that allow chaining commands in one single gesture through submenus.[3][10]
However, using interaction techniques that are not pointer based have proven problematic with both pie and linear menus.[11]
Pie menus are unavailable as standard widgets in common commercial toolkits. Video games often require custom widget development, so pie menu cost is lower in that particular scenario.
Notable implementations
- Video games: Secret of Mana, Seiken Densetsu 3, America's Army 3, Habitat, Beyond Good & Evil, Full Throttle, Neverwinter Nights, Normality, The Sims, Perfect Dark, Planescape: Torment, Sacrifice, Saints Row, Saints Row 2, Second Life, Battlefield 2, Freedom Fighters, Ratchet & Clank, Silver, The Temple of Elemental Evil, Crysis, Mass Effect, Warzone 2100, Halo Wars, The Lord of the Rings: The Battle for Middle-earth, Trauma Center, Brütal Legend, Operation Flashpoint: Dragon Rising, Dragon Age: Origins, Prototype, Cortex Command, Imperium Romanum
- PowerAnimator, a commercial 3D modelling program and the first to use marking menus
- Mozilla and Mozilla Firefox extensions RadialContext and easyGestures
- Autodesk Maya, a commercial 3D modelling program
- Metisse and Unix Desktop Environment, window managers for the X Window System
- modo, an advanced polygon and subdivision surface modeling package
- Songza - A music search engine and internet jukebox that uses a pie menu for its main mode of interaction, by Aza Raskin.
- Cortex Inc. - Share fast by Joey Primiani
- Quicksilver via the Constellation plug-in
- Sugar (GUI), GUI implementation for the One Laptop per Child project
- BumpTop - A computer desktop created to mimic paper files on a real world desk which uses pie menus as many of its control menus.
See also
References
- ^ a b c d Hopkins, Don (December 1991). "The Design and Implementation of Pie Menus". Dr. Dobb's Journal. http://www.donhopkins.com/drupal/node/98. Retrieved December 15, 2009.
- ^ Gordon Kurtenbach1 and William Buxton. "User Learning and Performance with Marking Menus". http://www.billbuxton.com/MMUserLearn.html.
- ^ Don Hopkins. "Dynamic Pie Menus". http://www.donhopkins.com/drupal/node/68.
- ^ Gordon Kurtenbach (April 2004). "Notes on the History of Radial menus, Pie menus and Marking menus". Archived from the original on 2007-08-24. http://web.archive.org/web/20070824083657/http://www.dgp.toronto.edu/~gordo/papers/Notes+on+History+of+Radial+Menus.pdf.
- ^ Don Hopkins. "Theta Menus Proposal and Pie Menu Designs - May 1986". http://www.donhopkins.com/drupal/node/82.
- ^ Callahan, Jack; Hopkins, Don; Weiser, Mark; Shneiderman, Ben (1988). "An empirical comparison of pie vs. linear menus". Proceedings of ACM CHI Conference on Human Factors in Computing Systems. pp. 95–100. http://doi.acm.org/10.1145/57167.57182.
- ^ Shneiderman, Ben; Plaisant, Catherine; Botafogo, Rodrigo; Hopkins, Don; Weiland, William. Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser. Human-Computer Interaction Laboratory, University of Maryland. http://www.donhopkins.com/drupal/node/102. Retrieved December 15, 2009.
- ^ Hopkins, Don. "Pie Menus on Python/GTK/Cairo for OLPC Sugar". http://www.donhopkins.com/drupal/node/128. Retrieved December 15, 2009.
- ^ www.markingmenus.org
- ^ Leithinger, D; Haller, M (October 10–12, 2007). "Improving Menu Interaction for Cluttered Tabletop Setups with User-Drawn Path Menus". Horizontal Interactive Human-Computer Systems, 2007. TABLETOP '07. Second Annual IEEE International Workshop on. Newport, RI. pp. 121–128. doi:10.1109/TABLETOP.2007.24. ISBN 978-0-7695-2013-1. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?tp=&arnumber=4384120&isnumber=4384097. Retrieved December 15, 2009.
- Wiseman, N. E.; Lemke, H. U.; Hiles, J. O.. "PIXIE: A New Approach to Graphical Man-Machine Communications". Proceedings of 1969 CAD Conference Southhampton, IEEE Conference Publication 51. pp. 463.
External links
- Tcl/Tk - A simple implementation in pure Tcl/Tk
- Pie Menus in c2 wiki
- Pie Menus for Qt
- Pie Menus for OLPC Sugar User Interface, in Python with GTK, Cairo and Pango modules
- Slashdot article: Pie-menus in Mozilla
- Asymetrix [ToolBook] pie menu component, by Paolo Tosolini. Source code: [1] [2].
- Python - Open source Python pie menus for GTK/Cairo/Pango/OLPC/Sugar user interface, by Don Hopkins.
- OpenLaszlo - Open source OpenLaszlo pie menus for Flash, by Don Hopkins.
- JavaScript - Open source JavaScript pie menus for the Internet Explorer browser, by Don Hopkins.
- JavaScript/jQuery Radmenu Plugin, Open source JavaScript radial / pie menus for ALL browsers, by Nirvana Tikku.
- ActiveX - Open source C++ ActiveX pie menus for the Internet Explorer browser, by Don Hopkins.
- X11 - Open source "piewm" X11 window manager with pie menus, by Don Hopkins, maintained by Russ Nelson.
- TCL/Tk - Free software Pie Menus for TCK/Tk, written in 1992 for SimCity by Don Hopkins.
- NeWS - Free software Pie Menus for NeWS 1.1 written in March 1988 by Don Hopkins.
- X10 - Free software Pie Menus for X10 "uwm" Window Manager, written in June 1986 by Don Hopkins.
- Suntools - Free software Pie Menus for Suntools, written in January 1987 by Mark Weiser.
- X10 - Free software Theta menus, proof of concept prototype for X10, written in June 1986 by Don Hopkins.
- Pie Menu Articles by Don Hopkins
- Circle Menus, by Greg Bronevetsky.
- 3D Circle Menu Variation - Cube Menu, by conquex with source code.
- Asymetrix [ToolBook] pie menu component, by Paolo Tosolini. Source code: [3] [4].
- Pie Menus for Windows, Dr. Dobb's Journal, Nov., 1992, pp 30–39, by Carl Rollo.
- Pie Menus Demonstration in Java, by Carl Rollo.
- WPF Pie Menu, by Christoph Menge
GUI widgets Command input Data input-output Checkbox · Combo box · Cycle button · Drop-down list · Grid view · List box · Radio button · Scrollbar · Slider · Spinner · Text boxInformational Balloon help · Heads-up display in computing · Heads-up display in video games · Icon · Infobar · Label · Loading screen · Progress bar · Sidebar · Splash screen · Status bar · Throbber · Toast · TooltipContainers Navigational Special windows Related concepts Categories:- GUI widgets
- User interface techniques
Wikimedia Foundation. 2010.