[Contents] [Index] [Next] [Previous]

Drag and Drop


Description

Drag and drop provides a quick and simple model for transferring data within and between applications. A drag and drop interaction is accomplished in four steps:

  1. The user selects elements to drag and grabs them with the pointer, or grabs an unselected element.
  2. The user drags elements to the drop location.
  3. The user drops the elements on the drop location.
  4. The component dropped on processes the drop action.

Pressing Transfer in a draggable element and moving the pointer must start a drag and drop interaction. If a drag is initiated in an unselected region and the pointer is over two possible draggable elements, the drag must occur on the highest draggable element in the stacking order. This also implies that in nested draggable elements the drag occurs from the smallest draggable element under the pointer.

When BSelect is used for dragging operations, its use must supersede the use of BSelect Motion in the selection models described in Selection Models.

Any successful drag and drop transfer from a read-only component should by default result in a copy of the data, but it can result in a link. Transfers from writable components can by default result in a copy, a link, or a move. BTransfer Release must force a move operation if possible; otherwise, the operation must fail. BTransfer Release must force a copy operation if possible; otherwise, the operation must fail. BTransfer Release must force a link operation if possible; otherwise, the operation must fail.

If a system provides drag and drop help, pressing during a drag and drop operation should allow the posting of a DialogBox with the help information and the possible choices for continuing the drag and drop operation. Pressing during a drag operation must cancel the current drag operation and return the system to the state prior to the start of the drag operation.

Releasing BTransfer must end a drag and drop operation. When a user releases BTransfer, the drop operation must occur at the location of the hotspot of the drag icon pointer. The drop must occur into the highest drop site in the stacking order. This also implies that in a group of nested drop sites the drop occurs into the smallest drop site under the pointer.

Related Information

See Transfer Models for more information on the drag and drop model, and for information on quick transfer and the selection models.