X Toolkit Intrinsics


X Toolkit Intrinsics is a library that implements an API to facilitate the development of programs with a graphical user interface for the X Window System. It can be used in the C language. Design took place late 1980s to early 1990s.
The low-level library Xlib is the client-side implementation of the X11 protocol. It communicates with an X server, but does not provide any function for implementing graphical control elements, such as buttons or menus. The Xt library provides support for creating widget types, but does not provide any itself. A programmer can use the Xt library to create and use a new type of widget. Xt implements some object oriented concepts, such as inheritance, events, and callbacks.
Since the graphical user interface of applications typically requires a number of widget types, most developers were reluctant to write their own, and instead prefer to use libraries such as Xaw, Motif and OLIT that provide a set of widgets.
Developers of Xt applications are expected to provide an "app-defaults Xrm database": text files describing the appearance, labels, and positions of all the widgets. Although there is a way to put fallback resource specifications in the code, this is often not done, or not tested, and requires totally different syntax than the database. This resulted in totally unusable apps if the correct database was not found during application initialization, which could be complicated if the search path was changed by loading other resource files.
Most modern, widely used toolkits such as GTK and Qt do not use the Xt library; instead, they use Xlib or XCB directly.