[ Previous |
Motif and CDE 2.1 Style Guide Reference
Data transfer operations transfer objects or data from a source to a
target. The target may simply store the objects or data or may process them in
some way as a result of the transfer.
There are five classes of data transfer operations:
Drag and dropDrags source elements and drops them on the target to which they are
PrimaryTransfers the primary selection to an indicated target.
QuickDesignates elements to be transferred to the control in which the user was
most recently working.
ClipboardTransfers elements to the clipboard and pastes them from the clipboard.
FileTransfers elements to a file (or object) and inserts them from a file (or
Each transfer operation is one of the following:
Copy operationTransfers the data to the target, without affecting the source.
Move operationTransfers the data to the target, removing it from the source.
Link operationTransfers the data to the target (or simply places a link at the target)
so that it remains linked to the source.
When to Use
RequiredAllow any selectable element to be transferred.
RecommendedProvide support for users to transfer large labels that they might want to
copy by using keyboard or mouse-based transfer. For example, a user might want
to copy a complex icon or logo.
RequiredA copy operation should transfer the source elements to the target without
affecting the original source element in any way.
RequiredA move operation should transfer the source elements to the target and
then remove them from the source.
RequiredA link transfer operation should do one of the following:
Transfer the source element to the target, keeping it linked (in an
application-specific manner) to the original source element.
Place a link to the source element (made and displayed in an
application-specific manner) in the target without copying the source element.
RequiredThe insertion point for an operation that transfers data into a selection
scope is determined as follows:
For a mouse-based TRANSFER button primary transfer or drag-and-drop
transfer, the insertion point is the pointer position when the TRANSFER button
For a transfer invoked via a menu (popped up via the MENU button) on a
selection or object, the insertion point is the pointer position when the MENU
button is pressed.
If neither of the previous applies, the pointer position is the cursor
If the insertion position is not on an object, then do one of the
If insertions can happen only at a fixed place in the selection scope, the
insertion point should be placed at that point (for example, append-only
If the elements in the selection scope are ordered in some way, the
insertion point should be moved (for each element inserted) so that the
element may be inserted at the proper position.
RequiredIf the insertion point is on a selection, but not on an object, a transfer
operation into the scope should have one of the following effects:
If a link operation, link the selection to the source elements, if such
links are supported by your application.
If pending delete behavior is enabled, replace the contents of the
selection by the transferred data or link (except possibly for a primary copy
at the edge of the primary selection).
Insert the transferred data or link at the insertion point.
RequiredIf the insertion point is neither on a selection nor on an object, a
transfer operation should insert the transferred data or link at the insertion
RequiredIf the elements are laid out in a linear manner, insert elements
immediately prior to the insertion point.
RecommendedIf the insertion point is on an unselected object, transfer data into that
object (in an object-specific way; for example, if the object is text-based,
append text to the end of the object).
RecommendedIf the insertion point is on a selected object, transfer data into all the
objects selected in the scope. However, issue a warning message instead if all
selected elements in the scope are not objects.
RequiredIf the target insertion point is within the region of the source elements,
do not perform the transfer; instead, issue a warning signal.
RequiredIf an operation that transfers data into a scope is selected from a menu
popped up (via the MENU button) on neither an object nor a selection, issue a
warning message if the insertion point is on an object.
RecommendedIf a scope has elements selected, and a transfer operation uses an
insertion point based on the position of the cursor (rather than the pointer)
that is not within the selection, issue a warning message.
RequiredWhen an object is moved or copied, transfer the contents of the object
along with the object itself.
RequiredWhen a move operation is performed, remove the source elements only if the
data transfer has completed successfully. If the data transfer operation has
been canceled or it has failed, do not remove the source elements.
RequiredDo not select data transferred to a target as a result of a link or copy
RequiredIf the source elements used in a data transfer operation are selected, do
not deselect them as a result of the operation.
RequiredDo not change the source elements used as the source of a copy or link
RequiredWhen transferred data is inserted into a selection scope (not into objects
within the scope) by using normal mode at a position disjoint from a
selection, deselect the selected elements.
RequiredInserting or pasting elements at a location disjoint from the selection
should have no effect on the selection in add mode.
RequiredIf a transfer operation uses an insertion point based on the position of
the pointer (rather than the cursor), place the cursor at the pointer position
RecommendedWhen a data transfer operation inserts multiple elements into a selection
scope (except when a selection is being copied by primary or drag-and-drop
transfer within the same scope), place the selection anchor at the opposite
end of the area or range so that Shift Select Shift Space or Shift Ctrl Space
in text can be used to select it when following is true:
Transferred elements are not selected
Data is inserted as an area or range, which does not overlap existing
elements, one end of which corresponds to the position of the cursor when the
operation is completed
RecommendedIf a selection scope contains only objects, then transferring nonobject
data to the scope should encapsulate the data into an object and include the
object in the scope.
RecommendedWhen a list displays names of objects or files, provide an icon that
represents the objects or files selected (or their contents) adjacent to the
list, allowing the selected list elements to be treated as strings.
RecommendedDisplay a message asking the user to choose the desired result if the
source elements of a data transfer represent files or objects and the user
could be confused that more than one of the following could be inserted:
The images of the icons representing the files or objects
The names of the files or objects
Links to the files or objects
The data contained in the files or objects
RequiredDuring a transfer operation, allow the data transferred to change its
appearance or representation to suit the requirements of the target.
RecommendedIf a source cannot transfer data in the format preferred by the target,
provide a warning message and allow the user to cancel the operation.
RecommendedOn a move transfer operation, notify the user of possible loss of data if
the target element indicates that data may be lost due to conversion of the
format of the transferred data. Ask the user to confirm the action before
proceeding. For example, if the user moves an ASCII file and the target
element will not accept ASCII files without losing data, display a message to
OptionalIf you provide a choice of the exact representation of data to be
transferred, notify the user which representation the application will use.
Alternatively, display a secondary window that allows the user to choose the
A transfer well is a special field similar to a clipboard with option
buttons that represent transferred elements.
RecommendedProvide a transfer well adjacent to the control that can take focus if a
selection scope containing objects does either of the following:
Uses an element cursor and the control containing the scope does not take
focus as a whole
Does not have a background area (for example, it is represented as a list)
Transferring objects to the target well includes them in the scope.
OptionalUse data transferred to transfer wells associated with selection scopes
that consist primarily of text or graphics to replace the contents of the
scope, or as input to operations that manipulate the contents of the scope.
RecommendedIf your application supports transfer to a transfer well as a means of
loading a file into the application, design the application to respond to this
operation as if the operation had occurred through more conventional means,
such as when the user chooses Open from the File menu. That is, provide the
same kind of feedback and behavior for data transfer loading of files as when
the Open choice is used. For example, if changes to a currently loaded file
have not been saved, display a message asking whether the changes should be
saved before loading the new file.
RecommendedIf a group of elements cannot all be transferred successfully, and the
destination can determine this before any transfers are performed, allow the
user to set a property that determines which of the following actions to
Do not transfer any of the elements (the default).
Transfer all the elements that can be transferred.
Display a message asking the user what to do. Include buttons with the
Resume (transfer all possible elements)
Cancel (do no transfers)
RecommendedIf a group of elements cannot all be transferred successfully, but the
destination cannot determine this before at least one transfer has been
performed, allow the user to set a property that determines which of the
following actions to take:
Stop the transfer and undo any transfers that have already occurred (if
Stop the transfer, but allow already completed transfers to remain (the
Transfer only the elements that can be transferred.
Display a message asking the user what to do.
Include buttons with the following choices:
Resume (transfer all possible elements)
Stop (stop transferring, but do not undo transfers)
Cancel (undo all transfers)
Allow the user to override the default operation of a TRANSFER button-based
data transfer operation by using a modifier key. Table 12 lists these operations and overrides.
Table 12. TRANSFER Button Overrides
Essential Related Topics
For more information, see the Clipboard, Direct Manipulation, and
Primary Transfer reference pages.
Supplemental Related Topics
For more information, see the Copy To (Dialog Choice) and Pop-Up Menu
(Menu Type) reference pages.
[ Previous |