UI Technology
   HOME

TheInfoList



OR:

A widget toolkit, widget library, GUI toolkit, or UX library is a library or a collection of libraries containing a set of
graphical control element A graphical widget (also graphical control element or control) in a graphical user interface is an element of interaction, such as a button or a scroll bar. Controls are software components that a computer user interacts with through direct ...
s (called ''widgets'') used to construct the graphical user interface (GUI) of programs. Most widget toolkits additionally include their own rendering engine. This engine can be specific to a certain 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 application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
, OpenVG, or EGL. The look and feel of the graphical control elements can be hard-coded or decoupled, allowing the graphical control elements to be themed/
skinned Skinning is the act of skin removal. The process is done by humans to animals, mainly as a means to prepare the meat beneath for cooking and consumption, or to harvest the skin for making fur clothing or tanning it to make leather. The ...
.


Overview

Some toolkits may be used from other languages by employing language bindings. Graphical user interface builders such as e.g. Glade Interface Designer facilitate the authoring of GUIs in a WYSIWYG manner employing a user interface markup language such as in this case
GtkBuilder GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and propriet ...
. 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 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. 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. Finite state machines and hierarchical state machines have been proposed as high-level models to represent the interactive state changes for reactive programs.


Windowing systems

A window 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, 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) * Layout manager * List of widget toolkits


References

{{X desktop environments and window managers Graphical user interfaces