# Class DraggingOptions

GoJS® Diagramming Components
version 3.0.13
by Northwoods Software®

This class contains options for dragging and moving parts.

This is used by Diagram.moveParts, Diagram.computeMove, and DraggingTool.computeMove.

Both the Diagram and its DraggingTool have a DraggingOptions instance. Typically, only the DraggingTool one is used, unless the Diagram has no DraggingTool defined.

In typical DraggingTool operation you do not need to create or modify a DraggingOptions instance. Setting properties on the DraggingTool such as DraggingTool.isGridSnapEnabled sets the value on the DraggingTool.dragOptions instance for you.

`see`

DraggingTool.dragOptions

`since`

2.0

#####
Index

### Constructors

constructor

### Properties

dragsLink
dragsMembers
dragsTree
gridSnapCellSize
gridSnapCellSpot
gridSnapOrigin
groupsAlwaysMove
groupsSnapMembers
isGridSnapEnabled
isGridSnapRealtime

## Constructors

### constructor

- new DraggingOptions(init?: Partial<DraggingOptions>): DraggingOptions

- #### Parameters

  - ##### `Optional` init: Partial<DraggingOptions>

  #### Returns DraggingOptions

## Properties

### dragsLink
: boolean

Gets or sets whether the user can move a single Link, disconnecting it from connected nodes and possibly connecting it to valid ports. By default this property is false.

In typical DraggingTool operation this is set via DraggingTool.dragsLink.

### dragsMembers
: boolean

Determines whether dragging a Group also drags its member Parts if there is no Group.placeholder. By default this property is true.

### dragsTree
: boolean

Gets or sets whether moving or copying a node also includes all of the node's tree children and their descendants, along with the links to those additional nodes. By default this property is false.

In typical DraggingTool operation this is set via DraggingTool.dragsTree.

### gridSnapCellSize
: Size

Gets or sets the size of the grid cell used when snapping during a drag. By default this property is the Size(NaN, NaN), which causes this tool to use the Panel.gridCellSize value of the Diagram.grid.

In typical DraggingTool operation this is set via DraggingTool.gridSnapCellSize.

### gridSnapCellSpot
: Spot

Gets or sets the Spot that specifies what point in the grid cell dragged parts snap to, if the value of isGridSnapEnabled is true. By default this property is Spot.TopLeft.

In typical DraggingTool operation this is set via DraggingTool.gridSnapCellSpot.

### gridSnapOrigin
: Point

Gets or sets the snapping grid's origin point, in document coordinates, if the value of isGridSnapEnabled is true. By default this property is the Point(NaN, NaN).

In typical DraggingTool operation this is set via DraggingTool.gridSnapOrigin.

### groupsAlwaysMove
: boolean

Determines whether or not Groups will ensure their member Parts always move, even if those member parts have Part.copyable and Part.movable set to false. By default this property is true.

### groupsSnapMembers
: boolean

Determines whether or not Groups will snap their member Parts in addition to themselves when moving. By default this property is false.

### isGridSnapEnabled
: boolean

Whether or not the dragged parts snap to the Diagram.grid. By default this property is false.

In typical DraggingTool operation this is set via DraggingTool.isGridSnapEnabled.

### isGridSnapRealtime
: boolean

If dragging with the DraggingTool, whether or not Parts snap to a grid (if applicable) in real-time, or only at the end of the dragging transaction. By default this property is true.

In typical DraggingTool operation this is set via DraggingTool.isGridSnapRealtime.

Copyright © 1998-2024 by Northwoods Software Corporation.