User:ScotXW/Graphical control element

A graphical control element
 * is an element of interaction, such as a button or a scroll bar, that is part of the graphical user interface (GUI) of a program.
 * is a subroutine written in some programming language such as C, C++, Objective-C, etc.). It has to be compiled to become executable. Also, there has to be a rendering engine, which generates the graphical representation. The graphical representation can be hard-coded or themable.

Utilization
Libraries containing a collection of graphical control elements are e.g. GTK+, FLTK, wxWidgets, Qt, Cocoa, etc.

Any program with a GUI can be described as consisting out of the program's core logic, and it's GUI. Hence the same core logic can be paired with different GUIs, using different libraries targeting different peripherals. Sometimes the core logic is called the back-end and the GUI is called the front-end. E.g. the Transmission BitTorrent client has multiple GUIs written for it. It is a bad example, since both the GTK+ and the Qt front-end target computer keyboard and computer mouse as input peripherals.

Graphical user interface builders, such as e.g. Glade Interface Designer or GNOME Builder facilitate the authoring of GUIs in a WYSIWYG manner employing a user interface markup language such as in this case GtkBuilder.

GUI design
When implementing the WIMP paradigm.

The GUI of a program consists of numeral graphical control elements. The authoritative thing dictating the design of the GUI of any program is the "workflow" as researched by cognitive ergonomics or as reported by an active user population. To be effective, any GUI has to be tailored to the input and output hardware: