Each collection has one or more appropriate selection models. The model limits the kinds of choices the user can make in the collection. Some collections enforce a selection model, while others allow the user or application to change it.
Single selection is the simplest selection model, used to select a single element. BSelect, the first mouse button, provides a consistent means of selecting an object within a group using the mouse.
Browse selection is used to select a single element. It also allows the user to browse through the collection by dragging BSelect.
Multiple selection allows the user to select or deselect multiple elements of a collection, one at a time, by using BSelect Click.
Range selection allows the user to select multiple contiguous elements of a collection by pressing and dragging BSelect.
In text-like collections, elements are ordered linearly, and a text pointer is always considered to be between elements at a point near the actual pointer position.
A marquee, or highlighted rectangle, is often used to indicate the range of a selection in graphics-like and list-like collections.
When the user releases BSelect, the anchor does not move, all the elements within the extended range are selected, and all the elements outside of it are deselected (Mouse-Based Range Selection).
BSelect provides a convenient means of extending the range of a
selection.
Discontiguous selection is an extension of range selection that allows the user to select multiple discontiguous ranges of elements.
In discontiguous selection,
BSelect Click provides a convenient means of moving the anchor and
toggling the selection state of the element under the pointer.
In discontiguous selection,
BSelect provides a convenient means of toggling the selection
state of elements in a range.
BSelect and
BSelect provide a convenient means of extending the range of
toggled elements.
Selection must be available from the keyboard. In normal mode, used for making simple contiguous selections from the keyboard, the location cursor is never disjoint from the current selection. In add mode, used for making more complex and possibly disjoint selections, the location cursor can move independent of the current selection.
provides a convenient means of switching between normal mode and add
mode.
Single selection supports only add mode.
Pressing
[Select]
or
is similar to clicking BSelect.
Browse selection supports only normal mode. A navigation operation is similar to dragging BSelect.
Multiple selection supports only add mode.
Pressing
[Select]
or
is similar to clicking BSelect.
Text-like collections can use a different model in which the navigation keys leave the anchor at its current location, except that, if the current selection is not empty, it is deselected and the anchor is moved to the location of the cursor prior to navigation (Keyboard-Based Range Selection).
Range selection supports normal mode, and, if the collection also supports add mode, normal mode is the default.
In range selection, pressing
[Select]
or
is similar to clicking BSelect, and pressing
[Select]
or
extends the range as with
BSelect.
In range selection, shifted navigation extends the selection in a
similar manner to dragging
BSelect.
Shifted navigation in add mode is similar to shifted navigation in normal mode, except that when the selection is empty the anchor does not move to the cursor prior to navigation.
Normal mode does not permit multiple discontiguous selections.
Add mode permits use of the keyboard to make multiple discontiguous selections.
allows the user
to cancel an incomplete selection operation quickly and consistently.
Autoscrolling provides a convenient means of extending a selection to elements outside the viewport of a scrollable collection.
[/]
provides the user with a convenient means of selecting all of the
objects in a collection.
[\]
allows the user to deselect all of the selected objects quickly and
uniformly.
Mnemonics within a collection of selectable elements provide an additional selection method.
The destination component is used to identify the component on which certain operations, primarily data transfer operations, act. There is only one destination component at a time.
A selection operation acts on the component that has focus, if that component supports selections.
An operation that does not act on a selection acts on the component that has focus, if that component supports the operation.
Pending delete controls the conditions under which the selection is deleted. It is enabled by default.
In add mode, a transfer operation that is disjoint from the selection does not affect the selection.
provides a consistent means of deleting the selection.
In text,
and
[BackSpace]
provide a convenient way to delete the entire selection or single
characters.
Three transfer operations are generally available: copy, move, and
link.
The user requests one of these operations by pressing the buttons or
keys appropriate for the type of transfer.
In general, for mouse-based operations, the modifier
forces a copy,
forces a move, and
forces a link.
However, any requested transfer operation must fail if that operation is
not available.
The insertion position is the position in the destination where transferred data is placed. Some mouse-based transfer operations place data at the pointer position if possible. Other operations, including keyboard-based transfer, generally place the data at the location cursor.
Clipboard selection actions need to be available from the keyboard.
[Cut]
or
and the Cut entry on the Edit Menu offer a consistent means
of cutting the selection to the clipboard from the keyboard.
[Copy]
or
and the Copy entry on the Edit Menu offer a consistent means
of copying the selection to the clipboard from the keyboard.
[Paste]
or
offers a consistent
way of pasting the contents of the clipboard from the keyboard.
Popping up a Popup Menu over a selection indicates that a Paste or Paste Link operation should replace the selection.
Pending delete determines whether the selection is deleted when the insertion position is not disjoint from the selection and Paste or Paste Link is invoked from the Edit Menu or by a keyboard operation.
These operations provide a convenient way for the user to force a copy operation.
These operations provide a convenient way for the user to force a move operation.
BTransfer provides a convenient way for the user to force a link
operation.
This rule provides the expected treatment of the selection in move, copy, and link operation.
Quick transfer is used to make a temporary selection and then immediately move, copy, or link that selection to the insertion position of the destination component. In Text quick transfer provides a convenient way to move, copy, or link text without disturbing the primary selection.
These operations provide a convenient way to perform a quick copy.
This operation provides a convenient way to perform a quick cut.
This operation provides a convenient way to perform a quick link.
Quick transfer is a secondary selection mechanism, so it cannot disrupt the primary selection. When the destination of the transfer is in the primary selection, quick transfer replaces the primary selection with the secondary selection.
This rule provides consistency between primary selection and quick transfer operations.
Autoscrolling provides a convenient means of extending a temporary selection to elements outside the viewport of a scrollable collection.
This mechanism offers a convenient way for the user to force a move operation.
This mechanism offers a convenient way for the user to force a copy operation.
This mechanism offers a convenient way for the user to force a link operation.
This mechanism offers a convenient way to move the selection within a component.
To be consistent, drag and drop actions need to operate on the entire selection.
To be consistent, drag and drop actions need to operate on the entire selection.
Unselected elements can be dragged without affecting the selection.
This guideline ensures the consistency of drag operations.
A drag icon provides visual feedback that a drag operation is in progress.
A source indicator gives a visual representation of the elements being dragged.
provides a consistent way for the user to cancel a drag operation.
Releasing BTransfer offers a consistent means of ending a drag operation.
This rule provides consistency in the treatment of mouse-based transfer operations.
A transfer icon can be used to represent the type of data being transferred during a drop operation. A successful drop operation results in the transfer of data.
A failed drop operation does not result in the transfer of data.