X Toolkit Intrinsics

X Toolkit Intrinsics (also known as Xt, for X toolkit) is a library that implements an API to facilitate the development of programs with a graphical user interface (GUI) for the X Window System. It can be used in the C language (or any language that can use the C API, such as C++). Design took place late 1980s to early 1990s.[citation needed]

Xt (mint-green) in the X Window System graphics stack
Xt (mint-green) in the X Window System graphics stack

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 ("widgets"), such as buttons or menus. The Xt library provides support for creating widget types, but does not provide any itself. A programmer could use the Xt library to create and use a new type of widget. Xt implemented some object oriented concepts, such as inheritance (the user could make their own button by reusing code written for another type of button), 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.

Xt programs had a notorious problem of being unusable if the "app-defaults Xrm database", a text file describing all the widgets, could not be found.[citation needed] Most modern, widely-used toolkits such as GTK and Qt do not use the Xt library. Rather, they use Xlib or XCB directly.