 |
» |
|
|
 |
NAMEDrag-and-Drop Transfer — Reference DescriptionDrag-and-drop transfer is a user interaction in which a user
drags source elements to a target element on which they are dropped. When to Use- Required
Support dragging any object represented as an icon. - Required
Support dropping onto objects represented as icons. - Required
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. - Required
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.
Guidelines- Required
Make the source of a drag-and-drop transfer the
element or selection on which the drag was initiated. - Required
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. - Required
The default operation for a drag-and-drop transfer
must be a move, except in the following cases: When the source is not editable, make
copy the default. When the destination is an external device (for
example, a printer, diskette, or mail out basket), make copy the
default. When the destination is an application that manipulates
the data (for example, a compiler), consider making copy the default.
- Required
The default operation for a drag-and-drop transfer
may be overridden by Ctrl and/or
Shift modifiers when the TRANSFER
button is released. - Recommended
Allow users to control whether nonselectable elements
such as labels can be dragged or not. - Recommended
Make any basic function available through a drag-and-drop
transfer also available through predefined shortcut keys, menus,
push buttons, or secondary windows. That is, provide drag-and-drop
transfer as a shortcut to functions that are accessible through
other interface controls supported within your application. Do not
provide any basic operation that is supported solely through a drag-and-drop
transfer.
Separated TransferUse the following guidelines when TRANSFER is a separate mouse
button from SELECT. - Required
Initiate a drag when the user presses the TRANSFER
button and then moves the mouse on selections and elements that
can be dragged. - Required
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. - Required
Drag all selected elements in the scope when the
user presses the SELECT button and then moves the mouse on a selection. - Required
Initiate a drag when the user clicks Alt
TRANSFER on a selection or an element that can be dragged.
Integrated Selection and Transfer- Required
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. - Required
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. - Required
When the user presses MB1 and moves the pointer
on a selection, drag all selected elements in the scope. - Required
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. - Required
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. - Required
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.
Integrated Selection and Transfer in the Background- Required
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. - Optional
When the TRANSFER button is integrated with SELECT
on MB1 in a nontextual scope that supports neither area nor range
selection techniques, pressing MB1 and moving the pointer, optionally
augmented with Shift and/or Ctrl,
in the background can be used either for dragging the entire selection
scope or for panning.
Integrated Selection and Transfer on Unselected Elements- Required
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. - Required
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: Area or range selection techniques
are supported and the scope is densely populated (in other words,
there is not much background space available) 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. - Recommended
When the TRANSFER button is integrated with SELECT
on MB1, then treat pressing Shift
MB1 and moving the pointer on an unselected element as a selection
technique only if adjustment selection techniques can be used in
the scope and if the scope is densely populated. Otherwise, allow
pressing Shift MB1 and moving
the pointer for dragging. - Recommended
When the TRANSFER button is integrated with SELECT
on MB1, treat pressing Ctrl MB1
and moving the pointer on an unselected element as a selection technique
only if group selection techniques can be used in the scope, if
Ctrl forces use of toggle mode
instead of select mode, and if the scope is densely populated. Otherwise,
allow pressing Ctrl MB1 and moving
the pointer for dragging. - Recommended
When the TRANSFER button is integrated with SELECT
on MB1, allow the user to press Ctrl
Shift MB1 and move the pointer
on an unselected element for dragging.
During a Drag Operation- Recommended
If the drag pointer's source indicator consists
of a graphic image of the source and if the operation is a move,
hide the source, especially if the operation indicator is used. - Recommended
When a user pauses on an icon (for a time that the
user can set) during a drag-and-drop operation, display and raise
the window used to view the corresponding object.
Completing the Drag- Required
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. - Required
When a drag is completed, a drop should be performed
at the pointer location as follows: Where the pointer is when the TRANSFER
button is released, if it was pressed while the drag was in progress Where the pointer is when the TRANSFER button is
clicked, if it was not pressed while the drag was in progress 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. - Required
When a drag is in progress and the user presses
Cancel, cancel the drag. - Recommended
When a drag is in progress and the user presses
Help, post a Help dialog that
describes the result of a drop at the pointer location. The Help
dialog should allow the drop to be performed (if it would likely
succeed) or canceled (via a Cancel
choice) or additional Help to be obtained (via a Help choice). - Recommended
If different operations can be performed as a result
of a drop (for example move, copy, or link), provide push buttons
labeled with all the choices in the Help dialog. - Optional
The Help dialog can contain a Resume choice if the
drag can be resumed.
Dropping an Element- Required
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. - Required
When a user drops a source element onto the same
position it currently occupies, the application should not perform
an action. - Required
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. - Required
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. - Required
Move focus to the target control in a drag-and-drop
operation. - Recommended
If the user drops an element at an inappropriate
drop site, design your application to display a "snap back"
effect and to display an error message indicating the reason the
drop was not allowed. Within the error message, state the context
of the error (for example, trying to perform action A on object
B), what happened (for example, could not connect to system X),
and how to correct the problem (for example, direct the user to
press the Help push button for information). - Recommended
When the user selects the target of a drag-and-drop
link operation, make a link (in an application-specific manner)
from the selected elements to the source elements.
Essential Related TopicsFor more information, see the Context-Sensitive Help,
Copy To (Dialog Choice),
Drag/Move
(Action Choice), Direct Manipulation,
Emphasis (Cue), Move To (Dialog Choice),
Pointer, and Window
Menu reference pages. Supplemental Related TopicsFor more information, see the Data
Transfer, Keyboard (Device),
Mouse (Device), Pointer (Predefined),
and Pop-Up Menu (Menu
Type) reference pages.
|