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



Drag-and-Drop Transfer

[ ]
Support dragging any object represented as an icon.

[ ]
Support dropping onto objects represented as icons.

[ ]
If a control supports any form of data transfer with its contents used as a source, then those contents can be the source of a drag-and-drop operation.

[ ]
If a control allows any form of data transfer to the control, it can be used as a target for a drag-and-drop operation.

[ ]
Make the source of a drag-and-drop transfer the element or selection on which the drag was initiated.

[ ]
Make the target of a drag-and-drop transfer the control on which the drop was performed; if the control holds a selection scope, then it is the insertion point within that scope.

[ ]
The default operation for a drag-and-drop transfer must be a move, except in the following cases:

  1. When the source is not editable, make copy the default.

  2. When the destination is an external device (for example, a printer, diskette, or mail out basket), make copy the default.

  3. When the destination is an application that manipulates the data (for example, a compiler), consider making copy the default.

  4. [ ]
    The default operation for a drag-and-drop transfer may be overridden by Ctrl and/or Shift modifiers when the TRANSFER button is released.

    Use the following guidelines when TRANSFER is a separate mouse button from SELECT.

    [ ]
    Initiate a drag when the user presses the TRANSFER button and then moves the mouse on selections and elements that can be dragged.

    [ ]
    If the user uses the TRANSFER button to drag an element that has not been selected, drag only that element without affecting any existing selection.

    [ ]
    Drag all selected elements in the scope when the user presses the SELECT button and then moves the mouse on a selection.

    [ ]
    Initiate a drag when the user clicks Alt TRANSFER on a selection or an element that can be dragged.

    [ ]
    Whether the TRANSFER button is integrated with SELECT on MB1 or not, when the user clicks SELECT, optionally augmented with Shift and/or Ctrl, the effect should be the same.

    [ ]
    When the user multi-clicks (or multi-presses) the SELECT button, optionally augmented with Shift Ctrl, the effect should be the same whether the TRANSFER button is integrated with SELECT on MB1 or not.

    Use the following guidelines when the TRANSFER button is the same button as SELECT.

    [ ]
    When the user presses MB1 and moves the pointer on a selection, drag all selected elements in the scope.

    [ ]
    When the user presses MB1 on an element that can be activated or toggled (other than a tear-off choice), activate or toggle the element; do not allow dragging.

    [ ]
    When the user presses MB1 and moves the pointer on an element that cannot be selected (other than a tear-off choice), do not allow dragging.

    [ ]
    If the MENU button is bound to a mouse button other than MB1, when the user clicks Alt MB1, optionally augmented with Shift and/or Ctrl, on a selection or an element that can be dragged, initiate a drag.

    [ ]
    Whether the TRANSFER button is integrated with SELECT on MB1 or not, support the same effect when the user presses SELECT and moves the pointer, optionally augmented with Shift and/or Ctrl, in the background (or on unselected text) of a scope that supports area or range selection techniques.

    [ ]
    When the TRANSFER button is integrated with SELECT on MB1, when the user presses MB1 and moves the pointer, optionally augmented with Shift and/or Ctrl, on an unselected element for dragging, the effect should be equivalent to the user clicking the SELECT button (without modifiers) on the element (using whatever selection model is in force) and then dragging the selection.

    [ ]
    When the TRANSFER button is integrated with SELECT on MB1 in a nontextual scope, treat pressing MB1 and moving on an unselected element as a selection technique if the following is true:

    1. Area or range selection techniques are supported and the scope is densely populated (in other words, there is not much background space available)

    2. Different selection techniques are used (for example, touch versus area techniques) depending upon whether MB1 is pressed on an element versus in the background

      Otherwise, allow the user to press MB1 and move the pointer on an unselected element for dragging.

    3. [ ]
      The application that contains the source elements of a drag-and-drop operation may limit drops to windows that it manages. It may also treat elements of its own or other applications as invisible for the purpose of determining the target.

      [ ]
      When a drag is completed, a drop should be performed at the pointer location as follows:

      1. Where the pointer is when the TRANSFER button is released, if it was pressed while the drag was in progress

      2. Where the pointer is when the TRANSFER button is clicked, if it was not pressed while the drag was in progress

      3. Where the user presses Return or Enter

        In any case, the state of the Ctrl and Shift modifiers at the time of the drops determines the operation to be performed.

      4. [ ]
        When a drag is in progress and the user presses Cancel, cancel the drag.

        [ ]
        When the user attempts to drop an element on an element that does not support the operation, cancel the drag or display a message dialog similar to the one that would be used if Help were pressed at that location.

        [ ]
        When a user drops a source element onto the same position it currently occupies, the application should not perform an action.

        [ ]
        If the source elements of a drag-and-drop move operation are selected, select the elements transferred to the target scope if the source and target scopes are the same.

        [ ]
        If the source elements of a drag-and-drop move operation are selected, select the elements transferred to the target scope if the target uses normal mode and allows the number of elements transferred to be selected.

        [ ]
        Move focus to the target control in a drag-and-drop operation.


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