Common Desktop Environment: Style Guide and Certification Checklist

Window Control Guidelines

The specifics of the appropriate window borders and decorations are outlined in "Window Decorations", and the different window management behaviors are specified in "Window Management Actions".

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.



Application windows should be clearly distinguishable as primary or secondary windows based on appearance and behavior. 

Window Management Actions



Windows should follow Common Desktop Environment window management functionality conventions, as shown in Table 10-2. 

Primary windows should provide Close, Move, Lower, and Minimize as the minimum set of capabilities. They should allow Resize and Maximize as appropriate. Secondary windows should be designed so that resizing and maximizing are neither necessary nor appropriate. Most secondary windows should only include the Close, Move, and Lower capabilities. In extraordinary cases, a secondary window may provide the Resize and Maximize capabilities. Secondary windows do not provide Minimize capability - they are minimized with the associated primary window. 



Windows that have form factor constraints need to set Window Manager hints for minimum size, maximum size, aspect ratio, and resize increment as appropriate. 



Maximizing a window should show more content (objects or controls) if appropriate (as opposed to scaling up the sizes of objects and controls). 



Windows that have Close or Exit functionality 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 functionality or dialog box dismissal with no further action taken. 

Window Decorations

Window decorations are the user-visible controls in the frame of an application window. The Figure 5-1shows some sample decorations typically associated with a primary window.



Windows that support particular window management functionality must request the corresponding window decoration (for example, a window that can be minimized should request the minimize button). 

In addition, windows that support any window management functionality (move, resize, minimize, maximize, close, and others) must have a window menu with the appropriate items for that functionality. 

Figure 5-1 Example primary window decorations




Follow Common Desktop Environment window decoration conventions, as shown in Table 10-1. 

Primary windows should have the following window decorations: Border, Title, Menu, and Minimize. If appropriate, primary windows should also include Maximize and Resize decorations.

Secondary windows should be designed so that resizing and maximizing are neither necessary nor appropriate. Most secondary windows should only include the Border, Title, and Menu decorations. If your secondary window allows resizing or maximizing, however, it must also include the appropriate decoration. The Figure 5-2shows a typical secondary window decoration.

Figure 5-2 Example secondary window decorations


Window Menus

Windows have a menu that allows the user to perform various operations that affect the size and placement of the application window. Developers should use the following standard window menu items in their applications.



Follow Common Desktop Environment window menu conventions. Items should appear in the window menu if they are applicable to the window or its minimized window icon. 

Figure 5-3 Sample window menu


The following items are valid English-language choices in the window menu (the mnemonics for each choice are listed in parentheses). They should be added to the menu in the order listed. Unless otherwise noted, the functionality of these menu items is as described in the OSF/Motif Style Guide, Revision 1.2.



Applications should not add items to the window menu. If an extraordinary requirement has an application add items to the window menu, the items should be appended to the end of the menu with a separator between Close and the application items. 



Accelerators, aside from Alt+F4 for Close, should not be used in the window menu (to minimize conflict with other uses of the Alt key for application accelerators, localization, and others). 

Window Icons

Applications should use icons to represent themselves to the user when minimized on the desktop.



Applications should provide unique window icons for their primary windows. The window icon image should have a similar appearance to the associated file or Front Panel icon image. 



The window icon label should contain the same text as the title of the corresponding primary window, or an abbreviated form of it. Refer to "Layout" on page 240 for window title guidelines. 



The window icon image should have a similar appearance to the associated file or Front Panel icon image. Refer to "Design Philosophy and Helpful Hints" on page 50. 

Window Placement

Window positioning should be left to the Window Manager or to user control.



Applications should not require or force windows or window icons to be positioned at a particular screen location. 



A secondary window is placed by the application relative to the associated primary window. It should be placed close to, but not obscuring, the component that caused it to be displayed and the information that is necessary to interact with the dialog box. 



If a secondary window is allowed to be stacked below its associated primary window (not constrained to stay on top of the primary window), it should be placed such that it is not completely covered by the primary window. This recommendation takes precedence over other placement recommendations. 



If a menu or dialog box is already on display, reinvoking the command that caused it to be displayed automatically brings that window or menu to the front of the window stack without changing its position on the screen.