DIRECTMANIPULATION_DRAG_DROP_STATUS enumeration (directmanipulation.h)

Defines the drag-and-drop interaction states for the viewport.

Syntax

typedef enum DIRECTMANIPULATION_DRAG_DROP_STATUS {
  DIRECTMANIPULATION_DRAG_DROP_READY = 0,
  DIRECTMANIPULATION_DRAG_DROP_PRESELECT = 1,
  DIRECTMANIPULATION_DRAG_DROP_SELECTING = 2,
  DIRECTMANIPULATION_DRAG_DROP_DRAGGING = 3,
  DIRECTMANIPULATION_DRAG_DROP_CANCELLED = 4,
  DIRECTMANIPULATION_DRAG_DROP_COMMITTED = 5
} ;

Constants

 
DIRECTMANIPULATION_DRAG_DROP_READY
Value: 0
The viewport is at rest and ready for input.
DIRECTMANIPULATION_DRAG_DROP_PRESELECT
Value: 1
The viewport is updating its content and the content is not selected.
DIRECTMANIPULATION_DRAG_DROP_SELECTING
Value: 2
The viewport is updating its content and the content is selected.
DIRECTMANIPULATION_DRAG_DROP_DRAGGING
Value: 3
The viewport is updating its content and the content is being dragged.
DIRECTMANIPULATION_DRAG_DROP_CANCELLED
Value: 4
The viewport has concluded the interaction and requests a revert.
DIRECTMANIPULATION_DRAG_DROP_COMMITTED
Value: 5
The viewport has concluded the interaction and requests a commit.

Remarks

For each interaction, the status always starts at DIRECTMANIPULATION_DRAG_DROP_READY and ends at either DIRECTMANIPULATION_DRAG_DROP_CANCELLED or DIRECTMANIPULATION_DRAG_DROP_COMMITTED. There are no explicit callbacks for the transition from CANCELLED/COMMITTED to READY.

The meaning of the CANCELLED and COMMITTED values depend on the previous status.

  • For DIRECTMANIPULATION_DRAG_DROP_PRESELECT, they mean the same thing: the content goes back to the original location and no other actions should be taken.
  • FOR DIRECTMANIPULATION_DRAG_DROP_SELECTING, COMMITTED means apply the selection change; CANCELLED means avoid the selection change.
  • For DIRECTMANIPULATION_DRAG_DROP_DRAGGING, COMMITTED means perform the drop action; CANCELLED means cancel the drop action.

Requirements

Requirement Value
Minimum supported client Windows 8.1 [desktop apps only]
Minimum supported server Windows Server 2012 R2 [desktop apps only]
Header directmanipulation.h

See also

Direct Manipulation Enumerations