Jump to bottom
This article does not cite any references or sources.
Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (November 2007)

A widget toolkit, widget library, or GUI toolkit is a set of widgets for use in designing applications with graphical user interfaces (GUIs). The toolkit itself is a piece of software that is generally provided with an operating system, windowing system, or window manager which provides programs with an application programming interface (API), allowing them to make use of widgets. Each widget facilitates a specific user-computer interaction, and appears as a visible part of the computer's GUI.

Widgets that are provided by a toolkit typically adhere to a unified design specification, including aesthetics, to lend a sense of overall cohesion among various parts of the application and between various applications within the GUI.

Widget toolkits also contain software to assist in the creation of window managers, as windows themselves are considered widgets. Some widgets support interaction with the user, for example labels, buttons, and check boxes. Others act as containers that group the widgets added to them, for example windows, panels, and tabs.

The graphical user interface of a program is commonly constructed in a cascading manner, with widgets being added directly to on top of existing widgets. In many implementations application windows are added directly to the desktop by the window manager, and can be stacked layered on top of each other through various means. Each window is associated with a particular application which controls the widgets added to its canvas, which can be watched and modified by their associated applications.

The toolkit handles user events, for example when the user clicks on a button. When an event is detected it is passed onto the application, where it is dealt with.

The look and feel of the widgets can be hard-coded in the toolkit, but some widget toolkit APIs decouple the look and feel from the definition of the widgets, allowing the widgets to be themed. (see pluggable look and feel).

Examples

See also

List of Widget toolkits
Low-level
Macintosh Toolbox/Carbon · Windows API · Intrinsics · Intuition · Xlib

High-level
On Amiga OS
BOOPSI · Magic User Interface · Zune · ReAction GUI

On Mac OS
and Mac OS X
Cocoa · MacApp · MacZoop · PowerPlant

On Microsoft
Windows
Microsoft Foundation Class Library · Windows Template Library · SmartWin++ · Object Windows Library · Visual Component Library · Windows Forms · Windows Presentation Foundation

On Unix,
under X11
Athena/Xaw · Motif · LessTif · InterViews

Cross-platform,
by language
Flash
Adobe Flex · Gnash · SWF2EXE Software

XML, AJAX
or SVG
Ample SDK · CougarXML · Dojo Toolkit · Echo · Ext · GladeXML · jQuery · MooTools · Pyjamas · qooxdoo · Rialto Toolkit · script.aculo.us · XAML · XML User Interface · XUL · Google Web Toolkit · Yahoo! UI Library

Java
Abstract Window Toolkit · Swing · Standard Widget Toolkit · Qt Jambi

C or C++
CEGUI · Component Library for Cross Platform · FLTK · FOX toolkit · OpenGL User Interface Library · GTK+ · Juce · JX Application Framework · Qt · Tk · TnFOX · Visual Component Framework · wxWidgets · YAAF · XForms · XVT · Ultimate++

Common Lisp
CAPI · Common Graphics · CLIM · McCLIM

Pascal
IP Pascal · Lazarus · fpGUI

Objective C
GNUstep

GUI widgets
Command input
Button · Context menu · Menu · Pie menu

Data input-output
Check box · Combo box · Drop-down list · Grid view · List box · Radio button · Scrollbar · Slider · Spinner · Text box

Informational
Balloon help · Heads-up display · Icon · Infobar · Label · Loading screen · Progress bar · Splash screen · Status bar · Throbber · Toast · Tooltip

Containers
Accordion · Disclosure widget · Menu bar · Panel · Ribbon · Tab · Toolbar · Window

Navigational
Address bar · Breadcrumb · Hyperlink · Tree view

Special windows
About box · Alert dialog box · Dialog box · File dialog · Inspector window · Modal window · Palette window

Related concepts
Layout manager · Look and feel · Widget toolkit

Window management topics
Techniques
Tiling · Stacking · Dynamic · Compositing · Re-parenting

Tiling Examples
dwm  · PWM  · Ion  · Wmii · Ratpoison · xmonad · Xerox Star · Windows 1.0 · GEM (2.0 and Later)

Stacking Examples
twm  · mwm  · FVWM  · Enlightenment · Blackbox · Presentation Manager · Windows 2.0 · Windows 95 · Windows 98 · Windows Me · Windows NT - Windows XP · Mac OS 9 and earlier · GEM 1.1 · WindowLab · Xerox Alto

Compositing Examples
Beryl  · Compiz · Desktop Window Manager (with Windows Aero) · Metacity · KWin · Aqua (with the Quartz Compositor)

Systems with WMs
Amiga OS · Mac OS · OS/2 · Xerox PARC (Xerox Alto, Xerox Star) · Microsoft Windows · MS-DOS with GEM · Atari TOS · RISC OS