Common Desktop Environment: Style Guide and Certification Checklist

Transfer Models

 

n/a 

 

 

 

Required 

4-36: 

If the move, copy, or link operation the user requests is not available, the transfer operation fails. 

Three transfer operations are generally available: copy, move, and link. The user requests one of these operations by pressing the buttons or keys appropriate for the type of transfer. In general, for mouse-based operations, the modifier Control forces a copy, Shift forces a move, and Control+Shift forces a link. However, any requested transfer operation must fail if that operation is not available. 

Required 

4-37: 

If a collection does not have a fixed insertion point or keep elements ordered in a specific way, the insertion position for transferred data is determined as follows: 

  • For BTransfer-based (or BSelect) primary and drag transfer operations, excepted as noted below for text collections, the insertion position is the position at which the user releases BTransfer (or BSelect).

  • In a text-like collection, when the user drops selected text, the insertion position is the position at which the user releases BTransfer (or Bselect). When the user drops an icon, the insertion position is the text cursor and the data is pasted before it.

  • In a list-like collection, the insertion position for other transfer operations is the element with the location cursor, and the data is pasted before it.

The insertion position is the position in the destination where transferred data is placed. Some mouse-based transfer operations place data at the pointer position if possible. Other operations, including keyboard-based transfer, generally place the data at the location cursor. 

Required 

p: 

Your application supports the use of mouse button 1 to perform drag-and-drop operations. 

In Motif 1.2, drag and drop is typically performed using button 2 on a three-button mouse (BTransfer). However, in the Common Desktop Environment environment, mouse button 1 (BSelect) should be supported for drag and drop to support mouse usage compatible with other graphical user interface (GUI) environments. A drag can be initiated with either mouse button 1 or mouse button 2. 

Required 

q: 

When button 2 of a three-button mouse is configured to operate as BAdjust, your application does not perform any BTransfer operations when clicking mouse button 2. 

On a three-button mouse, button 2 is typically used for the BTransfer (or BSelect) function. However, in a Common Desktop Environment environment, the user can change an environment setting indicating that mouse button 2 should be used for the BAdjust function instead. When this is the case, BAdjust click should not result in the transfer of any data. 

Required 

r: 

BSelect should always initiate a drag if the drag is started on a selected item. The drag starts once the drag threshold has been reached. This is true for text regions, scrolling lists, and other similar elements. 

Clipboard Transfer

 

n/a 

 

 

 

Required 

4-38: 

Keyboard-based clipboard selection actions are available in every editable collection in your application. 

Clipboard selection actions need to be available from the keyboard. 

Required 

4-39: 

Your application uses the Cut key (or Shift+Delete) and the Cut entry on the Edit menu to cut the selected elements from an editable component to the clipboard.  

The Cut key (or Shift+Delete) and the Cut entry on the Edit menu offer a consistent means of cutting the selection to the clipboard from the keyboard. 

Required 

4-40: 

Your application uses the Copy key (or Control+Insert) and the Copy entry on the Edit menu to copy the selected elements to the clipboard.  

The Copy key or (Control+Insert) and the Copy entry on the Edit menu offer a consistent means of copying the selection to the clipboard from the keyboard. 

Required 

4-41: 

Your application uses the Paste key (or Shift+Insert) to paste the contents of the clipboard into an editable component.  

The Paste key (or Shift+Insert) offers a consistent way of pasting the contents of the clipboard from the keyboard. 

Required 

4-42: 

If Paste or Paste Link is invoked using a component's pop-up menu, the data is pasted at the insertion position of the component. However, if the pop-up menu is popped up over a selection, the selection is first deleted, even if pending delete is disabled, and the pasted data replaces it, if possible.  

Popping up a pop-up menu over a selection indicates that a Paste or Paste Link operation should replace the selection. 

Required 

4-43: 

If Paste or Paste Link is invoked from the Edit menu or by a keyboard operation, and the insertion position in the target component is not disjoint from a selection, the pasted data replaces the selection contents if pending delete is enabled.  

Pending delete determines whether the selection is deleted when the insertion position is not disjoint from the selection and Paste or Paste Link is invoked from the Edit menu or by a keyboard operation. 

Primary Transfer

 

n/a 

 

 

 

Required 

4-44: 

In an editable collection, BTransfer Click, Control+BTransfer Click, Alt, Copy, and Control+Alt+Insert copy the primary selection to the insertion position. (Note that the insertion position is usually different for mouse and keyboard operations.)  

These operations provide a convenient way for the user to force a copy operation. 

Required 

4-45: 

In an editable collection, Shift+BTransfer Click, Alt+Cut, and Alt+Shift+Delete move the primary selection to the insertion position. (Note that the insertion position is usually different for mouse and keyboard operations.)  

These operations provide a convenient way for the user to force a move operation. 

Required 

4-46: 

In an editable collection, Control+Shift+BTransfer Click places a link to the primary selection at the insertion position.  

Control+Shift+BTransfer provides a convenient way for the user to force a link operation. 

Required 

4-47: 

A Primary Move moves the primary selection as well as the elements selected; that is, the element moved to the destination becomes selected as the primary selection. Primary Copy and Primary Link do not select transferred data at the destination.  

This rule provides the expected treatment of the selection in a move, copy, and link operation. 

Quick Transfer

 

n/a 

 

 

 

Required 

4-48: 

All text components support quick transfer.  

Quick transfer is used to make a temporary selection and then immediately move, copy, or link that selection to the insertion position of the destination component. In text, quick transfer provides a convenient way to move, copy, or link text without disturbing the primary selection. 

Required 

4-49: 

If a component supports quick transfer, Alt+BTransfer Motion or Control+Alt+BTransfer Motion temporarily selects elements in the specified range and, on release, copies them to the insertion position of the destination component.  

These operations provide a convenient way to perform a quick copy. 

Required 

4-50: 

If a component supports quick transfer, Alt+Shift+BTransfer Motion temporarily selects elements in the specified range and, on release, moves them to the insertion position of the destination component.  

This operation provides a convenient way to perform a quick cut. 

Required 

4-51: 

If a component supports quick transfer, Control+Alt+Shift+BTransfer Motion temporarily selects elements in the specified range and, on release, places a link to them at the insertion position of the destination component.  

This operation provides a convenient way to perform a quick link. 

Required 

4-52: 

Quick transfer does not disturb the primary selection or affect the clipboard, except when the destination of the transfer is within or on the boundaries of the primary selection and pending delete is enabled. In this case, quick transfer deletes the contents of the primary selection, leaving an empty primary selection, before pasting the transferred elements.  

Quick transfer is a secondary selection mechanism, so it cannot disrupt the primary selection. When the destination of the transfer is in the primary selection, quick transfer replaces the primary selection with the secondary selection. 

Required 

4-53: 

With quick transfer, the range of the temporary selection is determined by using the same model as when BSelect Motion determines the range of a primary selection.  

This rule provides consistency between primary selection and quick transfer operations. 

Required 

4-54: 

If the user drags the pointer out of a scrollable collection while making the temporary selection, autoscrolling is used to scroll the collection in the direction of the pointer. If the user releases BTransfer with the pointer outside of the collection, or if the user presses the Cancel key with BTransfer pressed, the highlighting is removed and a transfer is not performed.  

Autoscrolling provides a convenient means of extending a temporary selection to elements outside the viewport of a scrollable collection. 

Drag Transfer

 

n/a 

 

 

 

Required 

4-55: 

In a collection that supports selection, Shift+BTransfer Release or Shift+BSelect Release forces a drag move operation. If a move is not possible, the operation fails.  

This mechanism offers a convenient way for the user to force a move operation. 

Required 

4-56: 

In a collection that supports selection, Control+BTransfer Release or Shift+BSelect Release forces a drag copy operation. If a copy is not possible, the operation fails.  

This mechanism offers a convenient way for the user to force a copy operation. 

Required 

4-57: 

In a collection that supports selection, Control+Shift+BTransfer Release pr Shift+BSelect Release forces a drag link operation. If a link is not possible, the operation fails.  

This mechanism offers a convenient way for the user to force a link operation. 

Required 

4-58: 

When a drag move operation moves a selection within the same component, the selection moves along with the elements selected.  

In other words, when selected elements are moved with a drag operation, they should stay selected after the move. This mechanism offers a convenient way to move the selection within a component. 

Required 

4-59: 

In text-like collections, initiating a drag within a selected region drags the entire text selection.  

To be consistent, drag-and-drop actions need to operate on the entire selection. 

Required 

4-60: 

In list-like and graphics-like collections, initiating a drag with either BSelect or BTransfer on a selected element drags the entire selection.  

To be consistent, drag-and-drop actions need to operate on the entire selection. 

Required 

4-61: 

In list-like and graphics-like collections, initiating a drag with BTransfer or BSelect on an unselected element drags just that element and leaves the selection unaffected.  

Unselected elements can be dragged without affecting the selection. 

Required 

4-62: 

When a drag is initiated in an unselected region and the pointer is over two possible draggable elements, the drag uses the draggable element highest in the stacking order. 

This guideline ensures the consistency of drag operations. 

Required 

4-63: 

When your application starts a drag operation, the pointer is replaced with a drag icon.  

A drag icon provides visual feedback that a drag operation is in progress. 

Required 

4-64: 

All drag icons used by your application include a source indicator.  

A source indicator gives a visual representation of the elements being dragged. 

Required 

4-65: 

Pressing the Cancel key ends a drag-and-drop operation by canceling the drag in progress.  

The Cancel key provides a consistent way for the user to cancel a drag operation. 

Required 

4-66: 

Releasing BTransfer ends a drag-and-drop operation. 

Releasing BTransfer offers a consistent means of ending a drag operation. 

Required 

4-67: 

When BTransfer (or BSelect) is released, the drop operation ordinarily occurs at the location of the hot spot of the drag icon pointer and into the highest drop zone in the stacking order. However, if a drop occurs within a selection and pending delete is enabled, the transferred data replaces the contents of the entire selection.  

This rule provides consistency in the treatment of mouse-based transfer operations. 

Required 

4-68: 

After a successful transfer, the data is placed in the drop zone, and any transfer icon used by your application is removed.  

A transfer icon can be used to represent the type of data being transferred during a drop operation. A successful drop operation results in the transfer of data. 

Required 

4-69: 

After a failed transfer, the data remains at the drag source and is not placed in the drop zone. Any transfer icon used by your application is removed.  

A failed drop operation does not result in the transfer of data. 

Recommended 

s: 

In a collection that supports selection, if BTransfer Motion (or BSelect Motion) results in the start of a drag operation, feedback is presented to the user that indicates that a copy, move, or link operation is in progress. Whether the operation is a copy, move, or link depends on the type of object created at the drop zone and whether the source object is removed. 

Although, typically, an unmodified drag results in a move operation, depending on the location of the source object and the target drop zone, the drag may in fact result in a copy or link operation. For example, dragging an icon representing an attachment to a mail message typically results in a copy of the attachment being created as opposed to the original being removed from the mail message. Any feedback presented should incorporate use of a drag icon that portrays the source object being manipulated. 

Recommended 

t: 

In a collection that supports selection, if Control+BTransfer Motion or Control+BSelect Motion results in the start of a drag operation, feedback is presented to the user that indicates that a copy operation is in progress. 

The feedback presented should incorporate use of a drag icon that portrays the source object being copied. 

Recommended 

u: 

In a collection that supports selection, if Control+Shift+BTransfer Motion or Control+Shift+BSelect Motion results in the start of a drag operation, feedback is presented to the user that indicates that a link operation is in progress. 

The feedback presented should incorporate use of a drag icon that portrays the source object being linked. 

Recommended 

v: 

In a collection that supports copy, move, or link operations that can be performed by dragging, the feedback presented to the user during the drag operation indicates whether a single object or multiple objects are being manipulated. 

Feedback provided during the drag operation should ensure that the user feels confident that the desired set of objects is being dragged. The drag icon used for multiobject drag operations should integrate the feedback used to indicate whether the operation is a move, copy, or link. 

Optional 

w: 

If your application allows the user to paste data into its data pane, it allows the user to drag and drop files from the File Manager into the data pane. 

The user should be able to drag and drop files into application data panes. The result should be the inclusion of some element of the file, or the display of an error message indicating that the file selected cannot be incorporated into the application's data. Drag transfers that are accepted can result in a number of different responses from your application: 1) the icon image for the file might be inserted at the drop point; 2) the application might perform some activity using the data contained within the file as its input; 3) the data contained within the file might be inserted at the drop point; or 4) the name of the file might be inserted at the drop point.