In fact, most existing X clients are or were developed in this fashion. The complexity of the low-level Xlib interface and of the underlying X Protocol is handled by an increasing variety of available X Toolkits . The library, called the X Intrinsics or Xt , forms the building blocks for sets of user interface objects called widgets . For toolkits based on the X Intrinsics, a common interface mechanism called a widget is used. A widget is essentially an X window plus some additional data and a set of procedures for operating on that data.
Widgets are a client-side notion only.
Neither the X server nor the X protocol understand widgets. A sample widget set, Xaw , more commonly referred to as the Athena Widget Set , is distributed by MIT with the X11 source. There is only one X server per terminal. Multiple X client applications can communicate with this one X server. The duty of the X server is to display the application windows and to send the user input to the appropriate X client application.