Widget (computing)
Encyclopedia
In computer programming, a widget (or control) is an element of a graphical user interface
(GUI) that displays an information arrangement changeable by the user, such as a window
or a text box
. The defining characteristic of a widget is to provide a single interaction point for the direct manipulation of a given kind of data. In other words, widgets are basic visual building blocks which, combined in an application, hold all the data processed by the application and the available interactions on this data.
User Interface. Different implementations of these generic widgets are often packaged together in widget toolkit
s, which programmers use to build graphical user interfaces (GUIs). Most operating systems include a set of ready-to-tailor widgets that a programmer can incorporate in an application, specifying how it is to behave. Each type of widgets generally is defined as a class by object-oriented programming (OOP
). Therefore, many widgets are derived from class inheritance.
In the context of an application, a widget may be enabled or disabled at a given point in time. An enabled widget has the capacity to respond to events, such as keystrokes or mouse actions. A widget that cannot respond to such events is considered disabled. The appearance of disabled widget is typically different from an enabled widget; the disabled widget may be drawn in a lighter color, or may be visually obscured in some way. See the image to the right for an example.
Widgets are sometimes qualified as virtual
to distinguish them from their physical counterparts, e.g. virtual buttons
that can be clicked with a mouse cursor
, vs. physical buttons
that can be pressed with a finger.
A related (but different) concept is the desktop widget, a small specialized GUI application that provides some visual information and/or easy access to frequently used functions such as clocks, calendars, news aggregators, calculators and desktop notes. These kinds of widgets are hosted by a widget engine
.
”, and as such was first applied to user interface elements during Project Athena
in 1988. The word was chosen because "all other common terms were overloaded with inappropriate connotations" and – since the project's Intrinsics
toolkit associated each widget with a window of the underlying X Window System
– because of the common prefix with the word window.
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
(GUI) that displays an information arrangement changeable by the user, such as a window
Window (computing)
In computing, a window is a visual area containing some kind of user interface. It usually has a rectangular shape that can overlap with the area of other windows...
or a text box
Text box
A text box, text field or text entry box is a kind of widget used when building a graphical user interface . A text box's purpose is to allow the user to input text information to be used by the program...
. The defining characteristic of a widget is to provide a single interaction point for the direct manipulation of a given kind of data. In other words, widgets are basic visual building blocks which, combined in an application, hold all the data processed by the application and the available interactions on this data.
History and use
A family of common reusable widgets has evolved for holding general information based on the Palo Alto Research Center Inc. research for the Xerox AltoXerox Alto
The Xerox Alto was one of the first computers designed for individual use , making it arguably what is now called a personal computer. It was developed at Xerox PARC in 1973...
User Interface. Different implementations of these generic widgets are often packaged together in widget toolkit
Widget toolkit
In computing, a widget toolkit, widget library, or GUI toolkit is a set of widgets for use in designing applications with graphical user interfaces...
s, which programmers use to build graphical user interfaces (GUIs). Most operating systems include a set of ready-to-tailor widgets that a programmer can incorporate in an application, specifying how it is to behave. Each type of widgets generally is defined as a class by object-oriented programming (OOP
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
). Therefore, many widgets are derived from class inheritance.
In the context of an application, a widget may be enabled or disabled at a given point in time. An enabled widget has the capacity to respond to events, such as keystrokes or mouse actions. A widget that cannot respond to such events is considered disabled. The appearance of disabled widget is typically different from an enabled widget; the disabled widget may be drawn in a lighter color, or may be visually obscured in some way. See the image to the right for an example.
Widgets are sometimes qualified as virtual
Virtual
The term virtual is a concept applied in many fields with somewhat differing connotations, and also, differing denotations.The term has been defined in philosophy as "that which is not real" but may display the salient qualities of the real....
to distinguish them from their physical counterparts, e.g. virtual buttons
Button (computing)
In computing, a button is a user interface element that provides the user a simple way to trigger an event, like searching for a query at a search engine, or to interact with dialog boxes, like confirming an action.-Description:A typical button is a rectangle or rounded rectangle, wider than it is...
that can be clicked with a mouse cursor
Cursor (computers)
In computing, a cursor is an indicator used to show the position on a computer monitor or other display device that will respond to input from a text input or pointing device. The flashing text cursor may be referred to as a caret in some cases...
, vs. physical buttons
Button (control)
A push-button or simply button is a simple switch mechanism for controlling some aspect of a machine or a process. Buttons are typically made out of hard material, usually plastic or metal. The surface is usually flat or shaped to accommodate the human finger or hand, so as to be easily depressed...
that can be pressed with a finger.
A related (but different) concept is the desktop widget, a small specialized GUI application that provides some visual information and/or easy access to frequently used functions such as clocks, calendars, news aggregators, calculators and desktop notes. These kinds of widgets are hosted by a widget engine
Widget engine
In computer software, a widget engine is a software service available to users for running and displaying applets on a graphical user interface, such as that of the desktop.The widget model in widget engines is attractive because of ease of development...
.
Etymology
“Widget” entered American English around 1920 as a generic term for any useful device, particularly a product manufactured for sale. In computer use it has been borrowed as a shortened form of “window gadgetGadget
A gadget is a small technological object that has a particular function, but is often thought of as a novelty. Gadgets are invariably considered to be more unusually or cleverly designed than normal technological objects at the time of their invention...
”, and as such was first applied to user interface elements during Project Athena
Project Athena
Project Athena was a joint project of MIT, Digital Equipment Corporation, and IBM to produce a campus-wide distributed computing environment for educational use. It was launched in 1983, and research and development ran until June 30, 1991, eight years after it began...
in 1988. The word was chosen because "all other common terms were overloaded with inappropriate connotations" and – since the project's Intrinsics
Intrinsics
X Toolkit Intrinsics is a library used in the X Window System. More precisely, it is a library that uses the low-level Xlib library and provides a friendly API to develop X11 software with graphical widgets...
toolkit associated each widget with a window of the underlying X Window System
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
– because of the common prefix with the word window.
List of common generic widgets
- Selection and display of collections
- ButtonButton (computing)In computing, a button is a user interface element that provides the user a simple way to trigger an event, like searching for a query at a search engine, or to interact with dialog boxes, like confirming an action.-Description:A typical button is a rectangle or rounded rectangle, wider than it is...
– control which can be clicked upon to perform an action- Check boxCheck boxIn computing, a checkbox is a graphical user interface element that permits the user to make multiple selections from a number of options or to have the user answer yes or no on a simple yes/no question.Normally, checkboxes are shown on...
– control which can be clicked upon to select or deselect an option. Multiple check boxes in a group may be selected - Radio buttonRadio buttonA radio button or option button is a type of graphical user interface element that allows the user to choose only one of a predefined set of options....
– control which can be clicked upon to select an option. Only one radio button in a group may be selected
- Check box
- SliderSlider (computing)A slider, also known as track bar in Microsoft literature, is an object in a GUI with which a user may set a value by moving an indicator, usually in a horizontal fashion. In some cases the user may also click on a point on the slider to change the setting...
– control which can be moved up and down or right and left to select a value - List box
- SpinnerSpinner (computing)A spinner is a graphical widget in a GUI, typically oriented vertically, with which a user may adjust a value in an adjoining text box by either clicking on an up or down arrow, or by holding an arrow down, causing the value in the text box to increase or decrease...
– control which has up and down buttons to scroll through a range of values - Drop-down listDrop-down listIn computing with graphical user interfaces, a drop-down list is a user interface control GUI element , similar to a list box, which allows the user to choose one value from a list. When a drop-down list is inactive, it displays a single value. When activated, it displays a list of values, from...
- MenuMenu (computing)In computing and telecommunications, a menu is a list of commands presented to an operator by a computer or communications system. A menu is used in contrast to a command-line interface, where instructions to the computer are given in the form of commands .Choices given from a menu may be selected...
– control which can be clicked upon to choose a selection to activate- Context menuContext menuA context menu is a menu in a graphical user interface that appears upon user interaction, such as a right mouse click or middle click mouse operation...
– a type of menu whose contents depend on the context or state in effect when the menu is invoked - Pie menuPie menuIn computer interface design, a pie 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...
- RibbonRibbon (computing)In GUI-based application software, a ribbon is an interface where a set of toolbars are placed on tabs in a tab bar. Recent releases of some Microsoft applications have embraced this form with a modular ribbon as their main interface. The Ribbon is a contextual interface that offers functionality...
- Context menu
- Menu barMenu barA menu bar is a region of a screen or application interface where drop down menus are displayed. The menu bar's purpose is to supply a common housing for window- or application-specific menus which provide access to such functions as opening files, interacting with an application, or displaying...
- ToolbarToolbarIn a graphical user interface, on a computer monitor, a toolbar is a GUI widget on which on-screen buttons, icons, menus, or other input or output elements are placed. Toolbars are seen in office suites, graphics editors, and web browsers...
- Combo boxCombo boxA combo box is a commonly used graphical user interface widget . It is a combination of a drop-down list or list box and a single-line textbox, allowing the user to either type a value directly into the control or choose from a list of existing options.Combo boxes are typically applied to provide...
(text boxText boxA text box, text field or text entry box is a kind of widget used when building a graphical user interface . A text box's purpose is to allow the user to input text information to be used by the program...
with attached menuMenu (computing)In computing and telecommunications, a menu is a list of commands presented to an operator by a computer or communications system. A menu is used in contrast to a command-line interface, where instructions to the computer are given in the form of commands .Choices given from a menu may be selected...
or List box) - IconComputer iconA computer icon is a pictogram displayed on a computer screen and used to navigate a computer system or mobile device. The icon itself is a small picture or symbol serving as a quick, intuitive representation of a software tool, function or a data file accessible on the system. It functions as an...
- Tree viewTree viewA tree view or an outline view is a graphical user interface element that presents a hierarchical view of information. Each item can have a number of subitems...
- Grid viewGrid viewA grid view or a datagrid is a graphical user interface element that presents a tabular view of data. A typical grid view also supports some or all of the following:* Clicking a column header to change the sort order of the grid...
- Button
- Navigation
- TabTab (GUI)In the area of graphical user interfaces , a tabbed document interface is one that allows multiple documents to be contained within a single window, using tabs as a navigational widget for switching between sets of documents...
- ScrollbarScrollbarA scrollbar is an object in a graphical user interface with which continuous text, pictures or anything else can be scrolled including time in video applications, i.e., viewed even if it does not fit into the space in a computer display, window, or viewport...
- Tab
- Text input
- Text boxText boxA text box, text field or text entry box is a kind of widget used when building a graphical user interface . A text box's purpose is to allow the user to input text information to be used by the program...
(edit field) - Combo boxCombo boxA combo box is a commonly used graphical user interface widget . It is a combination of a drop-down list or list box and a single-line textbox, allowing the user to either type a value directly into the control or choose from a list of existing options.Combo boxes are typically applied to provide...
(text boxText boxA text box, text field or text entry box is a kind of widget used when building a graphical user interface . A text box's purpose is to allow the user to input text information to be used by the program...
with attached menuMenu (computing)In computing and telecommunications, a menu is a list of commands presented to an operator by a computer or communications system. A menu is used in contrast to a command-line interface, where instructions to the computer are given in the form of commands .Choices given from a menu may be selected...
)
- Text box
- Output
- LabelLabel (control)A label is a user interface control which displays text on a form. It is usually a static control; having no interactivity. A label is generally used to identify a nearby text box or other widget. Some labels can respond to events such as mouse clicks, allowing the text of the label to be copied,...
– text used to describe another widget - TooltipTooltipThe tooltip or infotip is a common graphical user interface element. It is used in conjunction with a cursor, usually a mouse pointer. The user hovers the cursor over an item, without clicking it, and a tooltip may appear—a small "hover box" with information about the item being hovered...
– informational window which appears when the mouse hovers over another control - Balloon helpBalloon helpBalloon help was a help system introduced by Apple Computer in their 1991 release of System 7.0. The name referred to the way the help text was displayed, in "balloons", like those containing the words in a comic strip...
- Status barStatus barA status bar, similar to a status line, is an information area typically found at the bottom of windows in a graphical user interface.A status bar is sometimes divided into sections, each of which shows different information. Its job is primarily to display information about the current state of...
- Progress barProgress barA progress bar is a component in a graphical user interface used to convey the progress of a task, such as a download or file transfer. Often, the graphic is accompanied by a textual representation of the progress in a percent format....
- InfobarInfobarAn infobar is a widget used by Microsoft Internet Explorer, Mozilla Firefox, Google Chrome and other programs to display non-critical information to a user...
- Label
- Containers
- WindowWindow (computing)In computing, a window is a visual area containing some kind of user interface. It usually has a rectangular shape that can overlap with the area of other windows...
- Modal windowModal windowIn user interface design, a modal window is a child window that requires users to interact with it before they can return to operating the parent application, thus preventing the workflow on the application main window...
- Dialog boxDialog boxIn a graphical user interface of computers, a dialog box is a type of window used to enable reciprocal communication or "dialog" between a computer and its user. It may communicate information to the user, prompt the user for a response, or both...
- Palette window, also known as "Utility window"
- Inspector windowInspector windowAn inspector window is a type of computing window that shows current parameters of a selected object and allows these parameters to be changed on-the-fly...
- Inspector window
- FrameFrame (GUI)A frame, or group box, is a type of box within which a collection of Graphical User Interface widgets can be grouped, usually because the designer of the form believes the grouping looks better than leaving the items outside of a frame, or uses a frame to allow multiple uses of a widget which...
- Modal window
- Window
See also
- Graphical user interface elements
- Metawidgets are widgets for controlling the operation of other widgets within a GUI.
- Widget engineWidget engineIn computer software, a widget engine is a software service available to users for running and displaying applets on a graphical user interface, such as that of the desktop.The widget model in widget engines is attractive because of ease of development...
for mostly unrelated, physically inspired "widgets" - Widget toolkitWidget toolkitIn computing, a widget toolkit, widget library, or GUI toolkit is a set of widgets for use in designing applications with graphical user interfaces...
for the implementations of widget programming interfaces