[ Previous | Next | Contents | Glossary | Home | Search ]
Motif and CDE 2.1 Style Guide Certification Checklist



Controls, Groups, and Models (CDE)

[ ]
Check buttons should only select settings that are not mutually exclusive. A check button graphically indicates its state with the presence or absence of a check mark.

[ ]
When the user presses the SELECT button in a check button, display the check button with armed emphasis. If the check button was previously unset, show it in the set state. If the check button was previously set, show in the unset state.

Pressing the SELECT button arms a check button; releasing the SELECT button shows the result of activating it.

[ ]
When the user releases the SELECT button in the same check button in which the press occurred:

  1. If the check button was previously unset, set it.

  2. If the check button was previously set, unset it.

    In all cases, disarm the check button and, if the check button is in a menu, unpost the menu. When the user releases the SELECT button, activate the check button.

  3. [ ]
    When the user presses Enter or Return in a check button, if the check button is in a window with a default action, activate the default action. If the check button is in a menu:

    1. If the check button was previously unset, set it.

    2. If the check button was previously set, unset it.

    3. In both cases, disarm the check button and unpost the menu.

    4. [ ]
      When the user presses Select or Spacebar in a check button, if the check button was previously unset, set it. If the check button was previously set, unset it. In both cases, disarm the check button and, if the check button is in a menu, unpost the menu.

      [ ]
      In a list that can be scrolled, such as a scrollable list box, do not allow the cursor to wrap.

      [ ]
      Provide vertical scroll bars when some of the data is not visible in the combo box.

      [ ]
      If your application uses a command box, include a text component with a command-line prompt for text input and a list component for a command history area. Use either the single selection or browse selection model.

      [ ]
      When an element of a command box list is selected, place its contents in the text area.

      [ ]
      Make the list navigation actions ^, V, Ctrl Begin, and Ctrl End available from the text component so the user can move the cursored element within the list and thus change the contents of the text.

      [ ]
      The default action of the command box should pass the command in the text area to the application for execution and add the command to the end of the list.

      [ ]
      If your application uses a file selection dialog box, it should contain the following components:

      1. A directory text component that shows the current directory path. The user can edit the directory text component and press Return or Enter to change the current directory.

      2. For applications that allow saving to different formats, an option button that allows users to specify the format when saving a file.

      3. A file name text component for displaying and editing a file name. This component is optional when the file selection box is used to choose an existing file or directory.

      4. A group of push buttons, including a command button, and Update, Cancel, and Help buttons. The command button is typically labeled Open or Save, but if there is another label that better describes the resulting action (such as Include), use that label. Activating the command button carries out the corresponding action and dismisses the file selection box.

      5. [ ]
        If the Open button is activated while the appropriate file is selected in the contents list, the file should be utilized by the application and the file selection box dismissed.

        [ ]
        When the file selection dialog box is used to choose an existing directory, there must also be an additional button, labeled Update, that is enabled whenever a directory is selected in the contents list and that opens the directory. Make this Update button the default action.

        [ ]
        Make the normal text navigation and editing functions available in the text components for moving the cursor within each text component and changing the contents of the text. These actions provide a convenient way to choose a directory or file name from the corresponding list while focus remains in the text component.

        [ ]
        When the user double-clicks the SELECT button on an item in the contents list, select that item and activate the default action. In all cases, double-clicking the SELECT button on a directory in the contents list should open that directory and display its contents in the contents list (the default action is Open).

        When the file selection box is used to choose an existing file and the user double-clicks the SELECT button on an appropriate file in the contents list, choose that file and dismiss the file selection box (the default action is Open).

        When the file selection box is used to choose an existing directory or to specify a new directory or file, the files list should not appear.

        [ ]
        Make the normal text navigation and editing functions available in the text components for moving the cursor within each text component and for changing the contents of the text.

        [ ]
        Make use of a selection when one of the following occurs:

        1. The user activates the command push button while an appropriate item is selected in the contents list

        2. The user double-clicks the SELECT button on an appropriate file in the contents list

        3. The user presses Return or Enter while the file name text component has keyboard focus and contains an appropriate item

        4. [ ]
          Make the file selection box display the contents of a directory in the contents list when the file selection box is initialized, when the user presses Enter or Return in the directory text component, and when the user opens a directory in the contents list. Update the contents list each time the contents of the directory changes.

          [ ]
          If the user has opened the application with a file name argument, the Open dialog box should default to the directory in which that file resides.

          [ ]
          Within a list component, pressing ^ moves the location cursor to the previous item in the list, and pressing V moves the location cursor to the next item in the list. In a scrollable list, pressing < scrolls the list one character to the left, and pressing > scrolls the list one character to the right.

          [ ]
          Within a list component, pressing Ctrl Begin moves the location cursor to the first item in the list, and pressing Ctrl End moves the location cursor to the last item in the list. In a scrollable list, pressing Begin moves the horizontal scroll region so that the leftmost edge of the list is visible, and pressing End moves the horizontal scroll region so that the rightmost edge of the list is visible.

          [ ]
          Within a scrollable list, pressing Page Up moves the location cursor to the item one page up in the list, and pressing Page Down moves the location cursor to the item one page down in the list. In a scrollable list, pressing Page Left (or Ctrl Page Up) scrolls the list one page to the left, and pressing Page Right (or Ctrl Page Down) scrolls the list one page to the right.

          [ ]
          Within a list component, clicking the SELECT button selects the item that was double-clicked and then initiates any default action for the window.

          [ ]
          If your application uses option buttons, make the label for the button the last selection made from the option button.

          [ ]
          When the user presses the SELECT button or the MENU button on an option button, post the associated option menu.

          [ ]
          When the user releases the SELECT button or the MENU button within the same option button that the press occurred in, post the associated option menu if it was not posted at the time of the press. When the user releases the SELECT button or the MENU button outside of the option button, unpost the associated option menu.

          [ ]
          When the user presses Select or Spacebar in an option button, post the associated option menu.

          [ ]
          If your application uses paned windows, they should be composed of any number of groups of components, called panes, each separated by a sash and a separator. Group the panes, sashes, and separators linearly, either horizontally or vertically. A sash is the handle on a separator between two panes that is used to adjust the position of the separator.

          [ ]
          The ^, V, >, and < directional keys navigate among components in a panel.

          A panel group organizes a collection of basic controls in a horizontal, vertical, or two-dimensional layout. The directional keys are used to navigate among the controls.

          [ ]
          When the user presses the SELECT button in a push button, arm the push button. When the user releases the SELECT button in the same push button where the press occurred, disarm and activate the push button. When the user releases the SELECT button outside the push button, disarm but do not deactivate the push button.

          [ ]
          When the user presses Enter or Return in a push button that is in a window with a default action, activate the push button. When the user presses Enter or Return in a push button in a menu, activate the push button and unpost the menu.

          [ ]
          When the user presses Select or Spacebar in a push button, activate the push button is activated. If the push button is in a menu, unpost the menu.

          [ ]
          If your application uses radio buttons, graphically indicate each button's state.

          [ ]
          When the user presses the SELECT button in a radio button, the radio button is armed. If the radio button was previously unset, show it in the set state.

          [ ]
          When the user releases the SELECT button in the same radio button where the press occurred, and the radio button was previously unset, set it and unset any other radio button in the same panel that was previously set. Disarm the radio button and, if the radio button is in a menu, unpost the menu.

          [ ]
          When the user presses Enter or Return in a radio button, if the radio button is in a window with a default action, activate the default action. If the radio button is in a menu:

          1. If the radio button was previously unset, set it and unset any other radio button in the same panel that was previously set.

          2. Disarm the radio button and the unpost menu.

          3. [ ]
            When the user presses Select or Spacebar in a radio button, if the radio button was previously unset, set it and unset any other radio button in the same panel that was previously set. Disarm the radio button and, if the radio button is in a menu, unpost the menu.

            [ ]
            Within a paned window, a sash adjusts the position of a separator, which adjusts the sizes of the panes next to it. As a sash is moved, make the pane in the direction of the sash movement get smaller and the opposite pane get larger by an equal amount.

            [ ]
            Within a sash, pressing the SELECT button or the TRANSFER button and moving the pointer causes the sash to track the movement of the pointer. In a vertically oriented paned window, the sash tracks the vertical position of the pointer. In a horizontally oriented paned window, the pane tracks the horizontal position of the pointer.

            [ ]
            Pressing ^ or V (for a sash that can move vertically) and < or > (for a sash that can move horizontally) moves the sash one increment in the specified direction.

            [ ]
            Pressing Ctrl ^ or Ctrl V (for a sash that can move vertically) and Ctrl < or Ctrl > (for a sash that can move horizontally) moves the sash one large increment in the specified direction.

            [ ]
            If a scale has arrow buttons, pressing the SELECT button on an arrow button moves the slider one increment in the direction of the side of the slider on which the button was pressed and autorepeats until the button is released.

            [ ]
            In a scale trough, if the scale has tick marks, pressing the SELECT button moves the slider one major tick mark in the direction of the side of the slider on which the trough was pressed and autorepeats until the button is released. If the scale does not have tick marks, pressing the SELECT button in the trough moves the slider one large increment in the direction of the side of the slider on which the trough was pressed and autorepeats until the button is released.

            [ ]
            Within a scale slider, pressing the SELECT button and moving the pointer causes the slider to track the position of the pointer. In a vertical scale, the slider tracks the vertical position of the pointer. In a horizontal scale, the slider tracks the horizontal position of the pointer.

            [ ]
            Within a scale slider or trough, pressing the TRANSFER button and moving the pointer positions the slider to the point of the button press and then causes the slider to track the position of the pointer. In a vertical scale, the slider tracks the vertical position of the pointer. In a horizontal scale, the slider tracks the horizontal position of the pointer.

            [ ]
            If a mouse-based sliding action is in progress, pressing Cancel cancels the sliding action and returns the slider to its position prior to the start of the sliding operation.

            [ ]
            In a vertical scale, pressing ^ or V moves the slider one increment in the specified direction. In a horizontal scale, pressing > or < moves the slider one increment in the specified direction.

            [ ]
            In a vertical scale, pressing Ctrl ^ or Ctrl V moves the slider one large increment in the specified direction. In a horizontal scale, pressing Ctrl < or Ctrl > moves the slider one large increment in the specified direction.

            [ ]
            Pressing Begin or Ctrl Begin moves the slider to its minimum value. Pressing End or Ctrl End moves the slider to its maximum value.

            [ ]
            Within a scroll bar, pressing the SELECT button in an arrow button moves the slider one increment in the direction of the side of the slider on which the button was pressed and autorepeats until the button is released.

            [ ]
            In the trough of a scroll bar, pressing the SELECT button moves the slider one page in the direction of the side of the slider on which the trough was pressed and autorepeats until the button is released.

            [ ]
            Within a scroll bar slider, pressing the SELECT button and moving the pointer causes the slider to track the position of the pointer. In a vertical scroll bar, the slider tracks the vertical position of the pointer. In a horizontal scroll bar, the slider tracks the horizontal position of the pointer.

            [ ]
            Within a scroll bar slider or trough, pressing the TRANSFER button and moving the pointer positions the slider to the point of the button press and then causes the slider to track the position of the pointer. In a vertical scroll bar, the slider tracks the vertical position of the pointer. In a horizontal scroll bar, the slider tracks the horizontal position of the pointer.

            [ ]
            If a mouse-based scrolling action is in progress, pressing the Cancel key cancels the scrolling action and returns the slider to its position prior to the start of the scrolling operation.

            [ ]
            In a vertical scroll bar, pressing ^ or V moves the slider one increment in the specified direction. In a horizontal scroll bar, pressing < or > moves the slider one increment in the specified direction.

            [ ]
            In a vertical scroll bar, pressing Ctrl ^ or Ctrl V moves the slider one large increment in the specified direction. Pressing Ctrl < or Ctrl > moves the slider one large increment in the specified direction.

            [ ]
            Pressing Page Up or Page Down moves the slider in a vertical scroll bar one page in the specified direction. Pressing Page Left (or Ctrl Page Up) or Page Right (or Ctrl Page Down) moves the slider in a horizontal scroll bar one page in the specified direction.

            [ ]
            Pressing Begin or Ctrl Begin moves the slider to the minimum value. Pressing End or Ctrl End moves the slider to the maximum value.

            [ ]
            If your application uses a selection box, include at least a text component for the selected alternative and a list component above the text component for presenting alternatives. Use either the single selection or browse selection model. Selecting an element from the list should place the selected element in the text component.

            [ ]
            Make the list navigation actions ^, V Ctrl Begin, and Ctrl End available from the text component so the user can move the cursored element within the list and thus change the contents of the text.

            [ ]
            Present the items as a ring of items that wrap. For example, if a user is at the largest number and presses the up arrow, display the smallest number and vice versa so that the user can spin through all the items by pressing the same arrow.

            [ ]
            Move through the items in a spin box as shown in Table 3.

            Table 3. Navigation in a Spin Box

            Movement Keys Example
            Toward the beginning of the list <, V Chronology: If Tuesday is displayed, move to Monday when the user presses < or V .


            Magnitude: If 15 is displayed, move to 14 when the user presses < or V .
            Toward the end of the list >, ^ Chronology: If Tuesday is displayed, move to Wednesday when the user presses > or ^ .


            Magnitude: If 15 is displayed, move to 16 when the user presses > or ^ .

            [ ]
            In a multiline text component, pressing ^ moves the location cursor up one line and pressing V moves the location cursor down one line. In a single-line text component, pressing ^ navigates upward to the previous component and pressing V navigates downward to the next component, if the text component is designed to act like a basic control.

            [ ]
            Pressing < moves the location cursor left one character and pressing > moves the location cursor right one character.

            [ ]
            In a text component generally used to hold multiple words, pressing Ctrl > moves the location cursor to the right by a word and pressing Ctrl < moves the location cursor to the left by a word.

            [ ]
            In a text component generally used to hold multiple words, pressing Begin moves the location cursor to the beginning of the line and pressing End moves the location cursor to the end of the line.

            [ ]
            In a multiline text component, pressing Ctrl Begin moves the location cursor to the beginning of the file and pressing Ctrl End moves the location cursor to the end of the file.

            [ ]
            Pressing Spacebar or Shift Spacebar inserts a space in a text component. Modifying these keys with Ctrl invokes the normal selection function.

            [ ]
            Pressing Return in a multiline text component inserts a carriage return. Pressing Enter or Ctrl Return invokes the default action.

            [ ]
            In a multiline text component, Tab is used for tabbing. In a single-line text component, Tab is used either for tabbing or to move to the next field.

            [ ]
            If a text component supports replace mode, insert toggles between insert mode and replace mode.

            By default, the component should start in insert mode, where the location cursor is between two characters. In insert mode, typing a character inserts the character at the position of the location cursor.

            In replace mode, place the location cursor on a character. Typing a character replaces the current character with the newly entered character and moves the location cursor to the next character, selecting it.

            [ ]
            Double-clicking the SELECT button selects text a word at a time.

            [ ]
            A gauge is a display-only device and should have no user interactions. The appearance of a gauge is similar to a scale, but the gauge lacks a scale slider.


            [ Previous | Next | Contents | Glossary | Home | Search ]