Widget toolkit

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 multiple ones and also with rendering APIs such as OpenGL, OpenVG, or EGL.

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.

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.

A window using the Standard Widget Toolkit