Your application is presented to the user as a series of windows. Some of these windows present the main portion of the application. Others are dynamic, appearing to the user only when needed to accomplish certain tasks. All of these windows should contain menus, border decorations, and behavior styles appropriate to their function. The following sections describe the guidelines for designing your application's windows.
The fundamental user-visible characteristic of primary windows is that stacking, workspace placement, and minimization can be independent of other primary windows. Secondary window stacking, workspace placement, and minimization must be tied to the associated primary window.
You should provide the Close, Move, Lower, and Minimize choices as the minimum set of capabilities in primary windows. Provide Resize and Maximize choices as appropriate. Design your secondary windows so that resizing and maximizing are neither necessary nor appropriate. Most secondary windows should include only the Close, Move, and Lower choices. In extraordinary cases, you may provide the Resize and Maximize choices in a secondary window. Do not provide the Minimize choice in secondary windows (they are minimized with the associated primary window).
Windows that have a Close or Exit choice need to support the window management protocol for Close if there is a window menu. In the case of dialog boxes, the Close item on the window menu corresponds to the Cancel choice or dialog box dismissal with no further action taken.
CDE applications appear in one of several work areas called workspaces. A user may have several workspaces active on the desktop. Your application should behave in certain ways in relation to those workspaces.
For example, a spreadsheet application may have one or more secondary windows open that allow the user to change the properties of data cells in the main window. If the user moves the main window to a different workspace, the secondary properties windows should move with it.
On the other hand, a word processor may have several windows open, where each is used to edit a different document. In this case, when a user moves one of the windows to a different workspace, the other windows should remain where they are.
When you design a desktop application, consider the following guidelines for session management:
The ICCCM defines important relationships and behaviors between applications and the window manager, including protocols for saving and restoring application states across invocations.
Associated windows include multiple primary windows and secondary windows, such as online help windows.