Table of Contents

Namespace Northwoods.Go.Tools

Classes

ActionTool

The ActionTool is responsible for handling and dispatching mouse events on GraphObjects that have IsActionable set to true. This is how one implements "controls", such as buttons or sliders or knobs, as GraphObjects that can be inside Parts without interfering with the standard tool behaviors.

ClickCreatingTool

The ClickCreatingTool lets the user create a node by clicking where they want the new node to be. By default a double-click is required to start this tool; set IsDoubleClick to false if you want a single-click to create a node.

ClickSelectingTool

The ClickSelectingTool selects and deselects Parts when there is a click. It does this by calling StandardMouseSelect(). It is also responsible for handling and dispatching click events on GraphObjects by calling StandardMouseClick(Func<GraphObject, GraphObject>).

ContextMenuTool

The ContextMenuTool is used to create and show a context menu. It automatically disables any browser context menu.

DragSelectingTool

The DragSelectingTool lets the user select multiple parts within a rectangular area drawn by the user.

DraggingTool

The DraggingTool is used to move or copy selected parts with the mouse. This sets the Location property; you may want to save the location to the model by using a TwoWay Binding on the "Location" property in your Parts/Nodes/Groups templates.

LinkReshapingTool

The LinkReshapingTool is used to interactively change the route of a Link by setting its Points list. You may want to save the route to the model by using a TwoWay Binding on the "Points" property of the Link.

LinkingBaseTool

This abstract class is the base class for the LinkingTool and RelinkingTool classes.

LinkingTool

The LinkingTool lets a user draw a new Link between two ports, using a mouse-drag operation.

PanningTool

The PanningTool supports manual panning, where the user can shift the Position by dragging the mouse.

RelinkingTool

The RelinkingTool allows the user to reconnect an existing Link if the RelinkableTo and/or RelinkableFrom properties are true.

ResizingTool

The ResizingTool is used to interactively change the size of a GraphObject in the selected Part or Node by setting its DesiredSize property. You may want to save the size to the model by using a TwoWay Binding on the "DesiredSize" property of the GraphObject that is named by ResizeElementName. This tool does not operate on Links.

RotatingTool

The RotatingTool is used to interactively change the Angle of a GraphObject by setting its Angle property. You may want to save the angle to the model by using a TwoWay Binding on the "Angle" property of the GraphObject that is named by RotateElementName.

TextEditingTool

The TextEditingTool is used to let the user interactively edit text in place. This sets the Text property; you may want to save the changed text to the model by using a TwoWay Binding on the "Text" property of editable TextBlocks.

Tool

Tools handle mouse, keyboard, and touch events. The currently running tool, CurrentTool, receives all input events from the Diagram via canonicalized InputEvents.

ToolManager

This special Tool is responsible for managing all of the Diagram's mode-less tools, which you can access as the ToolManager.

Mode-less tools are tools that are present in one of the following lists: MouseDownTools, MouseMoveTools, or MouseUpTools. This ToolManager tool is normally the DefaultTool, so it is also usually the CurrentTool when the user is doing "nothing".

Interfaces

IHasContextMenu

This simple interface is implemented by classes that allow for the use of a ContextMenu, namely Diagram and GraphObject.

IHasToolTip

This simple interface is implemented by classes that allow for the use of a ToolTip, namely Diagram and GraphObject.

Enums

GestureMode

This enumeration specifies possible values for GestureBehavior.

LinkingDirection

This enumeration specifies possible values for Direction.

ReshapingBehavior

This enumeration specifies possible values for SetReshapingBehavior(GraphObject, ReshapingBehavior) and GetReshapingBehavior(GraphObject).

TextEditingAccept

This enumeration specifies possible values for AcceptText(TextEditingAccept).

TextEditingStarting

This enumeration specifies possible values for Starting.

TextEditingState

This enumeration specifies possible values for State.

WheelMode

This enumeration specifies possible values for MouseWheelBehavior.