A window manager protocol is an agreed−upon procedure for the exchange of messages between the window
manager and an application. Protocols are implemented with ClientMessage events; the window manager sends
an event to the application, and the application takes the appropriate action. For example, a protocol exchange occurs
when the user selects Close from the window menu to close an application window.
There are low−level Xlib routines for setting and getting the value of window properties. However, the various shell
widgets provided by Xt and Motif define resources that access most of the predefined properties of interest in window
manager/application interaction. These resources are the preferred interface to window properties.
The WMShell widget defines many of the generic properties that are used for communication with the window
manager. For example, you can use WMShell resources to specify an icon pixmap and resize increment values. The
VendorShell widget class is defined by Xt as the widget class in which a vendor can define appearance and behavior
resources specific to its own window manager. As such, this widget class is customized by every vendor of
Xt−compatible toolkits. In the case of Motif, the VendorShell class provides resources that control the layout and
operation of the Motif window manager decorations, and it supports the Motif window manager protocols.
You never instantiate WMShell or VendorShell widgets; they exist only as supporting classes for other shells, such ...