[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]
Motif and CDE 2.1 Style Guide Reference
Drag-and-Drop Transfer
Reference
Description
Drag-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
RequiredSupport dragging any object represented as an icon.
RequiredSupport dropping onto objects represented as icons.
RequiredIf 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.
RequiredIf 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
RequiredMake the source of a drag-and-drop transfer the element or selection on
which the drag was initiated.
RequiredMake 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.
RequiredThe 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.
RequiredThe default operation for a drag-and-drop transfer may be overridden by
Ctrl and/or Shift modifiers when the TRANSFER button is released.
RecommendedAllow users to control whether nonselectable elements such as labels can
be dragged or not.
RecommendedMake 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.
Use the following guidelines when TRANSFER is a separate mouse button from
SELECT.
RequiredInitiate a drag when the user presses the TRANSFER button and then moves
the mouse on selections and elements that can be dragged.
RequiredIf the user uses the TRANSFER button to drag an element that has not been
selected, drag only that element without affecting any existing selection.
RequiredDrag all selected elements in the scope when the user presses the SELECT
button and then moves the mouse on a selection.
RequiredInitiate a drag when the user clicks Alt TRANSFER on a selection or an
element that can be dragged.
RequiredWhether 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.
RequiredWhen 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.
RequiredWhen the user presses MB1 and moves the pointer on a selection, drag all
selected elements in the scope.
RequiredWhen 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.
RequiredWhen 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.
RequiredIf 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.
RequiredWhether 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.
OptionalWhen 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.
RequiredWhen 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.
RequiredWhen 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.
RecommendedWhen 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.
RecommendedWhen 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.
RecommendedWhen 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.
RecommendedIf 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.
RecommendedWhen 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.
RequiredThe 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.
RequiredWhen 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.
RequiredWhen a drag is in progress and the user presses Cancel, cancel the drag.
RecommendedWhen 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).
RecommendedIf 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.
OptionalThe Help dialog can contain a Resume choice if the drag can be resumed.
RequiredWhen 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.
RequiredWhen a user drops a source element onto the same position it currently
occupies, the application should not perform an action.
RequiredIf 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.
RequiredIf 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.
RequiredMove focus to the target control in a drag-and-drop operation.
RecommendedIf 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).
RecommendedWhen 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 Topics
For 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 Topics
For more information, see the Data Transfer, Keyboard (Device), Mouse
(Device), Pointer (Predefined), and Pop-Up Menu (Menu Type) reference pages.
[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]