Class Tool
This tool is used to implement the actions to specify user interactions like move, resize, rotate, and more for an object in the Diagram control.
Inheritance
Implements
Inherited Members
Namespace: Syncfusion.Windows.Forms.Diagram
Assembly: Syncfusion.Diagram.Windows.dll
Syntax
public abstract class Tool : IDisposable
Remarks
A tool is an object that receives input from a controller and implements a piece of functionality or feature. Tools are helper objects that plug into a controller. Tools are attached to a controller using the RegisterTool(Tool) method. Each tool has a Name which must be unique within a controller. The GetTool(String) method in the controller can be used to look up a tool by name.
Activation and deactivation of tools is coordinated by the controller.
Controller ViewConstructors
Tool(DiagramController, String)
Initializes a new instance of the Tool class.
Declaration
public Tool(DiagramController controller, string name)
Parameters
Type | Name | Description |
---|---|---|
DiagramController | controller | The controller. |
System.String | name | The name. |
Fields
m_ConnectorSourceEventArgs
Declaration
protected EndPointChangingEventArgs m_ConnectorSourceEventArgs
Field Value
Type |
---|
EndPointChangingEventArgs |
m_ConnectorTargetEventArgs
Declaration
protected EndPointChangingEventArgs m_ConnectorTargetEventArgs
Field Value
Type |
---|
EndPointChangingEventArgs |
m_ptStartOrigin
Start origin position to calc origin offset.
Declaration
protected PointF m_ptStartOrigin
Field Value
Type |
---|
System.Drawing.PointF |
m_rulerDisplayRect
Store rectangle to display on rulers.
Declaration
protected Rectangle m_rulerDisplayRect
Field Value
Type |
---|
System.Drawing.Rectangle |
m_toolPreceding
Preceding tool.
Declaration
protected Tool m_toolPreceding
Field Value
Type |
---|
Tool |
Properties
ActionCursor
Gets or setsTool Action cursor.
Declaration
public Cursor ActionCursor { get; set; }
Property Value
Type |
---|
System.Windows.Forms.Cursor |
CanRender
Gets or sets a value indicating whether this instance can render.
Declaration
protected bool CanRender { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
|
Controller
Gets the Tool Controller.
Declaration
public DiagramController Controller { get; }
Property Value
Type |
---|
DiagramController |
CurrentCursor
Gets or sets helper property holding current cursor.
Declaration
protected Cursor CurrentCursor { get; set; }
Property Value
Type |
---|
System.Windows.Forms.Cursor |
CurrentPoint
Gets or sets the current point in client coordinates.
Declaration
protected Point CurrentPoint { get; set; }
Property Value
Type | Description |
---|---|
System.Drawing.Point | The current point. |
CurrentToolCursor
Gets the property is used by controller to update current viewer cursor.
Declaration
public Cursor CurrentToolCursor { get; }
Property Value
Type |
---|
System.Windows.Forms.Cursor |
InAction
Gets or sets a value that indicates whether to find the activated tool is currently in progress mode.
Declaration
public bool InAction { get; set; }
Property Value
Type |
---|
System.Boolean |
Name
Gets or sets to specify a name for the tool that is currently activated/ deactivated in the Diagram control.
Declaration
public string Name { get; set; }
Property Value
Type | Description |
---|---|
System.String | The name. |
PrecedingTool
Gets the previously activated tool, which is used to activate the previously activated tool if the current tool action has been completed.
Declaration
public Tool PrecedingTool { get; }
Property Value
Type | Description |
---|---|
Tool | The preceding tool. |
RulerHeight
Gets the height of the ruler.
Declaration
protected int RulerHeight { get; }
Property Value
Type | Description |
---|---|
System.Int32 | The height of the ruler. |
SingleActionTool
Gets or sets a value indicating whether tool lifetime should be single action. SingleActionTool restores preceding tool after performing its action.
Declaration
public bool SingleActionTool { get; set; }
Property Value
Type |
---|
System.Boolean |
StartPoint
Gets or sets Tool Action start point in client coordinates.
Declaration
protected Point StartPoint { get; set; }
Property Value
Type |
---|
System.Drawing.Point |
ToolCursor
Gets or sets Tool Cursor
Declaration
public Cursor ToolCursor { get; set; }
Property Value
Type |
---|
System.Windows.Forms.Cursor |
ToolWorkRect
Gets current work refresh rectangle.
Declaration
public Rectangle ToolWorkRect { get; }
Property Value
Type |
---|
System.Drawing.Rectangle |
Remarks
Used primarily by controller for updating viewer.
WorkRect
Gets or sets the work refresh rectangle.
Declaration
public Rectangle WorkRect { get; set; }
Property Value
Type | Description |
---|---|
System.Drawing.Rectangle | The work rectangle. |
WorkRectPrev
Gets or sets the previous work refresh rectangle.
Declaration
protected Rectangle WorkRectPrev { get; set; }
Property Value
Type | Description |
---|---|
System.Drawing.Rectangle | The previous work rectangle. |
Methods
Abort()
Aborts tool actions.
Declaration
public virtual Tool Abort()
Returns
Type | Description |
---|---|
Tool | The tool to abort. |
ActivateTool()
Activates the tool.
Declaration
public virtual void ActivateTool()
AppendParentTransformations(PointF, Node)
Get point without parent transformations.
Declaration
protected PointF AppendParentTransformations(PointF ptCur, Node node)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.PointF | ptCur | The given point. |
Node | node | The node. |
Returns
Type | Description |
---|---|
System.Drawing.PointF | The transformation points. |
ApplyDecorator(Decorator, Decorator)
Applies the decorator to node.
Declaration
protected void ApplyDecorator(Decorator decorTool, Decorator decorNode)
Parameters
Type | Name | Description |
---|---|---|
Decorator | decorTool | The decorator tool. |
Decorator | decorNode | The decorator node. |
CanAddNode(Rectangle)
Check if node can be added to diagram.
Declaration
protected bool CanAddNode(Rectangle rectBounding)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.Rectangle | rectBounding |
Returns
Type | Description |
---|---|
System.Boolean | true, if can add node. |
CanInsert(Node)
Checks whether node could be inserted into document.
Declaration
protected bool CanInsert(Node nodeToInsert)
Parameters
Type | Name | Description |
---|---|---|
Node | nodeToInsert | Node to insert |
Returns
Type | Description |
---|---|
System.Boolean | true, if can insert. |
CheckBoundaryConstraints(Node, Matrix)
Check if node is contained in model.
Declaration
protected bool CheckBoundaryConstraints(Node node, Matrix mtxParentTransformations)
Parameters
Type | Name | Description |
---|---|---|
Node | node | Node to check. |
System.Drawing.Drawing2D.Matrix | mtxParentTransformations | The matrix of parent transformations. |
Returns
Type | Description |
---|---|
System.Boolean | true, if node inside model |
CheckConnectionCenterPort(PointF)
Checks the for possibility connect to center port.
Declaration
protected ConnectionPoint CheckConnectionCenterPort(PointF ptPoint)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.PointF | ptPoint | The point. |
Returns
Type | Description |
---|---|
ConnectionPoint | The connection point |
CheckConnectionPossibility(PointF)
Checks for connection possibility.
Declaration
protected ConnectionPoint CheckConnectionPossibility(PointF ptTest)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.PointF | ptTest | The point. |
Returns
Type | Description |
---|---|
ConnectionPoint | The connection point |
DeactivateTool()
Deactivates the tool.
Declaration
public virtual void DeactivateTool()
Dispose()
Declaration
public virtual void Dispose()
Draw(Graphics)
Draws the specified graphics.
Declaration
public virtual void Draw(Graphics gfx)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.Graphics | gfx | Graphics to draw on. |
DrawFrameAroundPort(Graphics, ConnectionPoint)
Draws the frame around port.
Declaration
protected virtual void DrawFrameAroundPort(Graphics gfx, ConnectionPoint port)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.Graphics | gfx | Graphics to draw on. |
ConnectionPoint | port | The port. |
DrawRenderHelper(Node, Graphics)
Draws render helper
Declaration
protected virtual void DrawRenderHelper(Node renderHelper, Graphics gfx)
Parameters
Type | Name | Description |
---|---|---|
Node | renderHelper | The render helper. |
System.Drawing.Graphics | gfx | Graphics to draw on. |
DrawRenderHelper(Node, Graphics, Rectangle)
Draws render helper
Declaration
protected void DrawRenderHelper(Node renderHelper, Graphics gfx, Rectangle bounds)
Parameters
Type | Name | Description |
---|---|---|
Node | renderHelper | The render helper. |
System.Drawing.Graphics | gfx | Graphics to draw on. |
System.Drawing.Rectangle | bounds | The bounds of render helper. |
GetCurrentPoint(Boolean)
Get current mouse position in client coordinates with origin offset.
Declaration
protected Point GetCurrentPoint(bool bSnapToGrid)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | bSnapToGrid | if set to |
Returns
Type | Description |
---|---|
System.Drawing.Point | Current mouse position in client coordinates. |
GetEndPointLocation(ConnectionPoint, PointF)
Gets the end point location.
Declaration
protected PointF GetEndPointLocation(ConnectionPoint port, PointF ptLocation)
Parameters
Type | Name | Description |
---|---|---|
ConnectionPoint | port | The port. |
System.Drawing.PointF | ptLocation | The location. |
Returns
Type | Description |
---|---|
System.Drawing.PointF | The end point location. |
GetFrameRectangle(Boolean)
Get rectangle created from start and current point with append origin offset.
Declaration
protected RectangleF GetFrameRectangle(bool bSnapToGrid)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | bSnapToGrid | if set to |
Returns
Type | Description |
---|---|
System.Drawing.RectangleF | The frame rect |
GetFullRotationAngle(Node)
Gets the rotation angle.
Declaration
protected float GetFullRotationAngle(Node node)
Parameters
Type | Name | Description |
---|---|---|
Node | node | The node. |
Returns
Type | Description |
---|---|
System.Single | The rotation angle. |
GetInsideNodeAt(PointF)
Get the inside node composite node.
Declaration
protected Node GetInsideNodeAt(PointF ptLocation)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.PointF | ptLocation | The point to check. |
Returns
Type | Description |
---|---|
Node | Node inside composite node what contain given point. |
GetLocalPoint(Node, PointF)
Gets the local point without node parents transformations.
Declaration
protected PointF GetLocalPoint(Node parent, PointF ptLocation)
Parameters
Type | Name | Description |
---|---|---|
Node | parent | The parent. |
System.Drawing.PointF | ptLocation | The given point. |
Returns
Type | Description |
---|---|
System.Drawing.PointF | The local point. |
GetNodeUnderEndPoint(PointF)
Gets the node under end point.
Declaration
protected Node GetNodeUnderEndPoint(PointF endPointLocation)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.PointF | endPointLocation | The end point container. |
Returns
Type | Description |
---|---|
Node | The node under end point. |
GetOriginOffset()
Get the origin offset from mouse down in model coordinates.
Declaration
protected SizeF GetOriginOffset()
Returns
Type | Description |
---|---|
System.Drawing.SizeF | Origin offset. |
GetPointOffset(PointF, Node)
Gets the point offset.
Declaration
protected SizeF GetPointOffset(PointF ptPoint, Node node)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.PointF | ptPoint | The pt point. |
Node | node | The node. |
Returns
Type | Description |
---|---|
System.Drawing.SizeF | The point offset. |
GetPortBounds(ConnectionPoint, Single)
Get the port bounds.
Declaration
protected RectangleF GetPortBounds(ConnectionPoint port, float fZoomFactor)
Parameters
Type | Name | Description |
---|---|---|
ConnectionPoint | port | The port. |
System.Single | fZoomFactor | Graphics zoom factor. |
Returns
Type | Description |
---|---|
System.Drawing.RectangleF | Bounds of given port. |
GetSelectionList()
Get selection list using model EnableSelectionListSubstitute property value.
Declaration
public NodeCollection GetSelectionList()
Returns
Type | Description |
---|---|
NodeCollection | Selection list. |
GetSnapCurrentPoint()
Get snap current mouse position in client coordinates with origin offset.
Declaration
protected PointF GetSnapCurrentPoint()
Returns
Type | Description |
---|---|
System.Drawing.PointF | Current mouse position in client coordinates. |
GetSnapStartPoint()
Get snap start mouse position in client coordinates with append origin offset.
Declaration
protected PointF GetSnapStartPoint()
Returns
Type | Description |
---|---|
System.Drawing.PointF | Start mouse position in client coordinates with origin offset. |
GetStartPoint(Boolean)
Get start mouse position in client coordinates with append origin offset.
Declaration
protected Point GetStartPoint(bool bSnapToGrid)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | bSnapToGrid | if set to |
Returns
Type | Description |
---|---|
System.Drawing.Point | Start mouse position in client coordinates with origin offset. |
HighlightCenterPortContainer(Graphics, ConnectionPoint)
Highlights the center port container.
Declaration
protected void HighlightCenterPortContainer(Graphics gfx, ConnectionPoint port)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.Graphics | gfx | Graphics to draw on. |
ConnectionPoint | port | The end point. |
MakeControlNodeSnapshot(ControlNode)
Make the control node snapshot.
Declaration
protected Image MakeControlNodeSnapshot(ControlNode nodeCtrl)
Parameters
Type | Name | Description |
---|---|---|
ControlNode | nodeCtrl | The control node . |
Returns
Type | Description |
---|---|
System.Drawing.Image | Snapshot of given control node. |
OnConnectorChanging(EndPointChangingEventArgs)
Declaration
protected virtual void OnConnectorChanging(EndPointChangingEventArgs evtArgs)
Parameters
Type | Name | Description |
---|---|---|
EndPointChangingEventArgs | evtArgs |
OnOriginChanged(ViewOriginEventArgs)
Raise the origin changed event.
Declaration
protected virtual void OnOriginChanged(ViewOriginEventArgs evtArgs)
Parameters
Type | Name | Description |
---|---|---|
ViewOriginEventArgs | evtArgs | The ViewOriginEventArgs instance containing the event data. |
OutlineConnectionPoint(Graphics, ConnectionPoint)
Outlines possible connection point.
Declaration
protected void OutlineConnectionPoint(Graphics gfx, ConnectionPoint port)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.Graphics | gfx | Graphics to draw on. |
ConnectionPoint | port | ConnectionPoint to outline. |
ProcessClick()
Processes the click.
Declaration
public virtual Tool ProcessClick()
Returns
Type | Description |
---|---|
Tool | The tool. |
ProcessDoubleClick(MouseEventArgs)
Processes the double click.
Declaration
public virtual Tool ProcessDoubleClick(MouseEventArgs evtArgs)
Parameters
Type | Name | Description |
---|---|---|
System.Windows.Forms.MouseEventArgs | evtArgs | The System.Windows.Forms.MouseEventArgs instance containing the event data. |
Returns
Type | Description |
---|---|
Tool | The tool. |
ProcessKeyDown(KeyEventArgs)
Processes the key down.
Declaration
public virtual Tool ProcessKeyDown(KeyEventArgs evtArgs)
Parameters
Type | Name | Description |
---|---|---|
System.Windows.Forms.KeyEventArgs | evtArgs | The System.Windows.Forms.KeyEventArgs instance containing the event data. |
Returns
Type | Description |
---|---|
Tool | The tool. |
ProcessKeyPress(KeyPressEventArgs)
Processes the key press.
Declaration
public virtual Tool ProcessKeyPress(KeyPressEventArgs evtArgs)
Parameters
Type | Name | Description |
---|---|---|
System.Windows.Forms.KeyPressEventArgs | evtArgs | The System.Windows.Forms.KeyPressEventArgs instance containing the event data. |
Returns
Type | Description |
---|---|
Tool | The tool. |
ProcessKeyUp(KeyEventArgs)
Processes the key up.
Declaration
public virtual Tool ProcessKeyUp(KeyEventArgs evtArgs)
Parameters
Type | Name | Description |
---|---|---|
System.Windows.Forms.KeyEventArgs | evtArgs | The System.Windows.Forms.KeyEventArgs instance containing the event data. |
Returns
Type | Description |
---|---|
Tool | The tool. |
ProcessMouseDown(MouseEventArgs)
Processes the mouse down.
Declaration
public virtual Tool ProcessMouseDown(MouseEventArgs evtArgs)
Parameters
Type | Name | Description |
---|---|---|
System.Windows.Forms.MouseEventArgs | evtArgs | The System.Windows.Forms.MouseEventArgs instance containing the event data. |
Returns
Type | Description |
---|---|
Tool | The tool. |
ProcessMouseMove(MouseEventArgs)
Processes the mouse move.
Declaration
public virtual Tool ProcessMouseMove(MouseEventArgs evtArgs)
Parameters
Type | Name | Description |
---|---|---|
System.Windows.Forms.MouseEventArgs | evtArgs | The System.Windows.Forms.MouseEventArgs instance containing the event data. |
Returns
Type | Description |
---|---|
Tool | The tool. |
ProcessMouseUp(MouseEventArgs)
Processes the mouse up.
Declaration
public virtual Tool ProcessMouseUp(MouseEventArgs evtArgs)
Parameters
Type | Name | Description |
---|---|---|
System.Windows.Forms.MouseEventArgs | evtArgs | The System.Windows.Forms.MouseEventArgs instance containing the event data. |
Returns
Type | Description |
---|---|
Tool | The tool. |
QuiteBoundarySet(Boolean)
Quites set boundary value without record in history and calling sink events.
Declaration
protected void QuiteBoundarySet(bool bBoundaryConstraintsEnabled)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | bBoundaryConstraintsEnabled | if set to |
QuiteBridgingSet(Boolean)
Quites set line bridging flag without record in history and calling sink events.
Declaration
protected void QuiteBridgingSet(bool bLineBridgingEnabled)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | bLineBridgingEnabled | if set to |
SmartSnap(PointF, SizeF)
Snaps and updates snapped point.
Declaration
protected PointF SmartSnap(PointF ptSnapping, SizeF szOffset)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.PointF | ptSnapping | snapping point |
System.Drawing.SizeF | szOffset | moving entity bounding rectangle left-top point offset |
Returns
Type | Description |
---|---|
System.Drawing.PointF | snapped point |
SnapToPort(PointF, SizeF)
Snaps to port.
Declaration
protected PointF SnapToPort(PointF ptPoint, SizeF szOffset)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.PointF | ptPoint | The given point in client coordinates. |
System.Drawing.SizeF | szOffset | The size offset. |
Returns
Type | Description |
---|---|
System.Drawing.PointF | The point that snapped to port. |
SnapToPort(PointF, SizeF, out Node)
Snaps to nearest port.
Declaration
protected PointF SnapToPort(PointF ptPoint, SizeF szOffset, out Node nodeHit)
Parameters
Type | Name | Description |
---|---|---|
System.Drawing.PointF | ptPoint | The snapping point in client coordinates. |
System.Drawing.SizeF | szOffset | moving entity bounding rectangle left-top point offset |
Node | nodeHit | The node hit. |
Returns
Type | Description |
---|---|
System.Drawing.PointF | Port position. |
UpdateConnnectorChangeEvent(IEndPointContainer, ConnectionPoint, ConnectionPoint)
Declaration
protected ConnectionPoint UpdateConnnectorChangeEvent(IEndPointContainer connector, ConnectionPoint tailPossibleConnection, ConnectionPoint headPossibleConnection)
Parameters
Type | Name | Description |
---|---|---|
IEndPointContainer | connector | |
ConnectionPoint | tailPossibleConnection | |
ConnectionPoint | headPossibleConnection |
Returns
Type |
---|
ConnectionPoint |
UpdateCursor(Boolean)
Updates the cursor to current tool state.
Declaration
protected void UpdateCursor(bool bCanDo)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | bCanDo | if set to |
UpdatePortRefreshRect(ConnectionPoint, ref Rectangle)
Updates the port refresh rectangle.
Declaration
protected void UpdatePortRefreshRect(ConnectionPoint port, ref Rectangle rectPortFrame)
Parameters
Type | Name | Description |
---|---|---|
ConnectionPoint | port | The port. |
System.Drawing.Rectangle | rectPortFrame | The port frame. |