window menu and to control what happens when the user closes the window from the window menu. Chapter 16,
Interacting With the Window Manager, discusses window manager interactions in more detail. You can think of
dialog boxes as an application's secondary windows. Since dialogs are not meant to remain on the screen for very
long, they do not need all of the decorations that are typically provided by the window manager. However, dialogs are
not completely independent like menus, so they do need to be controlled by the window manager. For example, if an
application is iconified, its dialog boxes are typically iconified as well. Dialog boxes are usually implemented in Xt
using TransientShells.
The DialogShell is a Motif−defined widget class subclassed from the TransientShell and VendorShell classes. Motif
functions for creating dialog boxes tend to hide the shell widget side of the dialog. When you make a call like
XmCreateMessageDialog(), you are actually creating a MessageBox widget as a child of a DialogShell widget.
See Chapter 5, Introduction to Dialogs, for details on Motif dialogs. When you initialize the X Toolkit with a call
such as XtAppInitialize(), you are automatically returned an ApplicationShell widget to use as the top−level
widget in your application. If an application uses additional top−level windows, they are typically TopLevelShells.
The differences between these two classes are subtle and deal mostly with how resources are specified in a resource
file. In Chapter 7, Custom ...