HOME

TheInfoList




A widget toolkit, widget library, GUI toolkit, or UX library is a
library A library is a collection of materials, books or media that are easily accessible for use and not just for display purposes. It is responsible for housing updated information in order to meet the user's needs on a daily basis. A library provi ...
or a collection of libraries containing a set of
graphical control element ., 300px, right Image:GUI Frame.svg, upExample of enabled and disabled widgets; the frame (GUI), frame at the bottom is disabled, they are grayed out. A graphical widget (also graphical control element or control) in a graphical user interface i ...
s (called ''widgets'') used to construct the
graphical user interface The graphical user interface (GUI "UI" by itself is still usually pronounced . or ) is a form of user interface In the industrial design Industrial design is a process of design A design is a plan or specification for the construction ...
(GUI) of programs. Most widget toolkits additionally include their own rendering engine. This engine can be specific to a certain
operating system An operating system (OS) is system software System software is software designed to provide a platform for other software. Examples of system software include operating systems (OS) like macOS, Linux, Android (operating system), Android and Mi ...

operating system
or windowing system or contain back-ends to interface with more multiple ones and also with rendering APIs such as
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithm ...
,
OpenVG OpenVG is an API In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , ...
, or EGL. The
look and feel In software design, the look and feel of a graphical user interface comprises aspects of its design, including elements such as colors, shapes, layout, and typefaces (the "look"), as well as the behavior of dynamic elements such as buttons, boxes, ...

look and feel
of the graphical control elements can be hard-coded or decoupled, allowing the graphical control elements to be themed/ skinned.


Overview

Some toolkits may be used from other languages by employing
language binding In programming and software design Software design is the process by which an agent Agent may refer to: Espionage, investigation, and law *, spies or intelligence officers * Law of agency, laws involving a person authorized to act on beh ...
s.
Graphical user interface builder A graphical user interface builder (or GUI builder), also known as GUI designer, is a software development tool A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherw ...
s such as e.g.
Glade Interface Designer Glade Interface Designer is a graphical user interface builder A graphical user interface builder (or GUI builder), also known as GUI designer, is a software development tool that simplifies the creation of graphical user interface, GUIs by allow ...
facilitate the authoring of GUIs in a
WYSIWYG In computing, WYSIWYG ( ), an acronym for What You See Is What You Get, is a system in which editing software allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed d ...
manner employing a
user interface markup language A user interface markup language is a markup language #REDIRECT Markup language In computer text processing, a markup language is a system for annotation, annotating a document in a way that is Syntax (logic), syntactically distinguishable from ...
such as in this case GtkBuilder. The GUI of a program is commonly constructed in a cascading manner, with graphical control elements being added directly to on top of one another. Most widget toolkits use
event-driven programming In computer programming, event-driven programming is a programming paradigm in which the Control flow, flow of the program is determined by event (computing), events such as user actions (computer mouse, mouse clicks, key presses), sensor outputs, ...
as a model for interaction.Past, Present and Future of User Interface Software Tools
Brad Myers, Scott E. Hudson, Randy Pausch, Y Pausch. ACM Transactions on Computer-Human Interaction, 2000

/ref> The toolkit handles Event handler, user events, for example when the user clicks on a
button In modern clothing and fashion design, a button is a small fastener, now most commonly made of plastic but also may be made of metal, wood, or seashell, that joins two pieces of fabric together. In archaeology, a button can be a significant Arti ...
. When an event is detected, it is passed on to the application where it is dealt with. The design of those toolkits has been criticized for promoting an oversimplified model of event-action, leading programmers to create error-prone, difficult to extend and excessively complex
application code This glossary of computer software terms lists the general terms related to computer software Software is a collection of Instruction (computer science), instructions and data (computing), data that tell a computer how to work. This is in con ...
.
Finite state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation A model is an informative representation of an object, person or system. ...
s and hierarchical state machines have been proposed as high-level models to represent the interactive state changes for reactive programs.


Windowing systems

A
window A window is an opening in a wall A wall is a structure and a surface that defines an area; carries a load; provides , , or ; or, is decorative. There are many kinds of walls, including: * Walls in buildings that form a fundamental part of ...
is considered to be a graphical control element. In some windowing systems, windows are added directly to the scene graph (canvas) by the
window manager Typical elements of a Window (computing), window. The window decoration is either drawn by the window manager (X11) or by the client (Wayland (display server protocol), Wayland). The drawing of the content is the task of the client. A window man ...
, and can be stacked and 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.


See also

*
WIMP (computing) In human–computer interaction Human–computer interaction (HCI) studies the design and use of computer technology, focused on the interfaces between people ( users) and computer A computer is a machine that can be programmed to carry ou ...
*
Layout managerLayout managers are software components used in widget toolkit A widget toolkit, widget library, GUI toolkit, or UX library is a library (computing), library or a collection of libraries containing a set of graphical control elements (called ''widget ...
*
List of widget toolkits This article provides a list of widget toolkit A widget toolkit, widget library, GUI toolkit, or UX library is a library (computing), library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to c ...


References

{{X desktop environments and window managers Graphical user interfaces