Add project files.

This commit is contained in:
Ankitkumar Satapara
2026-04-17 22:31:58 +05:30
commit 21aaef6776
473 changed files with 50152 additions and 0 deletions

114
docs/api/API-Reference.md Normal file
View File

@@ -0,0 +1,114 @@
## Nodify
- [Alignment Enum](Nodify_Alignment)
- [ArrowHeadEnds Enum](Nodify_ArrowHeadEnds)
- [ArrowHeadShape Enum](Nodify_ArrowHeadShape)
- [BaseConnection Class](Nodify_BaseConnection)
- [BoxValue Class](Nodify_BoxValue)
- [CircuitConnection Class](Nodify_CircuitConnection)
- [Connection Class](Nodify_Connection)
- [ConnectionContainer Class](Nodify_ConnectionContainer)
- [ConnectionDirection Enum](Nodify_ConnectionDirection)
- [ConnectionOffsetMode Enum](Nodify_ConnectionOffsetMode)
- [ConnectionsMultiSelector Class](Nodify_ConnectionsMultiSelector)
- [Connector Class](Nodify_Connector)
- [ConnectorPosition Enum](Nodify_ConnectorPosition)
- [CuttingLine Class](Nodify_CuttingLine)
- [DecoratorContainer Class](Nodify_DecoratorContainer)
- [DecoratorsControl Class](Nodify_DecoratorsControl)
- [EditorCommands Class](Nodify_EditorCommands)
- [GroupingMovementMode Enum](Nodify_GroupingMovementMode)
- [GroupingNode Class](Nodify_GroupingNode)
- [HotKeyControl Class](Nodify_HotKeyControl)
- [HotKeysDisplayMode Enum](Nodify_HotKeysDisplayMode)
- [INodifyCanvasItem Interface](Nodify_INodifyCanvasItem)
- [ItemContainer Class](Nodify_ItemContainer)
- [KnotNode Class](Nodify_KnotNode)
- [LineConnection Class](Nodify_LineConnection)
- [Minimap Class](Nodify_Minimap)
- [MinimapItem Class](Nodify_MinimapItem)
- [Node Class](Nodify_Node)
- [NodeInput Class](Nodify_NodeInput)
- [NodeOutput Class](Nodify_NodeOutput)
- [NodifyCanvas Class](Nodify_NodifyCanvas)
- [NodifyEditor Class](Nodify_NodifyEditor)
- [PendingConnection Class](Nodify_PendingConnection)
- [SelectionType Enum](Nodify_SelectionType)
- [StateNode Class](Nodify_StateNode)
- [StepConnection Class](Nodify_StepConnection)
## Nodify.Events
- [ConnectionEventArgs Class](Nodify_Events_ConnectionEventArgs)
- [ConnectionEventHandler Delegate](Nodify_Events_ConnectionEventHandler)
- [ConnectorEventArgs Class](Nodify_Events_ConnectorEventArgs)
- [ConnectorEventHandler Delegate](Nodify_Events_ConnectorEventHandler)
- [ItemsMovedEventArgs Class](Nodify_Events_ItemsMovedEventArgs)
- [ItemsMovedEventHandler Delegate](Nodify_Events_ItemsMovedEventHandler)
- [PendingConnectionEventArgs Class](Nodify_Events_PendingConnectionEventArgs)
- [PendingConnectionEventHandler Delegate](Nodify_Events_PendingConnectionEventHandler)
- [PreviewLocationChanged Delegate](Nodify_Events_PreviewLocationChanged)
- [ResizeEventArgs Class](Nodify_Events_ResizeEventArgs)
- [ResizeEventHandler Delegate](Nodify_Events_ResizeEventHandler)
- [ZoomEventArgs Class](Nodify_Events_ZoomEventArgs)
- [ZoomEventHandler Delegate](Nodify_Events_ZoomEventHandler)
## Nodify.Interactivity
- [AllGestures Class](Nodify_Interactivity_AllGestures)
- [AnyGesture Class](Nodify_Interactivity_AnyGesture)
- [ConnectionState Class](Nodify_Interactivity_ConnectionState)
- [Disconnect Class](Nodify_Interactivity_ConnectionState_Disconnect)
- [Split Class](Nodify_Interactivity_ConnectionState_Split)
- [ConnectorState Class](Nodify_Interactivity_ConnectorState)
- [Connecting Class](Nodify_Interactivity_ConnectorState_Connecting)
- [Default Class](Nodify_Interactivity_ConnectorState_Default)
- [Disconnect Class](Nodify_Interactivity_ConnectorState_Disconnect)
- [ContainerState Class](Nodify_Interactivity_ContainerState)
- [Default Class](Nodify_Interactivity_ContainerState_Default)
- [DragState\<TElement\> Class](Nodify_Interactivity_DragState_TElement_)
- [EditorGestures Class](Nodify_Interactivity_EditorGestures)
- [ConnectionGestures Class](Nodify_Interactivity_EditorGestures_ConnectionGestures)
- [ConnectorGestures Class](Nodify_Interactivity_EditorGestures_ConnectorGestures)
- [DirectionalNavigationGestures Class](Nodify_Interactivity_EditorGestures_DirectionalNavigationGestures)
- [GroupingNodeGestures Class](Nodify_Interactivity_EditorGestures_GroupingNodeGestures)
- [ItemContainerGestures Class](Nodify_Interactivity_EditorGestures_ItemContainerGestures)
- [MinimapGestures Class](Nodify_Interactivity_EditorGestures_MinimapGestures)
- [NodifyEditorGestures Class](Nodify_Interactivity_EditorGestures_NodifyEditorGestures)
- [SelectionGestures Class](Nodify_Interactivity_EditorGestures_SelectionGestures)
- [EditorState Class](Nodify_Interactivity_EditorState)
- [Cutting Class](Nodify_Interactivity_EditorState_Cutting)
- [KeyboardNavigation Class](Nodify_Interactivity_EditorState_KeyboardNavigation)
- [Panning Class](Nodify_Interactivity_EditorState_Panning)
- [PanningWithMouseWheel Class](Nodify_Interactivity_EditorState_PanningWithMouseWheel)
- [PushingItems Class](Nodify_Interactivity_EditorState_PushingItems)
- [Selecting Class](Nodify_Interactivity_EditorState_Selecting)
- [Zooming Class](Nodify_Interactivity_EditorState_Zooming)
- [IInputHandler Interface](Nodify_Interactivity_IInputHandler)
- [IKeyboardFocusTarget\<TElement\> Interface](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
- [IKeyboardNavigationLayer Interface](Nodify_Interactivity_IKeyboardNavigationLayer)
- [IKeyboardNavigationLayerGroup Interface](Nodify_Interactivity_IKeyboardNavigationLayerGroup)
- [InputElementState\<TElement\> Class](Nodify_Interactivity_InputElementState_TElement_)
- [InputElementStateStack\<TElement\> Class](Nodify_Interactivity_InputElementStateStack_TElement_)
- [DragState\<TElement\> Class](Nodify_Interactivity_InputElementStateStack_TElement__DragState_TElement_)
- [IInputElementState\<TElement\> Interface](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)
- [InputElementState\<TElement\> Class](Nodify_Interactivity_InputElementStateStack_TElement__InputElementState_TElement_)
- [InputGestureRef Class](Nodify_Interactivity_InputGestureRef)
- [InputGestureRefExtensions Class](Nodify_Interactivity_InputGestureRefExtensions)
- [InputProcessor Class](Nodify_Interactivity_InputProcessor)
- [Shared\<TElement\> Class](Nodify_Interactivity_InputProcessor_Shared_TElement_)
- [InputProcessorExtensions Class](Nodify_Interactivity_InputProcessorExtensions)
- [KeyboardNavigationLayerId Class](Nodify_Interactivity_KeyboardNavigationLayerId)
- [KeyComboGesture Class](Nodify_Interactivity_KeyComboGesture)
- [MinimapState Class](Nodify_Interactivity_MinimapState)
- [KeyboardNavigation Class](Nodify_Interactivity_MinimapState_KeyboardNavigation)
- [Panning Class](Nodify_Interactivity_MinimapState_Panning)
- [Zooming Class](Nodify_Interactivity_MinimapState_Zooming)
- [MouseGesture Class](Nodify_Interactivity_MouseGesture)
- [MultiGesture Class](Nodify_Interactivity_MultiGesture)
- [Match Enum](Nodify_Interactivity_MultiGesture_Match)
- [NodifyEditorGestures.KeyboardGestures Class](Nodify_Interactivity_NodifyEditorGestures_KeyboardGestures)

View File

@@ -0,0 +1,52 @@
# Alignment Enum
**Namespace:** Nodify
**Assembly:** Nodify
**References:** [EditorCommands](Nodify_EditorCommands), [NodifyEditor](Nodify_NodifyEditor)
Specifies the possible alignment values used by the NodifyEditor.AlignSelection(Alignment) method.
```csharp
public enum Alignment
```
## Fields
### Bottom
```csharp
Bottom = 2;
```
### Center
```csharp
Center = 5;
```
### Left
```csharp
Left = 1;
```
### Middle
```csharp
Middle = 4;
```
### Right
```csharp
Right = 3;
```
### Top
```csharp
Top = 0;
```

View File

@@ -0,0 +1,48 @@
# ArrowHeadEnds Enum
**Namespace:** Nodify
**Assembly:** Nodify
**References:** [BaseConnection](Nodify_BaseConnection)
The end at which the arrow head is drawn.
```csharp
public enum ArrowHeadEnds
```
## Fields
### Both
Arrow heads at both ends.
```csharp
Both = 2;
```
### End
Arrow head at end.
```csharp
End = 1;
```
### None
No arrow head.
```csharp
None = 3;
```
### Start
Arrow head at start.
```csharp
Start = 0;
```

View File

@@ -0,0 +1,40 @@
# ArrowHeadShape Enum
**Namespace:** Nodify
**Assembly:** Nodify
**References:** [BaseConnection](Nodify_BaseConnection)
The shape of the arrowhead.
```csharp
public enum ArrowHeadShape
```
## Fields
### Arrowhead
The default arrowhead.
```csharp
Arrowhead = 0;
```
### Ellipse
An ellipse.
```csharp
Ellipse = 1;
```
### Rectangle
A rectangle.
```csharp
Rectangle = 2;
```

View File

@@ -0,0 +1,805 @@
# BaseConnection Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Shape](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Shapes.Shape) → [BaseConnection](Nodify_BaseConnection)
**Implements:** [IKeyboardFocusTarget\<FrameworkElement\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
**Derived:** [LineConnection](Nodify_LineConnection), [Connection](Nodify_Connection)
**References:** [ArrowHeadEnds](Nodify_ArrowHeadEnds), [ArrowHeadShape](Nodify_ArrowHeadShape), [ConnectionDirection](Nodify_ConnectionDirection), [ConnectionEventArgs](Nodify_Events_ConnectionEventArgs), [ConnectionEventHandler](Nodify_Events_ConnectionEventHandler), [ConnectionOffsetMode](Nodify_ConnectionOffsetMode), [CuttingLine](Nodify_CuttingLine), [ConnectionState.Disconnect](Nodify_Interactivity_ConnectionState_Disconnect), [NodifyEditor](Nodify_NodifyEditor), [ConnectionState.Split](Nodify_Interactivity_ConnectionState_Split)
Represents the base class for shapes that are drawn from a [BaseConnection.Source](Nodify_BaseConnection#source) point to a [BaseConnection.Target](Nodify_BaseConnection#target) point.
```csharp
public abstract class BaseConnection : Shape, IKeyboardFocusTarget<FrameworkElement>
```
## Constructors
### BaseConnection()
```csharp
protected BaseConnection();
```
## Fields
### ZeroVector
Gets a vector that has its coordinates set to 0.
```csharp
protected static Vector ZeroVector;
```
**Field Value**
[Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector)
## Properties
### ArrowEnds
Gets or sets the arrowhead ends.
```csharp
public ArrowHeadEnds ArrowEnds { get; set; }
```
**Property Value**
[ArrowHeadEnds](Nodify_ArrowHeadEnds)
### ArrowShape
Gets or sets the arrowhead ends.
```csharp
public ArrowHeadShape ArrowShape { get; set; }
```
**Property Value**
[ArrowHeadShape](Nodify_ArrowHeadShape)
### ArrowSize
Gets or sets the size of the arrow head.
```csharp
public Size ArrowSize { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### DefiningGeometry
```csharp
protected override Geometry DefiningGeometry { get; set; }
```
**Property Value**
[Geometry](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Geometry)
### Direction
Gets or sets the direction in which this connection is flowing.
```csharp
public ConnectionDirection Direction { get; set; }
```
**Property Value**
[ConnectionDirection](Nodify_ConnectionDirection)
### DirectionalArrowsAnimationDuration
Gets or sets the duration in seconds of a directional arrow flowing from [BaseConnection.Source](Nodify_BaseConnection#source) to [BaseConnection.Target](Nodify_BaseConnection#target).
```csharp
public double DirectionalArrowsAnimationDuration { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### DirectionalArrowsCount
Gets or sets the number of arrows to be drawn on the line in the direction of the connection (see [BaseConnection.Direction](Nodify_BaseConnection#direction)).
```csharp
public uint DirectionalArrowsCount { get; set; }
```
**Property Value**
[UInt32](https://docs.microsoft.com/en-us/dotnet/api/System.UInt32)
### DirectionalArrowsOffset
Gets or sets the offset of the arrows drawn by the [BaseConnection.DirectionalArrowsCount](Nodify_BaseConnection#directionalarrowscount) (value is clamped between 0 and 1).
```csharp
public double DirectionalArrowsOffset { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### DisconnectCommand
Removes this connection. Triggered by Nodify.Interactivity.EditorGestures.ConnectionGestures.Disconnect gesture.
Parameter is the location where the disconnect ocurred.
```csharp
public ICommand DisconnectCommand { get; set; }
```
**Property Value**
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
### FocusVisualPadding
The space between the focus visual and the connection geometry.
```csharp
public double FocusVisualPadding { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### FocusVisualPen
The pen used to render the focus visual.
```csharp
public Pen FocusVisualPen { get; set; }
```
**Property Value**
[Pen](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Pen)
### FocusVisualPenKey
The key used to retrieve the [BaseConnection.FocusVisualPen](Nodify_BaseConnection#focusvisualpen) resource.
```csharp
public static ResourceKey FocusVisualPenKey { get; set; }
```
**Property Value**
[ResourceKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.ResourceKey)
### FontFamily
```csharp
public FontFamily FontFamily { get; set; }
```
**Property Value**
[FontFamily](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.FontFamily)
### FontSize
```csharp
public double FontSize { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### FontStretch
```csharp
public FontStretch FontStretch { get; set; }
```
**Property Value**
[FontStretch](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FontStretch)
### FontStyle
```csharp
public FontStyle FontStyle { get; set; }
```
**Property Value**
[FontStyle](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FontStyle)
### FontWeight
```csharp
public FontWeight FontWeight { get; set; }
```
**Property Value**
[FontWeight](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FontWeight)
### Foreground
The brush used to render the [BaseConnection.Text](Nodify_BaseConnection#text).
```csharp
public Brush Foreground { get; set; }
```
**Property Value**
[Brush](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Brush)
### HasContextMenu
Gets a value indicating whether the connection has a context menu.
```csharp
public bool HasContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HasCustomContextMenu
Gets or sets a value indicating whether the connection uses a custom context menu.
```csharp
public bool HasCustomContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsAnimatingDirectionalArrows
Gets or sets whether the directional arrows should be flowing through the connection wire.
```csharp
public bool IsAnimatingDirectionalArrows { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### OutlineBrush
The brush used to render the outline.
```csharp
public Brush OutlineBrush { get; set; }
```
**Property Value**
[Brush](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Brush)
### OutlineThickness
The thickness of the outline.
```csharp
public double OutlineThickness { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### PrioritizeBaseConnectionForSelection
Whether to prioritize controls of type [BaseConnection](Nodify_BaseConnection) inside custom connections (connection wrappers)
when setting the [BaseConnection.IsSelectableProperty](Nodify_BaseConnection#isselectableproperty) and [BaseConnection.IsSelectedProperty](Nodify_BaseConnection#isselectedproperty) attached properties.
```csharp
public static bool PrioritizeBaseConnectionForSelection { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### Source
Gets or sets the start point of this connection.
```csharp
public Point Source { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### SourceOffset
Gets or sets the offset from the [BaseConnection.Source](Nodify_BaseConnection#source) point.
```csharp
public Size SourceOffset { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### SourceOffsetMode
Gets or sets the [ConnectionOffsetMode](Nodify_ConnectionOffsetMode) to apply to the [BaseConnection.Source](Nodify_BaseConnection#source) when drawing the connection.
```csharp
public ConnectionOffsetMode SourceOffsetMode { get; set; }
```
**Property Value**
[ConnectionOffsetMode](Nodify_ConnectionOffsetMode)
### SourceOrientation
Gets or sets the orientation in which this connection is flowing.
```csharp
public Orientation SourceOrientation { get; set; }
```
**Property Value**
[Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation)
### Spacing
The distance between the start point and the where the angle breaks.
```csharp
public double Spacing { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### SplitCommand
Splits the connection. Triggered by Nodify.Interactivity.EditorGestures.ConnectionGestures.Split gesture.
Parameter is the location where the splitting ocurred.
```csharp
public ICommand SplitCommand { get; set; }
```
**Property Value**
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
### Target
Gets or sets the end point of this connection.
```csharp
public Point Target { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### TargetOffset
Gets or sets the offset from the [BaseConnection.Target](Nodify_BaseConnection#target) point.
```csharp
public Size TargetOffset { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### TargetOffsetMode
Gets or sets the [ConnectionOffsetMode](Nodify_ConnectionOffsetMode) to apply to the [BaseConnection.Target](Nodify_BaseConnection#target) when drawing the connection.
```csharp
public ConnectionOffsetMode TargetOffsetMode { get; set; }
```
**Property Value**
[ConnectionOffsetMode](Nodify_ConnectionOffsetMode)
### TargetOrientation
Gets or sets the orientation in which this connection is flowing.
```csharp
public Orientation TargetOrientation { get; set; }
```
**Property Value**
[Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation)
### Text
Gets or sets the text contents of the [BaseConnection](Nodify_BaseConnection).
```csharp
public string Text { get; set; }
```
**Property Value**
[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)
## Methods
### DrawArrowGeometry(StreamGeometryContext, Point, Point, ConnectionDirection, ArrowHeadShape, Orientation)
```csharp
protected virtual void DrawArrowGeometry(StreamGeometryContext context, Point source, Point target, ConnectionDirection arrowDirection = 0, ArrowHeadShape shape = 0, Orientation orientation = 0);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`arrowDirection` [ConnectionDirection](Nodify_ConnectionDirection)
`shape` [ArrowHeadShape](Nodify_ArrowHeadShape)
`orientation` [Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation)
### DrawDefaultArrowhead(StreamGeometryContext, Point, Point, ConnectionDirection, Orientation)
```csharp
protected virtual void DrawDefaultArrowhead(StreamGeometryContext context, Point source, Point target, ConnectionDirection arrowDirection = 0, Orientation orientation = 0);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`arrowDirection` [ConnectionDirection](Nodify_ConnectionDirection)
`orientation` [Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation)
### DrawDirectionalArrowheadGeometry(StreamGeometryContext, Vector, Point)
```csharp
protected virtual void DrawDirectionalArrowheadGeometry(StreamGeometryContext context, Vector direction, Point location);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`direction` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector)
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### DrawDirectionalArrowsGeometry(StreamGeometryContext, Point, Point)
```csharp
protected virtual void DrawDirectionalArrowsGeometry(StreamGeometryContext context, Point source, Point target);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### DrawEllipseArrowhead(StreamGeometryContext, Point, Point, ConnectionDirection, Orientation)
```csharp
protected virtual void DrawEllipseArrowhead(StreamGeometryContext context, Point source, Point target, ConnectionDirection arrowDirection = 0, Orientation orientation = 0);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`arrowDirection` [ConnectionDirection](Nodify_ConnectionDirection)
`orientation` [Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation)
### DrawLineGeometry(StreamGeometryContext, Point, Point)
```csharp
protected virtual ValueTuple<ValueTuple<Point, Point>, ValueTuple<Point, Point>> DrawLineGeometry(StreamGeometryContext context, Point source, Point target);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
**Returns**
[ValueTuple\<ValueTuple\<Point, Point\>, ValueTuple\<Point, Point\>\>](https://docs.microsoft.com/en-us/dotnet/api/System.ValueTuple-2)
### DrawRectangleArrowhead(StreamGeometryContext, Point, Point, ConnectionDirection, Orientation)
```csharp
protected virtual void DrawRectangleArrowhead(StreamGeometryContext context, Point source, Point target, ConnectionDirection arrowDirection = 0, Orientation orientation = 0);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`arrowDirection` [ConnectionDirection](Nodify_ConnectionDirection)
`orientation` [Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation)
### GetIsSelectable(UIElement)
```csharp
public static bool GetIsSelectable(UIElement elem);
```
**Parameters**
`elem` [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### GetIsSelected(UIElement)
```csharp
public static bool GetIsSelected(UIElement elem);
```
**Parameters**
`elem` [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### GetOffset()
Gets the resulting offset after applying the [BaseConnection.SourceOffsetMode](Nodify_BaseConnection#sourceoffsetmode).
```csharp
protected virtual ValueTuple<Vector, Vector> GetOffset();
```
**Returns**
[ValueTuple\<Vector, Vector\>](https://docs.microsoft.com/en-us/dotnet/api/System.ValueTuple-2)
### GetTextPosition(FormattedText, Point, Point)
```csharp
protected virtual Point GetTextPosition(FormattedText text, Point source, Point target);
```
**Parameters**
`text` [FormattedText](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.FormattedText)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
**Returns**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### OnKeyDown(KeyEventArgs)
```csharp
protected override void OnKeyDown(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnKeyUp(KeyEventArgs)
```csharp
protected override void OnKeyUp(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnLostMouseCapture(MouseEventArgs)
```csharp
protected override void OnLostMouseCapture(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
### OnMouseDown(MouseButtonEventArgs)
```csharp
protected override void OnMouseDown(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected override void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
### OnMouseUp(MouseButtonEventArgs)
```csharp
protected override void OnMouseUp(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseWheel(MouseWheelEventArgs)
```csharp
protected override void OnMouseWheel(MouseWheelEventArgs e);
```
**Parameters**
`e` [MouseWheelEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseWheelEventArgs)
### OnRender(DrawingContext)
```csharp
protected override void OnRender(DrawingContext drawingContext);
```
**Parameters**
`drawingContext` [DrawingContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.DrawingContext)
### Remove()
Removes the connection.
```csharp
public void Remove();
```
### SetIsSelectable(UIElement, Boolean)
```csharp
public static void SetIsSelectable(UIElement elem, bool value);
```
**Parameters**
`elem` [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement)
`value` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### SetIsSelected(UIElement, Boolean)
```csharp
public static void SetIsSelected(UIElement elem, bool value);
```
**Parameters**
`elem` [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement)
`value` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### SplitAtLocation(Point)
Splits the connection at the specified location.
```csharp
public void SplitAtLocation(Point splitLocation);
```
**Parameters**
`splitLocation` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point) where the connection should be split.
### StartAnimation(Double)
Starts animating the directional arrows.
```csharp
public void StartAnimation(double duration = 1.5d);
```
**Parameters**
`duration` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double): The duration for moving an arrowhead from [BaseConnection.Source](Nodify_BaseConnection#source) to [BaseConnection.Target](Nodify_BaseConnection#target).
### StopAnimation()
Stops the animation started by Nodify.BaseConnection.StartAnimation(System.Double)
```csharp
public void StopAnimation();
```
## Events
### Disconnect
Triggered by the Nodify.Interactivity.EditorGestures.ConnectionGestures.Disconnect gesture.
```csharp
public event ConnectionEventHandler Disconnect;
```
**Event Type**
[ConnectionEventHandler](Nodify_Events_ConnectionEventHandler)
### Split
Triggered by the Nodify.Interactivity.EditorGestures.ConnectionGestures.Split gesture.
```csharp
public event ConnectionEventHandler Split;
```
**Event Type**
[ConnectionEventHandler](Nodify_Events_ConnectionEventHandler)

204
docs/api/Nodify_BoxValue.md Normal file
View File

@@ -0,0 +1,204 @@
# BoxValue Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [BoxValue](Nodify_BoxValue)
```csharp
public static class BoxValue
```
## Fields
### ArrowSize
```csharp
public static object ArrowSize;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### ConnectionOffset
```csharp
public static object ConnectionOffset;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Double0
```csharp
public static object Double0;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Double1
```csharp
public static object Double1;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Double1000
```csharp
public static object Double1000;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Double2
```csharp
public static object Double2;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Double45
```csharp
public static object Double45;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Double5
```csharp
public static object Double5;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### DoubleHalf
```csharp
public static object DoubleHalf;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### False
```csharp
public static object False;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Int0
```csharp
public static object Int0;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Int1
```csharp
public static object Int1;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Point
```csharp
public static object Point;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Rect
```csharp
public static object Rect;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Size
```csharp
public static object Size;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Thickness2
```csharp
public static object Thickness2;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### True
```csharp
public static object True;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### UInt0
```csharp
public static object UInt0;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### UInt1
```csharp
public static object UInt1;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)

View File

@@ -0,0 +1,100 @@
# CircuitConnection Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Shape](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Shapes.Shape) → [BaseConnection](Nodify_BaseConnection) → [LineConnection](Nodify_LineConnection) → [CircuitConnection](Nodify_CircuitConnection)
Represents a line that is controlled by an angle.
```csharp
public class CircuitConnection : LineConnection
```
## Constructors
### CircuitConnection()
```csharp
public CircuitConnection();
```
## Fields
### Degrees
```csharp
protected const double Degrees = 0.017453292519943295d;
```
**Field Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
## Properties
### Angle
The angle of the connection in degrees.
```csharp
public double Angle { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
## Methods
### DrawDirectionalArrowsGeometry(StreamGeometryContext, Point, Point)
```csharp
protected override void DrawDirectionalArrowsGeometry(StreamGeometryContext context, Point source, Point target);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### DrawLineGeometry(StreamGeometryContext, Point, Point)
```csharp
protected override ValueTuple<ValueTuple<Point, Point>, ValueTuple<Point, Point>> DrawLineGeometry(StreamGeometryContext context, Point source, Point target);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
**Returns**
[ValueTuple\<ValueTuple\<Point, Point\>, ValueTuple\<Point, Point\>\>](https://docs.microsoft.com/en-us/dotnet/api/System.ValueTuple-2)
### GetTextPosition(FormattedText, Point, Point)
```csharp
protected override Point GetTextPosition(FormattedText text, Point source, Point target);
```
**Parameters**
`text` [FormattedText](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.FormattedText)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
**Returns**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)

View File

@@ -0,0 +1,98 @@
# Connection Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Shape](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Shapes.Shape) → [BaseConnection](Nodify_BaseConnection) → [Connection](Nodify_Connection)
**References:** [Connector](Nodify_Connector), [NodifyEditor](Nodify_NodifyEditor)
Represents a cubic bezier curve.
```csharp
public class Connection : BaseConnection
```
## Constructors
### Connection()
```csharp
public Connection();
```
## Methods
### DrawDirectionalArrowsGeometry(StreamGeometryContext, Point, Point)
```csharp
protected override void DrawDirectionalArrowsGeometry(StreamGeometryContext context, Point source, Point target);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### DrawLineGeometry(StreamGeometryContext, Point, Point)
```csharp
protected override ValueTuple<ValueTuple<Point, Point>, ValueTuple<Point, Point>> DrawLineGeometry(StreamGeometryContext context, Point source, Point target);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
**Returns**
[ValueTuple\<ValueTuple\<Point, Point\>, ValueTuple\<Point, Point\>\>](https://docs.microsoft.com/en-us/dotnet/api/System.ValueTuple-2)
### GetTextPosition(FormattedText, Point, Point)
```csharp
protected override Point GetTextPosition(FormattedText text, Point source, Point target);
```
**Parameters**
`text` [FormattedText](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.FormattedText)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
**Returns**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### InterpolateCubicBezier(Point, Point, Point, Point, Double)
```csharp
protected static Point InterpolateCubicBezier(Point P0, Point P1, Point P2, Point P3, double t);
```
**Parameters**
`P0` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`P1` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`P2` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`P3` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`t` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
**Returns**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)

View File

@@ -0,0 +1,165 @@
# ConnectionContainer Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [ContentPresenter](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ContentPresenter) → [ConnectionContainer](Nodify_ConnectionContainer)
**Implements:** [IKeyboardFocusTarget\<ConnectionContainer\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
**References:** [ConnectionsMultiSelector](Nodify_ConnectionsMultiSelector), [SelectionType](Nodify_SelectionType)
```csharp
public class ConnectionContainer : ContentPresenter, IKeyboardFocusTarget<ConnectionContainer>
```
## Constructors
### ConnectionContainer(ConnectionsMultiSelector)
```csharp
public ConnectionContainer(ConnectionsMultiSelector selector);
```
**Parameters**
`selector` [ConnectionsMultiSelector](Nodify_ConnectionsMultiSelector)
## Properties
### Bounds
```csharp
public virtual Rect Bounds { get; set; }
```
**Property Value**
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
### Connection
```csharp
public FrameworkElement Connection { get; set; }
```
**Property Value**
[FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement)
### IsSelectable
Gets or sets whether this [ConnectionContainer](Nodify_ConnectionContainer) can be selected.
```csharp
public bool IsSelectable { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsSelected
Gets or sets a value that indicates whether this [ConnectionContainer](Nodify_ConnectionContainer) is selected.
Can only be set if [ConnectionContainer.IsSelectable](Nodify_ConnectionContainer#isselectable) is true.
```csharp
public bool IsSelected { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### Selector
```csharp
public ConnectionsMultiSelector Selector { get; set; }
```
**Property Value**
[ConnectionsMultiSelector](Nodify_ConnectionsMultiSelector)
## Methods
### OnIsKeyboardFocusedChanged(DependencyPropertyChangedEventArgs)
```csharp
protected override void OnIsKeyboardFocusedChanged(DependencyPropertyChangedEventArgs e);
```
**Parameters**
`e` [DependencyPropertyChangedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyChangedEventArgs)
### OnMouseDown(MouseButtonEventArgs)
```csharp
protected override void OnMouseDown(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseUp(MouseButtonEventArgs)
```csharp
protected override void OnMouseUp(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnVisualParentChanged(DependencyObject)
```csharp
protected override void OnVisualParentChanged(DependencyObject oldParent);
```
**Parameters**
`oldParent` [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject)
### Select(SelectionType)
Modifies the selection state of the current item based on the specified selection type.
```csharp
public void Select(SelectionType type);
```
**Parameters**
`type` [SelectionType](Nodify_SelectionType): The type of selection to perform.
## Events
### Selected
Occurs when this [ConnectionContainer](Nodify_ConnectionContainer) is selected.
```csharp
public event RoutedEventHandler Selected;
```
**Event Type**
[RoutedEventHandler](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventHandler)
### Unselected
Occurs when this [ConnectionContainer](Nodify_ConnectionContainer) is unselected.
```csharp
public event RoutedEventHandler Unselected;
```
**Event Type**
[RoutedEventHandler](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventHandler)

View File

@@ -0,0 +1,32 @@
# ConnectionDirection Enum
**Namespace:** Nodify
**Assembly:** Nodify
**References:** [BaseConnection](Nodify_BaseConnection), [LineConnection](Nodify_LineConnection), [PendingConnection](Nodify_PendingConnection)
The direction in which a connection is oriented.
```csharp
public enum ConnectionDirection
```
## Fields
### Backward
From [BaseConnection.Target](Nodify_BaseConnection#target) to [BaseConnection.Source](Nodify_BaseConnection#source).
```csharp
Backward = 1;
```
### Forward
From [BaseConnection.Source](Nodify_BaseConnection#source) to [BaseConnection.Target](Nodify_BaseConnection#target).
```csharp
Forward = 0;
```

View File

@@ -0,0 +1,56 @@
# ConnectionOffsetMode Enum
**Namespace:** Nodify
**Assembly:** Nodify
**References:** [BaseConnection](Nodify_BaseConnection)
Specifies the offset type that can be applied to a [BaseConnection](Nodify_BaseConnection) using the [BaseConnection.SourceOffset](Nodify_BaseConnection#sourceoffset) and the [BaseConnection.TargetOffset](Nodify_BaseConnection#targetoffset) values.
```csharp
public enum ConnectionOffsetMode
```
## Fields
### Circle
The offset is applied in a circle around the point.
```csharp
Circle = 1;
```
### Edge
The offset is applied in a rectangle shape around the point, perpendicular to the edges.
```csharp
Edge = 3;
```
### None
No offset applied.
```csharp
None = 0;
```
### Rectangle
The offset is applied in a rectangle shape around the point.
```csharp
Rectangle = 2;
```
### Static
The offset is applied as a fixed margin.
```csharp
Static = 4;
```

View File

@@ -0,0 +1,184 @@
# ConnectionsMultiSelector Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ItemsControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ItemsControl) → [Selector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Primitives.Selector) → [MultiSelector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Primitives.MultiSelector) → [ConnectionsMultiSelector](Nodify_ConnectionsMultiSelector)
**Implements:** [IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer)
**References:** [ConnectionContainer](Nodify_ConnectionContainer), [IKeyboardFocusTarget\<ConnectionContainer\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_), [IKeyboardFocusTarget\<UIElement\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_), [KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId), [NodifyEditor](Nodify_NodifyEditor)
```csharp
public class ConnectionsMultiSelector : MultiSelector, IKeyboardNavigationLayer
```
## Constructors
### ConnectionsMultiSelector()
```csharp
public ConnectionsMultiSelector();
```
## Properties
### CanSelectMultipleItems
Gets or sets whether multiple connections can be selected.
```csharp
public bool CanSelectMultipleItems { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### Editor
Gets the [NodifyEditor](Nodify_NodifyEditor) that owns this [ConnectionsMultiSelector](Nodify_ConnectionsMultiSelector).
```csharp
public NodifyEditor Editor { get; set; }
```
**Property Value**
[NodifyEditor](Nodify_NodifyEditor)
### Id
```csharp
public virtual KeyboardNavigationLayerId Id { get; set; }
```
**Property Value**
[KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId)
### LastFocusedElement
```csharp
public virtual IKeyboardFocusTarget<UIElement> LastFocusedElement { get; set; }
```
**Property Value**
[IKeyboardFocusTarget\<UIElement\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
### SelectedItems
Gets or sets the selected connections in the [NodifyEditor](Nodify_NodifyEditor).
```csharp
public IList SelectedItems { get; set; }
```
**Property Value**
[IList](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.IList)
## Methods
### FindNextFocusTarget(ConnectionContainer, TraversalRequest)
```csharp
protected virtual ConnectionContainer FindNextFocusTarget(ConnectionContainer currentContainer, TraversalRequest request);
```
**Parameters**
`currentContainer` [ConnectionContainer](Nodify_ConnectionContainer)
`request` [TraversalRequest](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.TraversalRequest)
**Returns**
[ConnectionContainer](Nodify_ConnectionContainer)
### GetContainerForItemOverride()
```csharp
protected override DependencyObject GetContainerForItemOverride();
```
**Returns**
[DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject)
### IsItemItsOwnContainerOverride(Object)
```csharp
protected override bool IsItemItsOwnContainerOverride(object item);
```
**Parameters**
`item` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### OnApplyTemplate()
```csharp
public override void OnApplyTemplate();
```
### OnElementFocused(IKeyboardFocusTarget\<ConnectionContainer\>)
```csharp
protected virtual void OnElementFocused(IKeyboardFocusTarget<ConnectionContainer> target);
```
**Parameters**
`target` [IKeyboardFocusTarget\<ConnectionContainer\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
### OnSelectionChanged(SelectionChangedEventArgs)
```csharp
protected override void OnSelectionChanged(SelectionChangedEventArgs e);
```
**Parameters**
`e` [SelectionChangedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.SelectionChangedEventArgs)
### Select(ConnectionContainer)
```csharp
public void Select(ConnectionContainer container);
```
**Parameters**
`container` [ConnectionContainer](Nodify_ConnectionContainer)
### TryMoveFocus(TraversalRequest)
```csharp
public virtual bool TryMoveFocus(TraversalRequest request);
```
**Parameters**
`request` [TraversalRequest](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.TraversalRequest)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### TryRestoreFocus()
```csharp
public virtual bool TryRestoreFocus();
```
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

View File

@@ -0,0 +1,476 @@
# Connector Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [Connector](Nodify_Connector)
**Derived:** [NodeInput](Nodify_NodeInput), [NodeOutput](Nodify_NodeOutput), [StateNode](Nodify_StateNode)
**References:** [ConnectorState.Connecting](Nodify_Interactivity_ConnectorState_Connecting), [Connection](Nodify_Connection), [ConnectorEventArgs](Nodify_Events_ConnectorEventArgs), [ConnectorEventHandler](Nodify_Events_ConnectorEventHandler), [ConnectorState.Default](Nodify_Interactivity_ConnectorState_Default), [ConnectorState.Disconnect](Nodify_Interactivity_ConnectorState_Disconnect), [InputProcessor](Nodify_Interactivity_InputProcessor), [ItemContainer](Nodify_ItemContainer), [KnotNode](Nodify_KnotNode), [Node](Nodify_Node), [NodifyEditor](Nodify_NodifyEditor), [PendingConnection](Nodify_PendingConnection), [PendingConnectionEventArgs](Nodify_Events_PendingConnectionEventArgs), [PendingConnectionEventHandler](Nodify_Events_PendingConnectionEventHandler)
Represents a connector control that can start and complete a [PendingConnection](Nodify_PendingConnection).
Has a [Connector.ElementConnector](Nodify_Connector#elementconnector) that the [Connector.Anchor](Nodify_Connector#anchor) is calculated from for the [PendingConnection](Nodify_PendingConnection). Center of this control is used if missing.
```csharp
public class Connector : Control
```
## Constructors
### Connector()
```csharp
public Connector();
```
## Fields
### ElementConnector
```csharp
protected const string ElementConnector = "PART_Connector";
```
**Field Value**
[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)
### EnableOptimizations
Gets or sets if [Connector](Nodify_Connector)s should enable optimizations based on [Connector.OptimizeSafeZone](Nodify_Connector#optimizesafezone) and [Connector.OptimizeMinimumSelectedItems](Nodify_Connector#optimizeminimumselecteditems).
```csharp
public static bool EnableOptimizations;
```
**Field Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### OptimizeMinimumSelectedItems
Gets or sets the minimum selected items needed to trigger optimizations when outside of the [Connector.OptimizeSafeZone](Nodify_Connector#optimizesafezone).
```csharp
public static uint OptimizeMinimumSelectedItems;
```
**Field Value**
[UInt32](https://docs.microsoft.com/en-us/dotnet/api/System.UInt32)
### OptimizeSafeZone
Gets or sets the safe zone outside the editor's viewport that will not trigger optimizations.
```csharp
public static double OptimizeSafeZone;
```
**Field Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
## Properties
### AllowPendingConnectionCancellation
Gets or sets whether cancelling a pending connection is allowed.
```csharp
public static bool AllowPendingConnectionCancellation { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### Anchor
Gets the location in graph space coordinates where [Connection](Nodify_Connection)s can be attached to.
Bind with System.Windows.Data.BindingMode.OneWayToSource
```csharp
public Point Anchor { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### Container
Gets the [ItemContainer](Nodify_ItemContainer) that contains this [Connector](Nodify_Connector).
```csharp
public ItemContainer Container { get; set; }
```
**Property Value**
[ItemContainer](Nodify_ItemContainer)
### DisconnectCommand
Invoked if the [Connector.Disconnect](Nodify_Connector#disconnect) event is not handled.
Parameter is the [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) of this control.
```csharp
public ICommand DisconnectCommand { get; set; }
```
**Property Value**
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
### Editor
Gets the [NodifyEditor](Nodify_NodifyEditor) that owns this [Connector.Container](Nodify_Connector#container).
```csharp
public NodifyEditor Editor { get; set; }
```
**Property Value**
[NodifyEditor](Nodify_NodifyEditor)
### HasContextMenu
Gets a value indicating whether the connector has a context menu.
```csharp
public bool HasContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HasCustomContextMenu
Gets or sets a value indicating whether the connector uses a custom context menu.
```csharp
public bool HasCustomContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### InputProcessor
```csharp
protected InputProcessor InputProcessor { get; set; }
```
**Property Value**
[InputProcessor](Nodify_Interactivity_InputProcessor)
### IsConnected
If this is set to false, the [Connector.Disconnect](Nodify_Connector#disconnect) event will not be invoked and the connector will stop updating its [Connector.Anchor](Nodify_Connector#anchor) when moved, resized etc.
```csharp
public bool IsConnected { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsPendingConnection
Gets a value that indicates whether a [PendingConnection](Nodify_PendingConnection) is in progress for this [Connector](Nodify_Connector).
```csharp
public bool IsPendingConnection { get; protected set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Methods
### BeginConnecting()
Initiates a new pending connection from this connector with the specified offset (see [Connector.IsPendingConnection](Nodify_Connector#ispendingconnection)).
```csharp
public void BeginConnecting();
```
### BeginConnecting(Vector)
```csharp
public void BeginConnecting(Vector offset);
```
**Parameters**
`offset` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector)
### CancelConnecting()
Cancels the current pending connection without completing it if [Connector.AllowPendingConnectionCancellation](Nodify_Connector#allowpendingconnectioncancellation) is true.
Otherwise, it completes the pending connection by calling Nodify.Connector.EndConnecting.
```csharp
public void CancelConnecting();
```
### EndConnecting()
Completes the current pending connection using the specified connector as the target.
```csharp
public void EndConnecting();
```
### EndConnecting(Connector)
```csharp
public void EndConnecting(Connector connector);
```
**Parameters**
`connector` [Connector](Nodify_Connector)
### FindConnectionTarget(Point)
Searches for a potential [Connector](Nodify_Connector) or [ItemContainer](Nodify_ItemContainer) at the specified position within the editor.
```csharp
public FrameworkElement FindConnectionTarget(Point position);
```
**Parameters**
`position` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The position in the editor to check for a potential connection target.
**Returns**
[FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement)
### FindTargetConnector(Point)
Searches for a [Connector](Nodify_Connector) at the specified position.
```csharp
public Connector FindTargetConnector(Point position);
```
**Parameters**
`position` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The position in the editor to check for a connector.
**Returns**
[Connector](Nodify_Connector)
### OnApplyTemplate()
```csharp
public override void OnApplyTemplate();
```
### OnKeyDown(KeyEventArgs)
```csharp
protected override void OnKeyDown(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnKeyUp(KeyEventArgs)
```csharp
protected override void OnKeyUp(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnLostMouseCapture(MouseEventArgs)
```csharp
protected override void OnLostMouseCapture(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
### OnMouseDown(MouseButtonEventArgs)
```csharp
protected override void OnMouseDown(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected override void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
### OnMouseUp(MouseButtonEventArgs)
```csharp
protected override void OnMouseUp(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseWheel(MouseWheelEventArgs)
```csharp
protected override void OnMouseWheel(MouseWheelEventArgs e);
```
**Parameters**
`e` [MouseWheelEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseWheelEventArgs)
### OnRenderSizeChanged(SizeChangedInfo)
```csharp
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo);
```
**Parameters**
`sizeInfo` [SizeChangedInfo](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.SizeChangedInfo)
### RemoveConnections()
Removes all connections associated with this connector.
```csharp
public void RemoveConnections();
```
### UpdateAnchor(Point)
Updates the [Connector.Anchor](Nodify_Connector#anchor) relative to a location. (usually [Connector.Container](Nodify_Connector#container)'s location)
```csharp
protected void UpdateAnchor(Point location);
```
**Parameters**
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The relative location
### UpdateAnchor()
Updates the [Connector.Anchor](Nodify_Connector#anchor) based on [Connector.Container](Nodify_Connector#container)'s location.
```csharp
public void UpdateAnchor();
```
### UpdateAnchorOptimized(Point)
Updates the [Connector.Anchor](Nodify_Connector#anchor) and applies optimizations if needed based on [Connector.EnableOptimizations](Nodify_Connector#enableoptimizations) flag
```csharp
protected void UpdateAnchorOptimized(Point location);
```
**Parameters**
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### UpdatePendingConnection(Vector)
Updates the endpoint of the pending connection by adjusting its position with the specified offset.
```csharp
public void UpdatePendingConnection(Vector offset);
```
**Parameters**
`offset` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector): The amount to adjust the pending connection's endpoint.
### UpdatePendingConnection(Point)
Updates the endpoint of the pending connection to the specified position.
```csharp
public void UpdatePendingConnection(Point position);
```
**Parameters**
`position` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The new position for the connection's endpoint.
## Events
### Disconnect
Triggered by the Nodify.Interactivity.EditorGestures.ConnectorGestures.Disconnect gesture.
```csharp
public event ConnectorEventHandler Disconnect;
```
**Event Type**
[ConnectorEventHandler](Nodify_Events_ConnectorEventHandler)
### PendingConnectionCompleted
Triggered by the Nodify.Interactivity.EditorGestures.ConnectorGestures.Connect gesture.
```csharp
public event PendingConnectionEventHandler PendingConnectionCompleted;
```
**Event Type**
[PendingConnectionEventHandler](Nodify_Events_PendingConnectionEventHandler)
### PendingConnectionDrag
Occurs when the mouse is changing position and the [Connector](Nodify_Connector) has mouse capture.
```csharp
public event PendingConnectionEventHandler PendingConnectionDrag;
```
**Event Type**
[PendingConnectionEventHandler](Nodify_Events_PendingConnectionEventHandler)
### PendingConnectionStarted
Triggered by the Nodify.Interactivity.EditorGestures.ConnectorGestures.Connect gesture.
```csharp
public event PendingConnectionEventHandler PendingConnectionStarted;
```
**Event Type**
[PendingConnectionEventHandler](Nodify_Events_PendingConnectionEventHandler)

View File

@@ -0,0 +1,38 @@
# ConnectorPosition Enum
**Namespace:** Nodify
**Assembly:** Nodify
**References:** [StepConnection](Nodify_StepConnection)
```csharp
public enum ConnectorPosition
```
## Fields
### Bottom
```csharp
Bottom = 2;
```
### Left
```csharp
Left = 1;
```
### Right
```csharp
Right = 3;
```
### Top
```csharp
Top = 0;
```

View File

@@ -0,0 +1,96 @@
# CuttingLine Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Shape](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Shapes.Shape) → [CuttingLine](Nodify_CuttingLine)
**References:** [BaseConnection](Nodify_BaseConnection), [NodifyEditor](Nodify_NodifyEditor)
```csharp
public class CuttingLine : Shape
```
## Constructors
### CuttingLine()
```csharp
public CuttingLine();
```
## Properties
### DefiningGeometry
```csharp
protected override Geometry DefiningGeometry { get; set; }
```
**Property Value**
[Geometry](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Geometry)
### EndPoint
Gets or sets the end point.
```csharp
public Point EndPoint { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### StartPoint
Gets or sets the start point.
```csharp
public Point StartPoint { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
## Methods
### GetIsOverElement(UIElement)
```csharp
public static bool GetIsOverElement(UIElement elem);
```
**Parameters**
`elem` [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### OnRender(DrawingContext)
```csharp
protected override void OnRender(DrawingContext drawingContext);
```
**Parameters**
`drawingContext` [DrawingContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.DrawingContext)
### SetIsOverElement(UIElement, Boolean)
```csharp
public static void SetIsOverElement(UIElement elem, bool value);
```
**Parameters**
`elem` [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement)
`value` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

View File

@@ -0,0 +1,126 @@
# DecoratorContainer Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ContentControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ContentControl) → [DecoratorContainer](Nodify_DecoratorContainer)
**Implements:** [INodifyCanvasItem](Nodify_INodifyCanvasItem), [IKeyboardFocusTarget\<DecoratorContainer\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
**References:** [DecoratorsControl](Nodify_DecoratorsControl), [NodifyEditor](Nodify_NodifyEditor)
The container for all the items generated from the [NodifyEditor.Decorators](Nodify_NodifyEditor#decorators) collection.
```csharp
public class DecoratorContainer : ContentControl, INodifyCanvasItem, IKeyboardFocusTarget<DecoratorContainer>
```
## Constructors
### DecoratorContainer(DecoratorsControl)
```csharp
public DecoratorContainer(DecoratorsControl parent);
```
**Parameters**
`parent` [DecoratorsControl](Nodify_DecoratorsControl)
### DecoratorContainer()
```csharp
public DecoratorContainer();
```
## Properties
### ActualSize
Gets the actual size of this [DecoratorContainer](Nodify_DecoratorContainer).
```csharp
public Size ActualSize { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### Bounds
```csharp
public virtual Rect Bounds { get; set; }
```
**Property Value**
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
### Location
Gets or sets the location of this [DecoratorContainer](Nodify_DecoratorContainer) inside the NodifyEditor.DecoratorsHost.
```csharp
public virtual Point Location { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### Owner
```csharp
public DecoratorsControl Owner { get; set; }
```
**Property Value**
[DecoratorsControl](Nodify_DecoratorsControl)
## Methods
### OnLocationChanged()
Raises the [DecoratorContainer.LocationChangedEvent](Nodify_DecoratorContainer#locationchangedevent).
```csharp
protected void OnLocationChanged();
```
### OnRenderSizeChanged(SizeChangedInfo)
```csharp
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo);
```
**Parameters**
`sizeInfo` [SizeChangedInfo](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.SizeChangedInfo)
### OnVisualParentChanged(DependencyObject)
```csharp
protected override void OnVisualParentChanged(DependencyObject oldParent);
```
**Parameters**
`oldParent` [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject)
## Events
### LocationChanged
Occurs when the [DecoratorContainer.Location](Nodify_DecoratorContainer#location) of this [DecoratorContainer](Nodify_DecoratorContainer) is changed.
```csharp
public event RoutedEventHandler LocationChanged;
```
**Event Type**
[RoutedEventHandler](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventHandler)

View File

@@ -0,0 +1,142 @@
# DecoratorsControl Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ItemsControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ItemsControl) → [DecoratorsControl](Nodify_DecoratorsControl)
**Implements:** [IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer)
**References:** [DecoratorContainer](Nodify_DecoratorContainer), [IKeyboardFocusTarget\<DecoratorContainer\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_), [IKeyboardFocusTarget\<UIElement\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_), [KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId), [NodifyEditor](Nodify_NodifyEditor)
An [ItemsControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ItemsControl) that works with [DecoratorContainer](Nodify_DecoratorContainer)s.
```csharp
public class DecoratorsControl : ItemsControl, IKeyboardNavigationLayer
```
## Constructors
### DecoratorsControl()
```csharp
public DecoratorsControl();
```
## Properties
### Editor
Gets the [NodifyEditor](Nodify_NodifyEditor) that owns this [DecoratorsControl](Nodify_DecoratorsControl).
```csharp
public NodifyEditor Editor { get; set; }
```
**Property Value**
[NodifyEditor](Nodify_NodifyEditor)
### Id
```csharp
public virtual KeyboardNavigationLayerId Id { get; set; }
```
**Property Value**
[KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId)
### LastFocusedElement
```csharp
public virtual IKeyboardFocusTarget<UIElement> LastFocusedElement { get; set; }
```
**Property Value**
[IKeyboardFocusTarget\<UIElement\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
## Methods
### FindNextFocusTarget(DecoratorContainer, TraversalRequest)
```csharp
protected virtual DecoratorContainer FindNextFocusTarget(DecoratorContainer currentContainer, TraversalRequest request);
```
**Parameters**
`currentContainer` [DecoratorContainer](Nodify_DecoratorContainer)
`request` [TraversalRequest](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.TraversalRequest)
**Returns**
[DecoratorContainer](Nodify_DecoratorContainer)
### GetContainerForItemOverride()
```csharp
protected override DependencyObject GetContainerForItemOverride();
```
**Returns**
[DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject)
### IsItemItsOwnContainerOverride(Object)
```csharp
protected override bool IsItemItsOwnContainerOverride(object item);
```
**Parameters**
`item` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### OnApplyTemplate()
```csharp
public override void OnApplyTemplate();
```
### OnElementFocused(IKeyboardFocusTarget\<DecoratorContainer\>)
```csharp
protected virtual void OnElementFocused(IKeyboardFocusTarget<DecoratorContainer> target);
```
**Parameters**
`target` [IKeyboardFocusTarget\<DecoratorContainer\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
### TryMoveFocus(TraversalRequest)
```csharp
public virtual bool TryMoveFocus(TraversalRequest request);
```
**Parameters**
`request` [TraversalRequest](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.TraversalRequest)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### TryRestoreFocus()
```csharp
public virtual bool TryRestoreFocus();
```
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

View File

@@ -0,0 +1,116 @@
# EditorCommands Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorCommands](Nodify_EditorCommands)
**References:** [Alignment](Nodify_Alignment), [InputGestureRef](Nodify_Interactivity_InputGestureRef), [ItemContainer](Nodify_ItemContainer), [NodifyEditor](Nodify_NodifyEditor)
Provides common commands for the [NodifyEditor](Nodify_NodifyEditor).
```csharp
public static class EditorCommands
```
## Properties
### Align
Aligns the [NodifyEditor.SelectedContainers](Nodify_NodifyEditor#selectedcontainers) using the specified alignment method.
Parameter is of type [Alignment](Nodify_Alignment) or a string that can be converted to an alignment.
```csharp
public static RoutedUICommand Align { get; set; }
```
**Property Value**
[RoutedUICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.RoutedUICommand)
### BringIntoView
Moves the [NodifyEditor.ViewportLocation](Nodify_NodifyEditor#viewportlocation) to the specified location.
Parameter is a [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point) or a string that can be converted to a point.
```csharp
public static RoutedUICommand BringIntoView { get; set; }
```
**Property Value**
[RoutedUICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.RoutedUICommand)
### FitToScreen
Scales the editor's viewport to fit all the [ItemContainer](Nodify_ItemContainer)s if that's possible.
```csharp
public static RoutedUICommand FitToScreen { get; set; }
```
**Property Value**
[RoutedUICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.RoutedUICommand)
### LockSelection
Locks the position of the [NodifyEditor.SelectedContainers](Nodify_NodifyEditor#selectedcontainers).
```csharp
public static RoutedUICommand LockSelection { get; set; }
```
**Property Value**
[RoutedUICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.RoutedUICommand)
### SelectAll
Select all [ItemContainer](Nodify_ItemContainer)s in the [NodifyEditor](Nodify_NodifyEditor).
```csharp
public static RoutedUICommand SelectAll { get; set; }
```
**Property Value**
[RoutedUICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.RoutedUICommand)
### UnlockSelection
Unlocks the position of the [NodifyEditor.SelectedContainers](Nodify_NodifyEditor#selectedcontainers).
```csharp
public static RoutedUICommand UnlockSelection { get; set; }
```
**Property Value**
[RoutedUICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.RoutedUICommand)
### ZoomIn
Zoom in relative to the editor's viewport center.
```csharp
public static RoutedUICommand ZoomIn { get; set; }
```
**Property Value**
[RoutedUICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.RoutedUICommand)
### ZoomOut
Zoom out relative to the editor's viewport center.
```csharp
public static RoutedUICommand ZoomOut { get; set; }
```
**Property Value**
[RoutedUICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.RoutedUICommand)

View File

@@ -0,0 +1,70 @@
# ConnectionEventArgs Class
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.EventArgs) → [RoutedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventArgs) → [ConnectionEventArgs](Nodify_Events_ConnectionEventArgs)
**References:** [BaseConnection](Nodify_BaseConnection), [ConnectionEventHandler](Nodify_Events_ConnectionEventHandler)
Provides data for [BaseConnection](Nodify_BaseConnection) related routed events.
```csharp
public class ConnectionEventArgs : RoutedEventArgs
```
## Constructors
### ConnectionEventArgs(Object)
Initializes a new instance of the [ConnectionEventArgs](Nodify_Events_ConnectionEventArgs) class using the specified [ConnectionEventArgs.Connection](Nodify_Events_ConnectionEventArgs#connection).
```csharp
public ConnectionEventArgs(object connection);
```
**Parameters**
`connection` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object): The [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) of a related [BaseConnection](Nodify_BaseConnection).
## Properties
### Connection
Gets the [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) of the [BaseConnection](Nodify_BaseConnection) associated with this event.
```csharp
public object Connection { get; set; }
```
**Property Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### SplitLocation
Gets or sets the location where the connection should be split.
```csharp
public Point SplitLocation { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
## Methods
### InvokeEventHandler(Delegate, Object)
```csharp
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget);
```
**Parameters**
`genericHandler` [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate)
`genericTarget` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)

View File

@@ -0,0 +1,22 @@
# ConnectionEventHandler Delegate
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate) → [MulticastDelegate](https://docs.microsoft.com/en-us/dotnet/api/System.MulticastDelegate) → [ConnectionEventHandler](Nodify_Events_ConnectionEventHandler)
**References:** [BaseConnection](Nodify_BaseConnection), [ConnectionEventArgs](Nodify_Events_ConnectionEventArgs)
Represents the method that will handle [BaseConnection](Nodify_BaseConnection) related routed events.
```csharp
public delegate void ConnectionEventHandler(object sender, ConnectionEventArgs e);
```
**Parameters**
`sender` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object): The object where the event handler is attached.
`e` [ConnectionEventArgs](Nodify_Events_ConnectionEventArgs): The event data.

View File

@@ -0,0 +1,70 @@
# ConnectorEventArgs Class
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.EventArgs) → [RoutedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventArgs) → [ConnectorEventArgs](Nodify_Events_ConnectorEventArgs)
**References:** [Connector](Nodify_Connector), [ConnectorEventHandler](Nodify_Events_ConnectorEventHandler)
Provides data for [Connector](Nodify_Connector) related routed events.
```csharp
public class ConnectorEventArgs : RoutedEventArgs
```
## Constructors
### ConnectorEventArgs(Object)
Initializes a new instance of the [ConnectorEventArgs](Nodify_Events_ConnectorEventArgs) class using the specified [ConnectorEventArgs.Connector](Nodify_Events_ConnectorEventArgs#connector).
```csharp
public ConnectorEventArgs(object connector);
```
**Parameters**
`connector` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object): The [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) of a related [Connector](Nodify_Connector).
## Properties
### Anchor
Gets or sets the [Connector.Anchor](Nodify_Connector#anchor) of the [Connector](Nodify_Connector) associated with this event.
```csharp
public Point Anchor { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### Connector
Gets the [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) of the [Connector](Nodify_Connector) associated with this event.
```csharp
public object Connector { get; set; }
```
**Property Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
## Methods
### InvokeEventHandler(Delegate, Object)
```csharp
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget);
```
**Parameters**
`genericHandler` [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate)
`genericTarget` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)

View File

@@ -0,0 +1,22 @@
# ConnectorEventHandler Delegate
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate) → [MulticastDelegate](https://docs.microsoft.com/en-us/dotnet/api/System.MulticastDelegate) → [ConnectorEventHandler](Nodify_Events_ConnectorEventHandler)
**References:** [Connector](Nodify_Connector), [ConnectorEventArgs](Nodify_Events_ConnectorEventArgs)
Represents the method that will handle [Connector](Nodify_Connector) related routed events.
```csharp
public delegate void ConnectorEventHandler(object sender, ConnectorEventArgs e);
```
**Parameters**
`sender` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object): The object where the event handler is attached.
`e` [ConnectorEventArgs](Nodify_Events_ConnectorEventArgs): The event data.

View File

@@ -0,0 +1,72 @@
# ItemsMovedEventArgs Class
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.EventArgs) → [RoutedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventArgs) → [ItemsMovedEventArgs](Nodify_Events_ItemsMovedEventArgs)
**References:** [ItemContainer](Nodify_ItemContainer), [ItemsMovedEventHandler](Nodify_Events_ItemsMovedEventHandler), [NodifyEditor](Nodify_NodifyEditor)
Provides data for the [NodifyEditor.ItemsMovedEvent](Nodify_NodifyEditor#itemsmovedevent) routed event.
```csharp
public class ItemsMovedEventArgs : RoutedEventArgs
```
## Constructors
### ItemsMovedEventArgs(IReadOnlyCollection\<Object\>, Vector)
Initializes a new instance of the [ItemsMovedEventArgs](Nodify_Events_ItemsMovedEventArgs) class with the specified moved items and offset.
```csharp
public ItemsMovedEventArgs(IReadOnlyCollection<Object> items, Vector offset);
```
**Parameters**
`items` [IReadOnlyCollection\<Object\>](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IReadOnlyCollection-1): The collection of items that were moved.
`offset` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector): The vector representing the distance the items were moved.
## Properties
### Items
Gets a collection of [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext)s of the [ItemContainer](Nodify_ItemContainer)s associated with this event.
```csharp
public IReadOnlyCollection<Object> Items { get; set; }
```
**Property Value**
[IReadOnlyCollection\<Object\>](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IReadOnlyCollection-1)
### Offset
Gets or sets the vector representing the distance the items were moved.
```csharp
public Vector Offset { get; set; }
```
**Property Value**
[Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector)
## Methods
### InvokeEventHandler(Delegate, Object)
```csharp
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget);
```
**Parameters**
`genericHandler` [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate)
`genericTarget` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)

View File

@@ -0,0 +1,22 @@
# ItemsMovedEventHandler Delegate
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate) → [MulticastDelegate](https://docs.microsoft.com/en-us/dotnet/api/System.MulticastDelegate) → [ItemsMovedEventHandler](Nodify_Events_ItemsMovedEventHandler)
**References:** [ItemsMovedEventArgs](Nodify_Events_ItemsMovedEventArgs), [NodifyEditor](Nodify_NodifyEditor)
Represents a method signature used to handle the [NodifyEditor.ItemsMovedEvent](Nodify_NodifyEditor#itemsmovedevent) routed event.
```csharp
public delegate void ItemsMovedEventHandler(object sender, ItemsMovedEventArgs e);
```
**Parameters**
`sender` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object): The source of the event.
`e` [ItemsMovedEventArgs](Nodify_Events_ItemsMovedEventArgs): The event data containing information about the moved items and their offset.

View File

@@ -0,0 +1,118 @@
# PendingConnectionEventArgs Class
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.EventArgs) → [RoutedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventArgs) → [PendingConnectionEventArgs](Nodify_Events_PendingConnectionEventArgs)
**References:** [Connector](Nodify_Connector), [PendingConnection](Nodify_PendingConnection), [PendingConnectionEventHandler](Nodify_Events_PendingConnectionEventHandler)
Provides data for [PendingConnection](Nodify_PendingConnection) related routed events.
```csharp
public class PendingConnectionEventArgs : RoutedEventArgs
```
## Constructors
### PendingConnectionEventArgs(Object)
Initializes a new instance of the [PendingConnectionEventArgs](Nodify_Events_PendingConnectionEventArgs) class using the specified [PendingConnectionEventArgs.SourceConnector](Nodify_Events_PendingConnectionEventArgs#sourceconnector).
```csharp
public PendingConnectionEventArgs(object sourceConnector);
```
**Parameters**
`sourceConnector` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object): The [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) of a related [Connector](Nodify_Connector).
## Properties
### Anchor
Gets or sets the [Connector.Anchor](Nodify_Connector#anchor) of the [Connector](Nodify_Connector) that raised this event.
```csharp
public Point Anchor { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### Canceled
Gets or sets a value that indicates whether this [PendingConnection](Nodify_PendingConnection) was cancelled.
```csharp
public bool Canceled { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### OffsetX
Gets or sets the distance from the [PendingConnectionEventArgs.SourceConnector](Nodify_Events_PendingConnectionEventArgs#sourceconnector) in the X axis.
```csharp
public double OffsetX { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### OffsetY
Gets or sets the distance from the [PendingConnectionEventArgs.SourceConnector](Nodify_Events_PendingConnectionEventArgs#sourceconnector) in the Y axis.
```csharp
public double OffsetY { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### SourceConnector
Gets the [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) of the [Connector](Nodify_Connector) that started this [PendingConnection](Nodify_PendingConnection).
```csharp
public object SourceConnector { get; set; }
```
**Property Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### TargetConnector
Gets or sets the [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) of the target [Connector](Nodify_Connector) when the [PendingConnection](Nodify_PendingConnection) is completed.
```csharp
public object TargetConnector { get; set; }
```
**Property Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
## Methods
### InvokeEventHandler(Delegate, Object)
```csharp
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget);
```
**Parameters**
`genericHandler` [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate)
`genericTarget` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)

View File

@@ -0,0 +1,22 @@
# PendingConnectionEventHandler Delegate
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate) → [MulticastDelegate](https://docs.microsoft.com/en-us/dotnet/api/System.MulticastDelegate) → [PendingConnectionEventHandler](Nodify_Events_PendingConnectionEventHandler)
**References:** [Connector](Nodify_Connector), [PendingConnection](Nodify_PendingConnection), [PendingConnectionEventArgs](Nodify_Events_PendingConnectionEventArgs)
Represents the method that will handle [PendingConnection](Nodify_PendingConnection) related routed events.
```csharp
public delegate void PendingConnectionEventHandler(object sender, PendingConnectionEventArgs e);
```
**Parameters**
`sender` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object): The object where the event handler is attached.
`e` [PendingConnectionEventArgs](Nodify_Events_PendingConnectionEventArgs): The event data.

View File

@@ -0,0 +1,20 @@
# PreviewLocationChanged Delegate
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate) → [MulticastDelegate](https://docs.microsoft.com/en-us/dotnet/api/System.MulticastDelegate) → [PreviewLocationChanged](Nodify_Events_PreviewLocationChanged)
**References:** [ItemContainer](Nodify_ItemContainer)
Delegate used to notify when an [ItemContainer](Nodify_ItemContainer) is previewing a new location.
```csharp
public delegate void PreviewLocationChanged(Point newLocation);
```
**Parameters**
`newLocation` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The new location.

View File

@@ -0,0 +1,72 @@
# ResizeEventArgs Class
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.EventArgs) → [RoutedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventArgs) → [ResizeEventArgs](Nodify_Events_ResizeEventArgs)
**References:** [ResizeEventHandler](Nodify_Events_ResizeEventHandler)
Provides data for resize related routed events.
```csharp
public class ResizeEventArgs : RoutedEventArgs
```
## Constructors
### ResizeEventArgs(Size, Size)
Initializes a new instance of the [ResizeEventArgs](Nodify_Events_ResizeEventArgs) class with the previous and the new [Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size).
```csharp
public ResizeEventArgs(Size previousSize, Size newSize);
```
**Parameters**
`previousSize` [Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size): The previous size associated with this event.
`newSize` [Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size): The new size associated with this event.
## Properties
### NewSize
Gets the new size of the object.
```csharp
public Size NewSize { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### PreviousSize
Gets the previous size of the object.
```csharp
public Size PreviousSize { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
## Methods
### InvokeEventHandler(Delegate, Object)
```csharp
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget);
```
**Parameters**
`genericHandler` [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate)
`genericTarget` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)

View File

@@ -0,0 +1,22 @@
# ResizeEventHandler Delegate
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate) → [MulticastDelegate](https://docs.microsoft.com/en-us/dotnet/api/System.MulticastDelegate) → [ResizeEventHandler](Nodify_Events_ResizeEventHandler)
**References:** [GroupingNode](Nodify_GroupingNode), [ResizeEventArgs](Nodify_Events_ResizeEventArgs)
Represents the method that will handle resize related routed events.
```csharp
public delegate void ResizeEventHandler(object sender, ResizeEventArgs e);
```
**Parameters**
`sender` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object): The sender of this event.
`e` [ResizeEventArgs](Nodify_Events_ResizeEventArgs): The event data.

View File

@@ -0,0 +1,72 @@
# ZoomEventArgs Class
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.EventArgs) → [RoutedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventArgs) → [ZoomEventArgs](Nodify_Events_ZoomEventArgs)
**References:** [Minimap](Nodify_Minimap), [ZoomEventHandler](Nodify_Events_ZoomEventHandler)
Provides data for [Minimap.Zoom](Nodify_Minimap#zoom) routed event.
```csharp
public class ZoomEventArgs : RoutedEventArgs
```
## Constructors
### ZoomEventArgs(Double, Point)
Initializes a new instance of the [ZoomEventArgs](Nodify_Events_ZoomEventArgs) class using the specified [ZoomEventArgs.Zoom](Nodify_Events_ZoomEventArgs#zoom) and [ZoomEventArgs.Location](Nodify_Events_ZoomEventArgs#location).
```csharp
public ZoomEventArgs(double zoom, Point location);
```
**Parameters**
`zoom` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
## Properties
### Location
Gets the location where the editor should zoom in.
```csharp
public Point Location { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### Zoom
Gets the zoom amount.
```csharp
public double Zoom { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
## Methods
### InvokeEventHandler(Delegate, Object)
```csharp
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget);
```
**Parameters**
`genericHandler` [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate)
`genericTarget` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)

View File

@@ -0,0 +1,22 @@
# ZoomEventHandler Delegate
**Namespace:** Nodify.Events
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [Delegate](https://docs.microsoft.com/en-us/dotnet/api/System.Delegate) → [MulticastDelegate](https://docs.microsoft.com/en-us/dotnet/api/System.MulticastDelegate) → [ZoomEventHandler](Nodify_Events_ZoomEventHandler)
**References:** [Minimap](Nodify_Minimap), [ZoomEventArgs](Nodify_Events_ZoomEventArgs)
Represents the method that will handle [Minimap.Zoom](Nodify_Minimap#zoom) routed event.
```csharp
public delegate void ZoomEventHandler(object sender, ZoomEventArgs e);
```
**Parameters**
`sender` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object): The object where the event handler is attached.
`e` [ZoomEventArgs](Nodify_Events_ZoomEventArgs): The event data.

View File

@@ -0,0 +1,32 @@
# GroupingMovementMode Enum
**Namespace:** Nodify
**Assembly:** Nodify
**References:** [GroupingNode](Nodify_GroupingNode)
Specifies the possible movement modes of a [GroupingNode](Nodify_GroupingNode).
```csharp
public enum GroupingMovementMode
```
## Fields
### Group
The [GroupingNode](Nodify_GroupingNode) will move its content when moved.
```csharp
Group = 0;
```
### Self
The [GroupingNode](Nodify_GroupingNode) will not move its content when moved.
```csharp
Self = 1;
```

View File

@@ -0,0 +1,248 @@
# GroupingNode Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ContentControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ContentControl) → [HeaderedContentControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.HeaderedContentControl) → [GroupingNode](Nodify_GroupingNode)
**References:** [GroupingMovementMode](Nodify_GroupingMovementMode), [ItemContainer](Nodify_ItemContainer), [NodifyEditor](Nodify_NodifyEditor), [ResizeEventHandler](Nodify_Events_ResizeEventHandler)
Defines a panel with a header that groups [ItemContainer](Nodify_ItemContainer)s inside it and can be resized.
```csharp
public class GroupingNode : HeaderedContentControl
```
## Constructors
### GroupingNode()
Initializes a new instance of the [GroupingNode](Nodify_GroupingNode) class.
```csharp
public GroupingNode();
```
## Fields
### ContentControl
Gets the [ContentControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ContentControl) control of this [GroupingNode](Nodify_GroupingNode).
```csharp
protected FrameworkElement ContentControl;
```
**Field Value**
[FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement)
### ElementContent
```csharp
protected const string ElementContent = "PART_Content";
```
**Field Value**
[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)
### ElementHeader
```csharp
protected const string ElementHeader = "PART_Header";
```
**Field Value**
[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)
### ElementResizeThumb
```csharp
protected const string ElementResizeThumb = "PART_ResizeThumb";
```
**Field Value**
[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)
### GroupMovementBoxed
```csharp
protected static object GroupMovementBoxed;
```
**Field Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### HeaderControl
Gets the [HeaderedContentControl.Header](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.HeaderedContentControl#header) control of this [GroupingNode](Nodify_GroupingNode).
```csharp
protected FrameworkElement HeaderControl;
```
**Field Value**
[FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement)
### ResizeThumb
Gets the [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) used to resize this [GroupingNode](Nodify_GroupingNode).
```csharp
protected FrameworkElement ResizeThumb;
```
**Field Value**
[FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement)
## Properties
### ActualSize
Gets or sets the actual size of this [GroupingNode](Nodify_GroupingNode).
```csharp
public Size ActualSize { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### CanResize
Gets or sets a value that indicates whether this [GroupingNode](Nodify_GroupingNode) can be resized.
```csharp
public bool CanResize { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### Container
Gets the [NodifyEditor](Nodify_NodifyEditor) that owns this [GroupingNode.Container](Nodify_GroupingNode#container).
```csharp
protected ItemContainer Container { get; set; }
```
**Property Value**
[ItemContainer](Nodify_ItemContainer)
### Editor
Gets the [NodifyEditor](Nodify_NodifyEditor) that owns this [GroupingNode](Nodify_GroupingNode).
```csharp
protected NodifyEditor Editor { get; set; }
```
**Property Value**
[NodifyEditor](Nodify_NodifyEditor)
### HeaderBrush
Gets or sets the brush used for the background of the [HeaderedContentControl.Header](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.HeaderedContentControl#header) of this [GroupingNode](Nodify_GroupingNode).
```csharp
public Brush HeaderBrush { get; set; }
```
**Property Value**
[Brush](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Brush)
### MovementMode
Gets or sets the default movement mode which can be temporarily changed by holding the SwitchMovementModeModifierKey while dragging by the header.
```csharp
public GroupingMovementMode MovementMode { get; set; }
```
**Property Value**
[GroupingMovementMode](Nodify_GroupingMovementMode)
### ResizeCompletedCommand
Invoked when the [GroupingNode.ResizeCompleted](Nodify_GroupingNode#resizecompleted) event is not handled.
Parameter is the [ItemContainer.ActualSize](Nodify_ItemContainer#actualsize) of the container.
```csharp
public ICommand ResizeCompletedCommand { get; set; }
```
**Property Value**
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
### ResizeStartedCommand
Invoked when the [GroupingNode.ResizeStarted](Nodify_GroupingNode#resizestarted) event is not handled.
Parameter is the [ItemContainer.ActualSize](Nodify_ItemContainer#actualsize) of the container.
```csharp
public ICommand ResizeStartedCommand { get; set; }
```
**Property Value**
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
## Methods
### OnApplyTemplate()
```csharp
public override void OnApplyTemplate();
```
### ToggleContentSelection()
Toggles the selection of nodes inside this group.
If any contained nodes are selected, all will be unselected.
If none are selected, all will be selected.
```csharp
public void ToggleContentSelection();
```
## Events
### ResizeCompleted
Occurs when the node finished resizing.
```csharp
public event ResizeEventHandler ResizeCompleted;
```
**Event Type**
[ResizeEventHandler](Nodify_Events_ResizeEventHandler)
### ResizeStarted
Occurs when the node started resizing.
```csharp
public event ResizeEventHandler ResizeStarted;
```
**Event Type**
[ResizeEventHandler](Nodify_Events_ResizeEventHandler)

View File

@@ -0,0 +1,32 @@
# HotKeyControl Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [HotKeyControl](Nodify_HotKeyControl)
```csharp
public class HotKeyControl : Control
```
## Constructors
### HotKeyControl()
```csharp
public HotKeyControl();
```
## Properties
### Number
```csharp
public int Number { get; set; }
```
**Property Value**
[Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)

View File

@@ -0,0 +1,40 @@
# HotKeysDisplayMode Enum
**Namespace:** Nodify
**Assembly:** Nodify
**References:** [PendingConnection](Nodify_PendingConnection)
Specifies how hotkeys are displayed for a pending connection.
```csharp
public enum HotKeysDisplayMode
```
## Fields
### All
Display hotkeys for both mouse and keyboard.
```csharp
All = 2;
```
### Keyboard
Display hotkeys for keyboard only.
```csharp
Keyboard = 1;
```
### None
No hotkeys will be displayed for the pending connection.
```csharp
None = 0;
```

View File

@@ -0,0 +1,54 @@
# INodifyCanvasItem Interface
**Namespace:** Nodify
**Assembly:** Nodify
**Derived:** [ItemContainer](Nodify_ItemContainer), [DecoratorContainer](Nodify_DecoratorContainer)
**References:** [NodifyCanvas](Nodify_NodifyCanvas)
Interface for items inside a [NodifyCanvas](Nodify_NodifyCanvas).
```csharp
public interface INodifyCanvasItem
```
## Properties
### DesiredSize
The desired size of the item.
```csharp
public virtual Size DesiredSize { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### Location
The location of the item.
```csharp
public virtual Point Location { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
## Methods
### Arrange(Rect)
```csharp
public virtual void Arrange(Rect rect);
```
**Parameters**
`rect` [Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)

View File

@@ -0,0 +1,24 @@
# AllGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture) → [MultiGesture](Nodify_Interactivity_MultiGesture) → [AllGestures](Nodify_Interactivity_AllGestures)
```csharp
public sealed class AllGestures : MultiGesture
```
## Constructors
### AllGestures(InputGesture[])
```csharp
public AllGestures(InputGesture[] gestures);
```
**Parameters**
`gestures` [InputGesture[]](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture[])

View File

@@ -0,0 +1,24 @@
# AnyGesture Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture) → [MultiGesture](Nodify_Interactivity_MultiGesture) → [AnyGesture](Nodify_Interactivity_AnyGesture)
```csharp
public sealed class AnyGesture : MultiGesture
```
## Constructors
### AnyGesture(InputGesture[])
```csharp
public AnyGesture(InputGesture[] gestures);
```
**Parameters**
`gestures` [InputGesture[]](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture[])

View File

@@ -0,0 +1,12 @@
# ConnectionState Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [ConnectionState](Nodify_Interactivity_ConnectionState)
```csharp
public static class ConnectionState
```

View File

@@ -0,0 +1,48 @@
# ConnectionState.Disconnect Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<BaseConnection\>](Nodify_Interactivity_InputElementState_TElement_) → [ConnectionState.Disconnect](Nodify_Interactivity_ConnectionState_Disconnect)
**References:** [BaseConnection](Nodify_BaseConnection)
```csharp
public class Disconnect : InputElementState<BaseConnection>
```
## Constructors
### ConnectionState.Disconnect(BaseConnection)
```csharp
public Disconnect(BaseConnection connection);
```
**Parameters**
`connection` [BaseConnection](Nodify_BaseConnection)
## Methods
### OnMouseDown(MouseButtonEventArgs)
```csharp
protected override void OnMouseDown(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseUp(MouseButtonEventArgs)
```csharp
protected override void OnMouseUp(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)

View File

@@ -0,0 +1,38 @@
# ConnectionState.Split Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<BaseConnection\>](Nodify_Interactivity_InputElementState_TElement_) → [ConnectionState.Split](Nodify_Interactivity_ConnectionState_Split)
**References:** [BaseConnection](Nodify_BaseConnection)
```csharp
public class Split : InputElementState<BaseConnection>
```
## Constructors
### ConnectionState.Split(BaseConnection)
```csharp
public Split(BaseConnection connection);
```
**Parameters**
`connection` [BaseConnection](Nodify_BaseConnection)
## Methods
### OnMouseDown(MouseButtonEventArgs)
```csharp
protected override void OnMouseDown(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)

View File

@@ -0,0 +1,26 @@
# ConnectorState Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [ConnectorState](Nodify_Interactivity_ConnectorState)
```csharp
public static class ConnectorState
```
## Properties
### EnableToggledConnectingMode
Determines whether toggled connecting mode is enabled, allowing the user to start and end the interaction in two steps with the same input gesture.
```csharp
public static bool EnableToggledConnectingMode { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

View File

@@ -0,0 +1,100 @@
# ConnectorState.Connecting Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<Connector\>](Nodify_Interactivity_InputElementState_TElement_) → [DragState\<Connector\>](Nodify_Interactivity_DragState_TElement_) → [ConnectorState.Connecting](Nodify_Interactivity_ConnectorState_Connecting)
**References:** [Connector](Nodify_Connector)
```csharp
public class Connecting : DragState<Connector>
```
## Constructors
### ConnectorState.Connecting(Connector)
```csharp
public Connecting(Connector connector);
```
**Parameters**
`connector` [Connector](Nodify_Connector)
## Properties
### CanCancel
```csharp
protected override bool CanCancel { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HasContextMenu
```csharp
protected override bool HasContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsToggle
```csharp
protected override bool IsToggle { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Methods
### OnBegin(InputEventArgs)
```csharp
protected override void OnBegin(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnCancel(InputEventArgs)
```csharp
protected override void OnCancel(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnEnd(InputEventArgs)
```csharp
protected override void OnEnd(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected override void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)

View File

@@ -0,0 +1,38 @@
# ConnectorState.Default Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<Connector\>](Nodify_Interactivity_InputElementState_TElement_) → [ConnectorState.Default](Nodify_Interactivity_ConnectorState_Default)
**References:** [Connector](Nodify_Connector)
```csharp
public class Default : InputElementState<Connector>
```
## Constructors
### ConnectorState.Default(Connector)
```csharp
public Default(Connector connector);
```
**Parameters**
`connector` [Connector](Nodify_Connector)
## Methods
### OnMouseDown(MouseButtonEventArgs)
```csharp
protected override void OnMouseDown(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)

View File

@@ -0,0 +1,58 @@
# ConnectorState.Disconnect Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<Connector\>](Nodify_Interactivity_InputElementState_TElement_) → [ConnectorState.Disconnect](Nodify_Interactivity_ConnectorState_Disconnect)
**References:** [Connector](Nodify_Connector)
```csharp
public class Disconnect : InputElementState<Connector>
```
## Constructors
### ConnectorState.Disconnect(Connector)
```csharp
public Disconnect(Connector connector);
```
**Parameters**
`connector` [Connector](Nodify_Connector)
## Methods
### OnKeyDown(KeyEventArgs)
```csharp
protected override void OnKeyDown(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnMouseDown(MouseButtonEventArgs)
```csharp
protected override void OnMouseDown(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseUp(MouseButtonEventArgs)
```csharp
protected override void OnMouseUp(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)

View File

@@ -0,0 +1,26 @@
# ContainerState Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [ContainerState](Nodify_Interactivity_ContainerState)
```csharp
public static class ContainerState
```
## Properties
### EnableToggledDraggingMode
Determines whether toggled dragging mode is enabled, allowing the user to start and end the interaction in two steps with the same input gesture.
```csharp
public static bool EnableToggledDraggingMode { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

View File

@@ -0,0 +1,26 @@
# ContainerState.Default Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementStateStack\<ItemContainer\>](Nodify_Interactivity_InputElementStateStack_TElement_) → [ContainerState.Default](Nodify_Interactivity_ContainerState_Default)
**References:** [ItemContainer](Nodify_ItemContainer)
```csharp
public sealed class Default : InputElementStateStack<ItemContainer>
```
## Constructors
### ContainerState.Default(ItemContainer)
```csharp
public Default(ItemContainer container);
```
**Parameters**
`container` [ItemContainer](Nodify_ItemContainer)

View File

@@ -0,0 +1,224 @@
# DragState\<TElement\> Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<TElement\>](Nodify_Interactivity_InputElementState_TElement_) → [DragState\<TElement\>](Nodify_Interactivity_DragState_TElement_)
```csharp
public abstract class DragState<TElement> : InputElementState<TElement>
```
## Constructors
### DragState\<TElement\>(TElement, InputGesture)
```csharp
public DragState<TElement>(TElement element, InputGesture beginGesture);
```
**Parameters**
`element` [TElement](Nodify_Interactivity_DragState_TElement__TElement)
`beginGesture` [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture)
### DragState\<TElement\>(TElement, InputGesture, InputGesture)
```csharp
public DragState<TElement>(TElement element, InputGesture beginGesture, InputGesture cancelGesture);
```
**Parameters**
`element` [TElement](Nodify_Interactivity_DragState_TElement__TElement)
`beginGesture` [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture)
`cancelGesture` [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture)
## Properties
### BeginGesture
```csharp
protected InputGesture BeginGesture { get; set; }
```
**Property Value**
[InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture)
### CanBegin
```csharp
protected virtual bool CanBegin { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### CanCancel
```csharp
protected virtual bool CanCancel { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### CancelGesture
```csharp
protected InputGesture CancelGesture { get; set; }
```
**Property Value**
[InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture)
### HasContextMenu
```csharp
protected virtual bool HasContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsToggle
```csharp
protected virtual bool IsToggle { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### PositionElement
```csharp
protected IInputElement PositionElement { get; set; }
```
**Property Value**
[IInputElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.IInputElement)
## Methods
### CanCaptureInput(InputEventArgs)
```csharp
protected virtual bool CanCaptureInput(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### CaptureInput(InputEventArgs)
```csharp
protected virtual void CaptureInput(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### GetInitialPosition(InputEventArgs)
```csharp
protected virtual Point GetInitialPosition(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
**Returns**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### IsInputCaptureLost(InputEventArgs)
```csharp
protected virtual bool IsInputCaptureLost(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsInputEventPressed(InputEventArgs)
```csharp
protected virtual bool IsInputEventPressed(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsInputEventReleased(InputEventArgs)
```csharp
protected virtual bool IsInputEventReleased(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### OnBegin(InputEventArgs)
```csharp
protected virtual void OnBegin(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnCancel(InputEventArgs)
```csharp
protected virtual void OnCancel(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnEnd(InputEventArgs)
```csharp
protected virtual void OnEnd(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)

View File

@@ -0,0 +1,132 @@
# EditorGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorGestures](Nodify_Interactivity_EditorGestures)
**References:** [EditorGestures.ConnectionGestures](Nodify_Interactivity_EditorGestures_ConnectionGestures), [EditorGestures.ConnectorGestures](Nodify_Interactivity_EditorGestures_ConnectorGestures), [EditorGestures.GroupingNodeGestures](Nodify_Interactivity_EditorGestures_GroupingNodeGestures), [EditorGestures.ItemContainerGestures](Nodify_Interactivity_EditorGestures_ItemContainerGestures), [EditorGestures.MinimapGestures](Nodify_Interactivity_EditorGestures_MinimapGestures), [NodifyEditor](Nodify_NodifyEditor), [EditorGestures.NodifyEditorGestures](Nodify_Interactivity_EditorGestures_NodifyEditorGestures)
Gestures used by built-in controls inside the [NodifyEditor](Nodify_NodifyEditor).
```csharp
public class EditorGestures
```
## Constructors
### EditorGestures()
```csharp
public EditorGestures();
```
## Fields
### Mappings
```csharp
public static EditorGestures Mappings;
```
**Field Value**
[EditorGestures](Nodify_Interactivity_EditorGestures)
## Properties
### Connection
Gestures for the connection.
```csharp
public ConnectionGestures Connection { get; set; }
```
**Property Value**
[EditorGestures.ConnectionGestures](Nodify_Interactivity_EditorGestures_ConnectionGestures)
### Connector
Gestures for the connector.
```csharp
public ConnectorGestures Connector { get; set; }
```
**Property Value**
[EditorGestures.ConnectorGestures](Nodify_Interactivity_EditorGestures_ConnectorGestures)
### Editor
Gestures for the editor.
```csharp
public NodifyEditorGestures Editor { get; set; }
```
**Property Value**
[EditorGestures.NodifyEditorGestures](Nodify_Interactivity_EditorGestures_NodifyEditorGestures)
### GroupingNode
Gestures for the grouping node.
```csharp
public GroupingNodeGestures GroupingNode { get; set; }
```
**Property Value**
[EditorGestures.GroupingNodeGestures](Nodify_Interactivity_EditorGestures_GroupingNodeGestures)
### ItemContainer
Gestures for the item container.
```csharp
public ItemContainerGestures ItemContainer { get; set; }
```
**Property Value**
[EditorGestures.ItemContainerGestures](Nodify_Interactivity_EditorGestures_ItemContainerGestures)
### Minimap
Gestures for the minimap.
```csharp
public MinimapGestures Minimap { get; set; }
```
**Property Value**
[EditorGestures.MinimapGestures](Nodify_Interactivity_EditorGestures_MinimapGestures)
## Methods
### Apply(EditorGestures)
Copies from the specified gestures.
```csharp
public void Apply(EditorGestures gestures);
```
**Parameters**
`gestures` [EditorGestures](Nodify_Interactivity_EditorGestures): The gestures to copy.
### Unbind()
Unbinds all the gestures used by the editor and its controls.
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,72 @@
# EditorGestures.ConnectionGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorGestures.ConnectionGestures](Nodify_Interactivity_EditorGestures_ConnectionGestures)
**References:** [EditorGestures](Nodify_Interactivity_EditorGestures), [InputGestureRef](Nodify_Interactivity_InputGestureRef), [EditorGestures.SelectionGestures](Nodify_Interactivity_EditorGestures_SelectionGestures)
```csharp
public class ConnectionGestures
```
## Constructors
### EditorGestures.ConnectionGestures()
```csharp
public ConnectionGestures();
```
## Properties
### Disconnect
```csharp
public InputGestureRef Disconnect { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Selection
```csharp
public SelectionGestures Selection { get; set; }
```
**Property Value**
[EditorGestures.SelectionGestures](Nodify_Interactivity_EditorGestures_SelectionGestures)
### Split
```csharp
public InputGestureRef Split { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
## Methods
### Apply(EditorGestures.ConnectionGestures)
```csharp
public void Apply(EditorGestures.ConnectionGestures gestures);
```
**Parameters**
`gestures` [EditorGestures.ConnectionGestures](Nodify_Interactivity_EditorGestures_ConnectionGestures)
### Unbind()
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,72 @@
# EditorGestures.ConnectorGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorGestures.ConnectorGestures](Nodify_Interactivity_EditorGestures_ConnectorGestures)
**References:** [EditorGestures](Nodify_Interactivity_EditorGestures), [InputGestureRef](Nodify_Interactivity_InputGestureRef)
```csharp
public class ConnectorGestures
```
## Constructors
### EditorGestures.ConnectorGestures()
```csharp
public ConnectorGestures();
```
## Properties
### CancelAction
```csharp
public InputGestureRef CancelAction { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Connect
```csharp
public InputGestureRef Connect { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Disconnect
```csharp
public InputGestureRef Disconnect { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
## Methods
### Apply(EditorGestures.ConnectorGestures)
```csharp
public void Apply(EditorGestures.ConnectorGestures gestures);
```
**Parameters**
`gestures` [EditorGestures.ConnectorGestures](Nodify_Interactivity_EditorGestures_ConnectorGestures)
### Unbind()
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,100 @@
# EditorGestures.DirectionalNavigationGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorGestures.DirectionalNavigationGestures](Nodify_Interactivity_EditorGestures_DirectionalNavigationGestures)
**References:** [InputGestureRef](Nodify_Interactivity_InputGestureRef), [NodifyEditorGestures.KeyboardGestures](Nodify_Interactivity_NodifyEditorGestures_KeyboardGestures), [EditorGestures.MinimapGestures](Nodify_Interactivity_EditorGestures_MinimapGestures)
```csharp
public class DirectionalNavigationGestures
```
## Constructors
### EditorGestures.DirectionalNavigationGestures(ModifierKeys)
```csharp
public DirectionalNavigationGestures(ModifierKeys modifierKeys = 0);
```
**Parameters**
`modifierKeys` [ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys)
### EditorGestures.DirectionalNavigationGestures(Key, ModifierKeys, Boolean)
```csharp
public DirectionalNavigationGestures(Key triggerKey, ModifierKeys modifierKeys = 0, bool repeated = false);
```
**Parameters**
`triggerKey` [Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key)
`modifierKeys` [ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys)
`repeated` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Properties
### Down
```csharp
public InputGestureRef Down { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Left
```csharp
public InputGestureRef Left { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Right
```csharp
public InputGestureRef Right { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Up
```csharp
public InputGestureRef Up { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
## Methods
### Apply(EditorGestures.DirectionalNavigationGestures)
```csharp
public void Apply(EditorGestures.DirectionalNavigationGestures gestures);
```
**Parameters**
`gestures` [EditorGestures.DirectionalNavigationGestures](Nodify_Interactivity_EditorGestures_DirectionalNavigationGestures)
### Unbind()
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,62 @@
# EditorGestures.GroupingNodeGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorGestures.GroupingNodeGestures](Nodify_Interactivity_EditorGestures_GroupingNodeGestures)
**References:** [EditorGestures](Nodify_Interactivity_EditorGestures), [InputGestureRef](Nodify_Interactivity_InputGestureRef)
```csharp
public class GroupingNodeGestures
```
## Constructors
### EditorGestures.GroupingNodeGestures()
```csharp
public GroupingNodeGestures();
```
## Properties
### SwitchMovementMode
```csharp
public ModifierKeys SwitchMovementMode { get; set; }
```
**Property Value**
[ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys)
### ToggleContentSelection
```csharp
public InputGestureRef ToggleContentSelection { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
## Methods
### Apply(EditorGestures.GroupingNodeGestures)
```csharp
public void Apply(EditorGestures.GroupingNodeGestures gestures);
```
**Parameters**
`gestures` [EditorGestures.GroupingNodeGestures](Nodify_Interactivity_EditorGestures_GroupingNodeGestures)
### Unbind()
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,72 @@
# EditorGestures.ItemContainerGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorGestures.ItemContainerGestures](Nodify_Interactivity_EditorGestures_ItemContainerGestures)
**References:** [EditorGestures](Nodify_Interactivity_EditorGestures), [InputGestureRef](Nodify_Interactivity_InputGestureRef), [EditorGestures.SelectionGestures](Nodify_Interactivity_EditorGestures_SelectionGestures)
```csharp
public class ItemContainerGestures
```
## Constructors
### EditorGestures.ItemContainerGestures()
```csharp
public ItemContainerGestures();
```
## Properties
### CancelAction
```csharp
public InputGestureRef CancelAction { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Drag
```csharp
public InputGestureRef Drag { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Selection
```csharp
public SelectionGestures Selection { get; set; }
```
**Property Value**
[EditorGestures.SelectionGestures](Nodify_Interactivity_EditorGestures_SelectionGestures)
## Methods
### Apply(EditorGestures.ItemContainerGestures)
```csharp
public void Apply(EditorGestures.ItemContainerGestures gestures);
```
**Parameters**
`gestures` [EditorGestures.ItemContainerGestures](Nodify_Interactivity_EditorGestures_ItemContainerGestures)
### Unbind()
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,112 @@
# EditorGestures.MinimapGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorGestures.MinimapGestures](Nodify_Interactivity_EditorGestures_MinimapGestures)
**References:** [EditorGestures.DirectionalNavigationGestures](Nodify_Interactivity_EditorGestures_DirectionalNavigationGestures), [EditorGestures](Nodify_Interactivity_EditorGestures), [InputGestureRef](Nodify_Interactivity_InputGestureRef)
```csharp
public class MinimapGestures
```
## Constructors
### EditorGestures.MinimapGestures()
```csharp
public MinimapGestures();
```
## Properties
### CancelAction
```csharp
public InputGestureRef CancelAction { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### DragViewport
```csharp
public InputGestureRef DragViewport { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Pan
```csharp
public DirectionalNavigationGestures Pan { get; set; }
```
**Property Value**
[EditorGestures.DirectionalNavigationGestures](Nodify_Interactivity_EditorGestures_DirectionalNavigationGestures)
### ResetViewport
```csharp
public InputGestureRef ResetViewport { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### ZoomIn
```csharp
public InputGestureRef ZoomIn { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### ZoomModifierKey
```csharp
public ModifierKeys ZoomModifierKey { get; set; }
```
**Property Value**
[ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys)
### ZoomOut
```csharp
public InputGestureRef ZoomOut { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
## Methods
### Apply(EditorGestures.MinimapGestures)
```csharp
public void Apply(EditorGestures.MinimapGestures gestures);
```
**Parameters**
`gestures` [EditorGestures.MinimapGestures](Nodify_Interactivity_EditorGestures_MinimapGestures)
### Unbind()
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,192 @@
# EditorGestures.NodifyEditorGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorGestures.NodifyEditorGestures](Nodify_Interactivity_EditorGestures_NodifyEditorGestures)
**References:** [EditorGestures](Nodify_Interactivity_EditorGestures), [InputGestureRef](Nodify_Interactivity_InputGestureRef), [NodifyEditorGestures.KeyboardGestures](Nodify_Interactivity_NodifyEditorGestures_KeyboardGestures), [EditorGestures.SelectionGestures](Nodify_Interactivity_EditorGestures_SelectionGestures)
```csharp
public class NodifyEditorGestures
```
## Constructors
### EditorGestures.NodifyEditorGestures()
```csharp
public NodifyEditorGestures();
```
## Properties
### CancelAction
```csharp
public InputGestureRef CancelAction { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Cutting
```csharp
public InputGestureRef Cutting { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### FitToScreen
```csharp
public InputGestureRef FitToScreen { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Keyboard
```csharp
public KeyboardGestures Keyboard { get; set; }
```
**Property Value**
[NodifyEditorGestures.KeyboardGestures](Nodify_Interactivity_NodifyEditorGestures_KeyboardGestures)
### Pan
```csharp
public InputGestureRef Pan { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### PanHorizontalModifierKey
```csharp
public ModifierKeys PanHorizontalModifierKey { get; set; }
```
**Property Value**
[ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys)
### PanVerticalModifierKey
```csharp
public ModifierKeys PanVerticalModifierKey { get; set; }
```
**Property Value**
[ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys)
### PanWithMouseWheel
```csharp
public bool PanWithMouseWheel { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### PushItems
```csharp
public InputGestureRef PushItems { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### ResetViewport
```csharp
public InputGestureRef ResetViewport { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### SelectAll
```csharp
public InputGestureRef SelectAll { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Selection
```csharp
public SelectionGestures Selection { get; set; }
```
**Property Value**
[EditorGestures.SelectionGestures](Nodify_Interactivity_EditorGestures_SelectionGestures)
### ZoomIn
```csharp
public InputGestureRef ZoomIn { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### ZoomModifierKey
```csharp
public ModifierKeys ZoomModifierKey { get; set; }
```
**Property Value**
[ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys)
### ZoomOut
```csharp
public InputGestureRef ZoomOut { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
## Methods
### Apply(EditorGestures.NodifyEditorGestures)
```csharp
public void Apply(EditorGestures.NodifyEditorGestures gestures);
```
**Parameters**
`gestures` [EditorGestures.NodifyEditorGestures](Nodify_Interactivity_EditorGestures_NodifyEditorGestures)
### Unbind()
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,146 @@
# EditorGestures.SelectionGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorGestures.SelectionGestures](Nodify_Interactivity_EditorGestures_SelectionGestures)
**References:** [EditorGestures.ConnectionGestures](Nodify_Interactivity_EditorGestures_ConnectionGestures), [InputGestureRef](Nodify_Interactivity_InputGestureRef), [EditorGestures.ItemContainerGestures](Nodify_Interactivity_EditorGestures_ItemContainerGestures), [EditorGestures.NodifyEditorGestures](Nodify_Interactivity_EditorGestures_NodifyEditorGestures)
```csharp
public class SelectionGestures
```
## Constructors
### EditorGestures.SelectionGestures(MouseAction, Boolean)
```csharp
public SelectionGestures(MouseAction mouseAction, bool ignoreModifierKeysOnRelease);
```
**Parameters**
`mouseAction` [MouseAction](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseAction)
`ignoreModifierKeysOnRelease` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### EditorGestures.SelectionGestures(MouseAction)
```csharp
public SelectionGestures(MouseAction mouseAction);
```
**Parameters**
`mouseAction` [MouseAction](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseAction)
### EditorGestures.SelectionGestures(Boolean)
```csharp
public SelectionGestures(bool ignoreModifierKeysOnRelease);
```
**Parameters**
`ignoreModifierKeysOnRelease` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### EditorGestures.SelectionGestures()
```csharp
public SelectionGestures();
```
## Fields
### None
```csharp
public static SelectionGestures None;
```
**Field Value**
[EditorGestures.SelectionGestures](Nodify_Interactivity_EditorGestures_SelectionGestures)
## Properties
### Append
```csharp
public InputGestureRef Append { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Cancel
```csharp
public InputGestureRef Cancel { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Invert
```csharp
public InputGestureRef Invert { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Remove
```csharp
public InputGestureRef Remove { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Replace
```csharp
public InputGestureRef Replace { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Select
```csharp
public InputGestureRef Select { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
## Methods
### Apply(EditorGestures.SelectionGestures)
```csharp
public void Apply(EditorGestures.SelectionGestures gestures);
```
**Parameters**
`gestures` [EditorGestures.SelectionGestures](Nodify_Interactivity_EditorGestures_SelectionGestures)
### Unbind()
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,146 @@
# EditorState Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [EditorState](Nodify_Interactivity_EditorState)
```csharp
public static class EditorState
```
## Properties
### AllowPanningWhileCutting
Gets or sets a value indicating whether panning is allowed while cutting connections in the editor.
```csharp
public static bool AllowPanningWhileCutting { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### AllowPanningWhilePushingItems
Gets or sets a value indicating whether panning is allowed while pushing items in the editor.
```csharp
public static bool AllowPanningWhilePushingItems { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### AllowPanningWhileSelecting
Gets or sets a value indicating whether panning is allowed while selecting items in the editor.
```csharp
public static bool AllowPanningWhileSelecting { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### AllowZoomingWhileCutting
Gets or sets a value indicating whether zooming is allowed while cutting connections in the editor.
```csharp
public static bool AllowZoomingWhileCutting { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### AllowZoomingWhilePanning
Gets or sets a value indicating whether zooming is allowed while panning the editor viewport.
```csharp
public static bool AllowZoomingWhilePanning { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### AllowZoomingWhilePushingItems
Gets or sets a value indicating whether zooming is allowed while pushing items in the editor.
```csharp
public static bool AllowZoomingWhilePushingItems { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### AllowZoomingWhileSelecting
Gets or sets a value indicating whether zooming is allowed while selecting items in the editor.
```csharp
public static bool AllowZoomingWhileSelecting { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### EnableToggledCuttingMode
Determines whether toggled cutting mode is enabled, allowing the user to start and end the interaction in two steps with the same input gesture.
```csharp
public static bool EnableToggledCuttingMode { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### EnableToggledPanningMode
Determines whether toggled panning mode is enabled, allowing the user to start and end the interaction in two steps with the same input gesture.
```csharp
public static bool EnableToggledPanningMode { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### EnableToggledPushingItemsMode
Determines whether toggled pushing items mode is enabled, allowing the user to start and end the interaction in two steps with the same input gesture.
```csharp
public static bool EnableToggledPushingItemsMode { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### EnableToggledSelectingMode
Determines whether toggled selecting mode is enabled, allowing the user to start and end the interaction in two steps with the same input gesture.
```csharp
public static bool EnableToggledSelectingMode { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

View File

@@ -0,0 +1,110 @@
# EditorState.Cutting Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<NodifyEditor\>](Nodify_Interactivity_InputElementState_TElement_) → [DragState\<NodifyEditor\>](Nodify_Interactivity_DragState_TElement_) → [EditorState.Cutting](Nodify_Interactivity_EditorState_Cutting)
**References:** [NodifyEditor](Nodify_NodifyEditor)
```csharp
public class Cutting : DragState<NodifyEditor>
```
## Constructors
### EditorState.Cutting(NodifyEditor)
```csharp
public Cutting(NodifyEditor editor);
```
**Parameters**
`editor` [NodifyEditor](Nodify_NodifyEditor)
## Properties
### CanBegin
```csharp
protected override bool CanBegin { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### CanCancel
```csharp
protected override bool CanCancel { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HasContextMenu
```csharp
protected override bool HasContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsToggle
```csharp
protected override bool IsToggle { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Methods
### OnBegin(InputEventArgs)
```csharp
protected override void OnBegin(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnCancel(InputEventArgs)
```csharp
protected override void OnCancel(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnEnd(InputEventArgs)
```csharp
protected override void OnEnd(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected override void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)

View File

@@ -0,0 +1,48 @@
# EditorState.KeyboardNavigation Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<NodifyEditor\>](Nodify_Interactivity_InputElementState_TElement_) → [EditorState.KeyboardNavigation](Nodify_Interactivity_EditorState_KeyboardNavigation)
**References:** [NodifyEditor](Nodify_NodifyEditor)
```csharp
public class KeyboardNavigation : InputElementState<NodifyEditor>
```
## Constructors
### EditorState.KeyboardNavigation(NodifyEditor)
```csharp
public KeyboardNavigation(NodifyEditor element);
```
**Parameters**
`element` [NodifyEditor](Nodify_NodifyEditor)
## Methods
### OnKeyDown(KeyEventArgs)
```csharp
protected override void OnKeyDown(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnKeyUp(KeyEventArgs)
```csharp
protected override void OnKeyUp(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)

View File

@@ -0,0 +1,110 @@
# EditorState.Panning Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<NodifyEditor\>](Nodify_Interactivity_InputElementState_TElement_) → [DragState\<NodifyEditor\>](Nodify_Interactivity_DragState_TElement_) → [EditorState.Panning](Nodify_Interactivity_EditorState_Panning)
**References:** [NodifyEditor](Nodify_NodifyEditor)
```csharp
public class Panning : DragState<NodifyEditor>
```
## Constructors
### EditorState.Panning(NodifyEditor)
```csharp
public Panning(NodifyEditor editor);
```
**Parameters**
`editor` [NodifyEditor](Nodify_NodifyEditor)
## Properties
### CanBegin
```csharp
protected override bool CanBegin { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### CanCancel
```csharp
protected override bool CanCancel { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HasContextMenu
```csharp
protected override bool HasContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsToggle
```csharp
protected override bool IsToggle { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Methods
### OnBegin(InputEventArgs)
```csharp
protected override void OnBegin(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnCancel(InputEventArgs)
```csharp
protected override void OnCancel(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnEnd(InputEventArgs)
```csharp
protected override void OnEnd(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected override void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)

View File

@@ -0,0 +1,38 @@
# EditorState.PanningWithMouseWheel Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<NodifyEditor\>](Nodify_Interactivity_InputElementState_TElement_) → [EditorState.PanningWithMouseWheel](Nodify_Interactivity_EditorState_PanningWithMouseWheel)
**References:** [NodifyEditor](Nodify_NodifyEditor)
```csharp
public class PanningWithMouseWheel : InputElementState<NodifyEditor>
```
## Constructors
### EditorState.PanningWithMouseWheel(NodifyEditor)
```csharp
public PanningWithMouseWheel(NodifyEditor editor);
```
**Parameters**
`editor` [NodifyEditor](Nodify_NodifyEditor)
## Methods
### OnMouseWheel(MouseWheelEventArgs)
```csharp
protected override void OnMouseWheel(MouseWheelEventArgs e);
```
**Parameters**
`e` [MouseWheelEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseWheelEventArgs)

View File

@@ -0,0 +1,110 @@
# EditorState.PushingItems Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<NodifyEditor\>](Nodify_Interactivity_InputElementState_TElement_) → [DragState\<NodifyEditor\>](Nodify_Interactivity_DragState_TElement_) → [EditorState.PushingItems](Nodify_Interactivity_EditorState_PushingItems)
**References:** [NodifyEditor](Nodify_NodifyEditor)
```csharp
public class PushingItems : DragState<NodifyEditor>
```
## Constructors
### EditorState.PushingItems(NodifyEditor)
```csharp
public PushingItems(NodifyEditor editor);
```
**Parameters**
`editor` [NodifyEditor](Nodify_NodifyEditor)
## Properties
### CanBegin
```csharp
protected override bool CanBegin { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### CanCancel
```csharp
protected override bool CanCancel { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HasContextMenu
```csharp
protected override bool HasContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsToggle
```csharp
protected override bool IsToggle { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Methods
### OnBegin(InputEventArgs)
```csharp
protected override void OnBegin(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnCancel(InputEventArgs)
```csharp
protected override void OnCancel(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnEnd(InputEventArgs)
```csharp
protected override void OnEnd(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected override void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)

View File

@@ -0,0 +1,110 @@
# EditorState.Selecting Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<NodifyEditor\>](Nodify_Interactivity_InputElementState_TElement_) → [DragState\<NodifyEditor\>](Nodify_Interactivity_DragState_TElement_) → [EditorState.Selecting](Nodify_Interactivity_EditorState_Selecting)
**References:** [NodifyEditor](Nodify_NodifyEditor)
```csharp
public class Selecting : DragState<NodifyEditor>
```
## Constructors
### EditorState.Selecting(NodifyEditor)
```csharp
public Selecting(NodifyEditor editor);
```
**Parameters**
`editor` [NodifyEditor](Nodify_NodifyEditor)
## Properties
### CanBegin
```csharp
protected override bool CanBegin { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### CanCancel
```csharp
protected override bool CanCancel { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HasContextMenu
```csharp
protected override bool HasContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsToggle
```csharp
protected override bool IsToggle { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Methods
### OnBegin(InputEventArgs)
```csharp
protected override void OnBegin(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnCancel(InputEventArgs)
```csharp
protected override void OnCancel(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnEnd(InputEventArgs)
```csharp
protected override void OnEnd(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected override void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)

View File

@@ -0,0 +1,38 @@
# EditorState.Zooming Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<NodifyEditor\>](Nodify_Interactivity_InputElementState_TElement_) → [EditorState.Zooming](Nodify_Interactivity_EditorState_Zooming)
**References:** [NodifyEditor](Nodify_NodifyEditor)
```csharp
public class Zooming : InputElementState<NodifyEditor>
```
## Constructors
### EditorState.Zooming(NodifyEditor)
```csharp
public Zooming(NodifyEditor editor);
```
**Parameters**
`editor` [NodifyEditor](Nodify_NodifyEditor)
## Methods
### OnMouseWheel(MouseWheelEventArgs)
```csharp
protected override void OnMouseWheel(MouseWheelEventArgs e);
```
**Parameters**
`e` [MouseWheelEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseWheelEventArgs)

View File

@@ -0,0 +1,56 @@
# IInputHandler Interface
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Derived:** [InputElementState\<TElement\>](Nodify_Interactivity_InputElementState_TElement_), [InputElementState\<TElement\>](Nodify_Interactivity_InputElementState_TElement_), [InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_), [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_), [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_), [InputElementState\<BaseConnection\>](Nodify_Interactivity_InputElementState_TElement_), [InputElementState\<Connector\>](Nodify_Interactivity_InputElementState_TElement_), [InputElementStateStack\<ItemContainer\>](Nodify_Interactivity_InputElementStateStack_TElement_), [InputElementState\<NodifyEditor\>](Nodify_Interactivity_InputElementState_TElement_), [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_), [InputElementState\<TElement\>](Nodify_Interactivity_InputElementState_TElement_), [InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_), [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_), [InputElementState\<TElement\>](Nodify_Interactivity_InputElementState_TElement_), [InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_), [InputProcessor.Shared\<TElement\>](Nodify_Interactivity_InputProcessor_Shared_TElement_), [InputElementState\<Minimap\>](Nodify_Interactivity_InputElementState_TElement_)
**References:** [InputProcessor](Nodify_Interactivity_InputProcessor)
Defines a contract for handling input events within an element or system.
```csharp
public interface IInputHandler
```
## Properties
### ProcessHandledEvents
Gets or sets a value indicating whether events that have been handled should be processed too.
```csharp
public virtual bool ProcessHandledEvents { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### RequiresInputCapture
Gets a value indicating whether the handler requires input capture to remain active.
```csharp
public virtual bool RequiresInputCapture { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Methods
### HandleEvent(InputEventArgs)
Handles a given input event, such as a mouse or keyboard interaction.
```csharp
public virtual void HandleEvent(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs): The [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs) representing the input event.

View File

@@ -0,0 +1,32 @@
# IKeyboardFocusTarget\<TElement\> Interface
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
```csharp
public interface IKeyboardFocusTarget<TElement>
```
## Properties
### Bounds
```csharp
public virtual Rect Bounds { get; set; }
```
**Property Value**
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
### Element
```csharp
public virtual TElement Element { get; set; }
```
**Property Value**
[TElement](Nodify_Interactivity_IKeyboardFocusTarget_TElement__TElement)

View File

@@ -0,0 +1,88 @@
# IKeyboardNavigationLayer Interface
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Derived:** [ConnectionsMultiSelector](Nodify_ConnectionsMultiSelector), [NodifyEditor](Nodify_NodifyEditor), [DecoratorsControl](Nodify_DecoratorsControl)
**References:** [IKeyboardFocusTarget\<UIElement\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_), [IKeyboardNavigationLayerGroup](Nodify_Interactivity_IKeyboardNavigationLayerGroup), [KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId), [NodifyEditor](Nodify_NodifyEditor)
Represents a layer of keyboard navigation that can handle focus movement and restoration.
```csharp
public interface IKeyboardNavigationLayer
```
## Properties
### Id
Gets the unique identifier for this keyboard navigation layer.
```csharp
public virtual KeyboardNavigationLayerId Id { get; set; }
```
**Property Value**
[KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId)
### LastFocusedElement
Gets the last focused element within this layer, if any.
```csharp
public virtual IKeyboardFocusTarget<UIElement> LastFocusedElement { get; set; }
```
**Property Value**
[IKeyboardFocusTarget\<UIElement\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
## Methods
### OnActivated()
Called when the layer is activated, allowing for any necessary setup or focus management.
```csharp
public virtual void OnActivated();
```
### OnDeactivated()
Called when the layer is deactivated, allowing for any necessary cleanup or focus management.
```csharp
public virtual void OnDeactivated();
```
### TryMoveFocus(TraversalRequest)
Attempts to move focus within this layer based on the provided traversal request.
```csharp
public virtual bool TryMoveFocus(TraversalRequest request);
```
**Parameters**
`request` [TraversalRequest](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.TraversalRequest): The traversal request.
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): Returns true if the focus was moved, false otherwise.
### TryRestoreFocus()
Attempts to restore focus to the last focused element within this layer.
```csharp
public virtual bool TryRestoreFocus();
```
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): Returns true if the focus was restored, false otherwise.

View File

@@ -0,0 +1,120 @@
# IKeyboardNavigationLayerGroup Interface
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Implements:** [IReadOnlyCollection\<IKeyboardNavigationLayer\>](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IReadOnlyCollection-1)
**Derived:** [NodifyEditor](Nodify_NodifyEditor)
**References:** [IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer), [KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId)
Represents a group of keyboard navigation layers that can be activated and navigated through.
```csharp
public interface IKeyboardNavigationLayerGroup : IReadOnlyCollection<IKeyboardNavigationLayer>
```
## Properties
### ActiveNavigationLayer
The current active keyboard navigation layer in the group, if any.
```csharp
public virtual IKeyboardNavigationLayer ActiveNavigationLayer { get; set; }
```
**Property Value**
[IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer)
## Methods
### ActivateNavigationLayer(KeyboardNavigationLayerId)
Activates the specified keyboard navigation layer, making it the active layer for focus management.
```csharp
public virtual bool ActivateNavigationLayer(KeyboardNavigationLayerId layerId);
```
**Parameters**
`layerId` [KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId): The navigation layer id to activate.
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): Returns true if the navigation layer was activated, false otherwise.
### ActivateNextNavigationLayer()
Activates the next keyboard navigation layer in the group, allowing focus to be restored to the last focused element in that layer.
```csharp
public virtual bool ActivateNextNavigationLayer();
```
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): Returns true if the navigation layer was activated, false otherwise.
### ActivatePreviousNavigationLayer()
Activates the previous keyboard navigation layer in the group, allowing focus to be restored to the last focused element in that layer.
```csharp
public virtual bool ActivatePreviousNavigationLayer();
```
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): Returns true if the navigation layer was activated, false otherwise.
### RegisterNavigationLayer(IKeyboardNavigationLayer)
Registers a new keyboard navigation layer to the group, allowing it to handle focus movement and restoration.
```csharp
public virtual bool RegisterNavigationLayer(IKeyboardNavigationLayer layer);
```
**Parameters**
`layer` [IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer): The navigation layer.
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### RemoveNavigationLayer(KeyboardNavigationLayerId)
Removes the specified keyboard navigation layer from the group.
```csharp
public virtual bool RemoveNavigationLayer(KeyboardNavigationLayerId layerId);
```
**Parameters**
`layerId` [KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId): The navigation layer id.
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): Returns true if the layer was removed, false otherwise.
## Events
### ActiveNavigationLayerChanged
Event that is raised when the active keyboard navigation layer changes.
```csharp
public virtual event Action<KeyboardNavigationLayerId> ActiveNavigationLayerChanged;
```
**Event Type**
[Action\<KeyboardNavigationLayerId\>](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1)

View File

@@ -0,0 +1,104 @@
# InputElementStateStack\<TElement\> Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_)
**Implements:** [IInputHandler](Nodify_Interactivity_IInputHandler)
**References:** [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)
```csharp
public class InputElementStateStack<TElement> : IInputHandler
```
## Constructors
### InputElementStateStack\<TElement\>(TElement)
```csharp
public InputElementStateStack<TElement>(TElement element);
```
**Parameters**
`element` [TElement](Nodify_Interactivity_InputElementStateStack_TElement__TElement)
## Properties
### Element
```csharp
protected TElement Element { get; set; }
```
**Property Value**
[TElement](Nodify_Interactivity_InputElementStateStack_TElement__TElement)
### ProcessHandledEvents
```csharp
public virtual bool ProcessHandledEvents { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### RequiresInputCapture
```csharp
public virtual bool RequiresInputCapture { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### State
```csharp
public IInputElementState<TElement> State { get; set; }
```
**Property Value**
[InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)
## Methods
### HandleEvent(InputEventArgs)
```csharp
public virtual void HandleEvent(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### PopAllStates()
```csharp
public void PopAllStates();
```
### PopState()
```csharp
public void PopState();
```
### PushState(InputElementStateStack\<TElement\>.IInputElementState\<TElement\>)
```csharp
public void PushState(IInputElementState<TElement> newState);
```
**Parameters**
`newState` [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)

View File

@@ -0,0 +1,110 @@
# InputElementStateStack\<TElement\>.DragState\<TElement\> Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<TElement\>](Nodify_Interactivity_InputElementState_TElement_) → [DragState\<TElement\>](Nodify_Interactivity_DragState_TElement_) → [InputElementStateStack\<TElement\>.DragState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__DragState_TElement_)
**Implements:** [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)
**References:** [InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_)
```csharp
public abstract class DragState<TElement> : DragState<TElement>, IInputElementState<TElement>
```
## Constructors
### InputElementStateStack\<TElement\>.DragState\<TElement\>(InputElementStateStack\<TElement\>, InputGesture, InputGesture)
```csharp
public DragState<TElement>(InputElementStateStack<TElement> stack, InputGesture exitGesture, InputGesture cancelGesture);
```
**Parameters**
`stack` [InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_)
`exitGesture` [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture)
`cancelGesture` [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture)
### InputElementStateStack\<TElement\>.DragState\<TElement\>(InputElementStateStack\<TElement\>, InputGesture)
```csharp
public DragState<TElement>(InputElementStateStack<TElement> stack, InputGesture exitGesture);
```
**Parameters**
`stack` [InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_)
`exitGesture` [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture)
## Properties
### Stack
```csharp
public InputElementStateStack<TElement> Stack { get; set; }
```
**Property Value**
[InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_)
## Methods
### Enter(InputElementStateStack\<TElement\>.IInputElementState\<TElement\>)
```csharp
public virtual void Enter(InputElementStateStack<TElement>.IInputElementState<TElement> from);
```
**Parameters**
`from` [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)
### Exit()
```csharp
public virtual void Exit();
```
### OnCancel(InputEventArgs)
```csharp
protected override void OnCancel(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnEnd(InputEventArgs)
```csharp
protected override void OnEnd(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### PopState()
```csharp
public void PopState();
```
### PushState(InputElementStateStack\<TElement\>.IInputElementState\<TElement\>)
```csharp
public void PushState(InputElementStateStack<TElement>.IInputElementState<TElement> newState);
```
**Parameters**
`newState` [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)

View File

@@ -0,0 +1,30 @@
# InputElementStateStack\<TElement\>.IInputElementState\<TElement\> Interface
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Implements:** [IInputHandler](Nodify_Interactivity_IInputHandler)
```csharp
public interface IInputElementState<TElement> : IInputHandler
```
## Methods
### Enter(InputElementStateStack\<TElement\>.IInputElementState\<TElement\>)
```csharp
public virtual void Enter(InputElementStateStack<TElement>.IInputElementState<TElement> from);
```
**Parameters**
`from` [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)
### Exit()
```csharp
public virtual void Exit();
```

View File

@@ -0,0 +1,74 @@
# InputElementStateStack\<TElement\>.InputElementState\<TElement\> Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<TElement\>](Nodify_Interactivity_InputElementState_TElement_) → [InputElementStateStack\<TElement\>.InputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__InputElementState_TElement_)
**Implements:** [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)
**References:** [InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_)
```csharp
public abstract class InputElementState<TElement> : InputElementState<TElement>, IInputElementState<TElement>
```
## Constructors
### InputElementStateStack\<TElement\>.InputElementState\<TElement\>(InputElementStateStack\<TElement\>)
```csharp
public InputElementState<TElement>(InputElementStateStack<TElement> stack);
```
**Parameters**
`stack` [InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_)
## Properties
### Stack
```csharp
protected InputElementStateStack<TElement> Stack { get; set; }
```
**Property Value**
[InputElementStateStack\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement_)
## Methods
### Enter(InputElementStateStack\<TElement\>.IInputElementState\<TElement\>)
```csharp
public virtual void Enter(InputElementStateStack<TElement>.IInputElementState<TElement> from);
```
**Parameters**
`from` [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)
### Exit()
```csharp
public virtual void Exit();
```
### PopState()
```csharp
public void PopState();
```
### PushState(InputElementStateStack\<TElement\>.IInputElementState\<TElement\>)
```csharp
public void PushState(InputElementStateStack<TElement>.IInputElementState<TElement> newState);
```
**Parameters**
`newState` [InputElementStateStack\<TElement\>.IInputElementState\<TElement\>](Nodify_Interactivity_InputElementStateStack_TElement__IInputElementState_TElement_)

View File

@@ -0,0 +1,150 @@
# InputElementState\<TElement\> Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<TElement\>](Nodify_Interactivity_InputElementState_TElement_)
**Implements:** [IInputHandler](Nodify_Interactivity_IInputHandler)
```csharp
public abstract class InputElementState<TElement> : IInputHandler
```
## Constructors
### InputElementState\<TElement\>(TElement)
```csharp
protected InputElementState<TElement>(TElement element);
```
**Parameters**
`element` [TElement](Nodify_Interactivity_InputElementState_TElement__TElement)
## Properties
### Element
```csharp
protected TElement Element { get; set; }
```
**Property Value**
[TElement](Nodify_Interactivity_InputElementState_TElement__TElement)
### ProcessHandledEvents
```csharp
public virtual bool ProcessHandledEvents { get; protected set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### RequiresInputCapture
```csharp
public virtual bool RequiresInputCapture { get; protected set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Methods
### HandleEvent(InputEventArgs)
```csharp
public virtual void HandleEvent(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnEvent(InputEventArgs)
```csharp
protected virtual void OnEvent(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnKeyDown(KeyEventArgs)
```csharp
protected virtual void OnKeyDown(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnKeyUp(KeyEventArgs)
```csharp
protected virtual void OnKeyUp(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnLostMouseCapture(MouseEventArgs)
```csharp
protected virtual void OnLostMouseCapture(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
### OnMouseDown(MouseButtonEventArgs)
```csharp
protected virtual void OnMouseDown(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected virtual void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
### OnMouseUp(MouseButtonEventArgs)
```csharp
protected virtual void OnMouseUp(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseWheel(MouseWheelEventArgs)
```csharp
protected virtual void OnMouseWheel(MouseWheelEventArgs e);
```
**Parameters**
`e` [MouseWheelEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseWheelEventArgs)

View File

@@ -0,0 +1,57 @@
# InputGestureRef Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture) → [InputGestureRef](Nodify_Interactivity_InputGestureRef)
**References:** [EditorGestures.ConnectionGestures](Nodify_Interactivity_EditorGestures_ConnectionGestures), [EditorGestures.ConnectorGestures](Nodify_Interactivity_EditorGestures_ConnectorGestures), [EditorGestures.DirectionalNavigationGestures](Nodify_Interactivity_EditorGestures_DirectionalNavigationGestures), [EditorCommands](Nodify_EditorCommands), [EditorGestures.GroupingNodeGestures](Nodify_Interactivity_EditorGestures_GroupingNodeGestures), [InputGestureRefExtensions](Nodify_Interactivity_InputGestureRefExtensions), [EditorGestures.ItemContainerGestures](Nodify_Interactivity_EditorGestures_ItemContainerGestures), [NodifyEditorGestures.KeyboardGestures](Nodify_Interactivity_NodifyEditorGestures_KeyboardGestures), [EditorGestures.MinimapGestures](Nodify_Interactivity_EditorGestures_MinimapGestures), [EditorGestures.NodifyEditorGestures](Nodify_Interactivity_EditorGestures_NodifyEditorGestures), [EditorGestures.SelectionGestures](Nodify_Interactivity_EditorGestures_SelectionGestures)
An input gesture that allows changing its logic at runtime without changing its reference.
Useful for classes that capture the object reference without the posibility of updating it. (e.g. [EditorCommands](Nodify_EditorCommands))
```csharp
public sealed class InputGestureRef : InputGesture
```
## Properties
### Value
The referenced gesture.
```csharp
public InputGesture Value { get; set; }
```
**Property Value**
[InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture)
## Methods
### Matches(Object, InputEventArgs)
```csharp
public override bool Matches(object targetElement, InputEventArgs inputEventArgs);
```
**Parameters**
`targetElement` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
`inputEventArgs` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### Unbind()
Unbinds the current gesture.
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,34 @@
# InputGestureRefExtensions Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputGestureRefExtensions](Nodify_Interactivity_InputGestureRefExtensions)
**References:** [InputGestureRef](Nodify_Interactivity_InputGestureRef)
Extension methods for the [InputGestureRef](Nodify_Interactivity_InputGestureRef) class.
```csharp
public static class InputGestureRefExtensions
```
## Methods
### AsRef(InputGesture)
Creates a new [InputGestureRef](Nodify_Interactivity_InputGestureRef) from the specified gesture.
```csharp
public static InputGestureRef AsRef(InputGesture gesture);
```
**Parameters**
`gesture` [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture)
**Returns**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)

View File

@@ -0,0 +1,80 @@
# InputProcessor Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputProcessor](Nodify_Interactivity_InputProcessor)
**Derived:** [InputProcessor.Shared\<TElement\>](Nodify_Interactivity_InputProcessor_Shared_TElement_)
**References:** [Connector](Nodify_Connector), [IInputHandler](Nodify_Interactivity_IInputHandler), [InputProcessorExtensions](Nodify_Interactivity_InputProcessorExtensions), [ItemContainer](Nodify_ItemContainer), [Minimap](Nodify_Minimap), [NodifyEditor](Nodify_NodifyEditor)
Processes input events and delegates them to registered handlers.
```csharp
public class InputProcessor
```
## Constructors
### InputProcessor()
```csharp
public InputProcessor();
```
## Properties
### RequiresInputCapture
Gets a value indicating whether the processor has ongoing interactions that require input capture to remain active.
```csharp
public virtual bool RequiresInputCapture { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Methods
### AddHandler(IInputHandler)
Adds an input handler to the processor.
```csharp
public void AddHandler(IInputHandler handler);
```
**Parameters**
`handler` [IInputHandler](Nodify_Interactivity_IInputHandler): The input handler to add.
### Clear()
Clears all registered handlers.
```csharp
public void Clear();
```
### ProcessEvent(InputEventArgs)
Processes an input event and delegates it to the registered handlers.
```csharp
public void ProcessEvent(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs): The input event arguments to process.
### RemoveHandlers()
```csharp
public void RemoveHandlers<T>();
```

View File

@@ -0,0 +1,30 @@
# InputProcessorExtensions Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputProcessorExtensions](Nodify_Interactivity_InputProcessorExtensions)
**References:** [InputProcessor](Nodify_Interactivity_InputProcessor)
Provides extension methods for the [InputProcessor](Nodify_Interactivity_InputProcessor) class.
```csharp
public static class InputProcessorExtensions
```
## Methods
### AddSharedHandlers(InputProcessor, TElement)
```csharp
public static void AddSharedHandlers<TElement>(InputProcessor inputProcessor, TElement instance);
```
**Parameters**
`inputProcessor` [InputProcessor](Nodify_Interactivity_InputProcessor)
`instance` [TElement](Nodify_Interactivity_InputProcessorExtensions_TElement)

View File

@@ -0,0 +1,70 @@
# InputProcessor.Shared\<TElement\> Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputProcessor](Nodify_Interactivity_InputProcessor) → [InputProcessor.Shared\<TElement\>](Nodify_Interactivity_InputProcessor_Shared_TElement_)
**Implements:** [IInputHandler](Nodify_Interactivity_IInputHandler)
```csharp
public sealed class Shared<TElement> : InputProcessor, IInputHandler
```
## Constructors
### InputProcessor.Shared\<TElement\>(TElement)
```csharp
public Shared<TElement>(TElement element);
```
**Parameters**
`element` [TElement](Nodify_Interactivity_Shared_TElement__TElement)
## Methods
### ClearHandlerFactories()
```csharp
public static void ClearHandlerFactories();
```
### HandleEvent(InputEventArgs)
```csharp
public virtual void HandleEvent(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### RegisterHandlerFactory(Func\<TElement, THandler\>)
```csharp
public static void RegisterHandlerFactory<THandler>(Func<TElement, THandler> factory);
```
**Parameters**
`factory` [Func\<TElement, THandler\>](https://docs.microsoft.com/en-us/dotnet/api/System.Func-2)
### RemoveHandlerFactory()
```csharp
public static void RemoveHandlerFactory<THandler>();
```
### ReplaceHandlerFactory(Func\<TElement, THandler\>)
```csharp
public static void ReplaceHandlerFactory<THandler>(Func<TElement, THandler> factory);
```
**Parameters**
`factory` [Func\<TElement, THandler\>](https://docs.microsoft.com/en-us/dotnet/api/System.Func-2)

View File

@@ -0,0 +1,107 @@
# KeyComboGesture Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture) → [KeyGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyGesture) → [KeyComboGesture](Nodify_Interactivity_KeyComboGesture)
Represents a keyboard gesture that requires a trigger key to be held down
before pressing a combo key. For example, press and hold Space, then press Left arrow.
```csharp
public class KeyComboGesture : KeyGesture
```
## Constructors
### KeyComboGesture(Key, Key)
Initializes a new instance of the [KeyComboGesture](Nodify_Interactivity_KeyComboGesture) class with the specified trigger key,
combo key, modifiers, and display string.
```csharp
public KeyComboGesture(Key triggerKey, Key comboKey);
```
**Parameters**
`triggerKey` [Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key): The key that must be pressed first.
`comboKey` [Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key): The combo key pressed while the trigger key is held.
### KeyComboGesture(Key, Key, ModifierKeys)
```csharp
public KeyComboGesture(Key triggerKey, Key comboKey, ModifierKeys modifiers);
```
**Parameters**
`triggerKey` [Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key)
`comboKey` [Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key)
`modifiers` [ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys)
### KeyComboGesture(Key, Key, ModifierKeys, String)
```csharp
public KeyComboGesture(Key triggerKey, Key comboKey, ModifierKeys modifiers, string displayString);
```
**Parameters**
`triggerKey` [Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key)
`comboKey` [Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key)
`modifiers` [ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys)
`displayString` [String](https://docs.microsoft.com/en-us/dotnet/api/System.String)
## Properties
### AllowRepeatingComboKey
Gets or sets a value indicating whether the combo key can be repeatedly triggered
without releasing the trigger key.
```csharp
public bool AllowRepeatingComboKey { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### TriggerKey
Gets or sets the key that must be pressed first to activate this combo gesture.
```csharp
public Key TriggerKey { get; set; }
```
**Property Value**
[Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key)
## Methods
### Matches(Object, InputEventArgs)
```csharp
public override bool Matches(object targetElement, InputEventArgs inputEventArgs);
```
**Parameters**
`targetElement` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
`inputEventArgs` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

View File

@@ -0,0 +1,56 @@
# KeyboardNavigationLayerId Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId)
**References:** [ConnectionsMultiSelector](Nodify_ConnectionsMultiSelector), [DecoratorsControl](Nodify_DecoratorsControl), [IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer), [IKeyboardNavigationLayerGroup](Nodify_Interactivity_IKeyboardNavigationLayerGroup), [NodifyEditor](Nodify_NodifyEditor)
Represents a unique identifier for a keyboard navigation layer.
```csharp
public class KeyboardNavigationLayerId
```
## Constructors
### KeyboardNavigationLayerId()
```csharp
public KeyboardNavigationLayerId();
```
## Fields
### Connections
```csharp
public static KeyboardNavigationLayerId Connections;
```
**Field Value**
[KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId)
### Decorators
```csharp
public static KeyboardNavigationLayerId Decorators;
```
**Field Value**
[KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId)
### Nodes
```csharp
public static KeyboardNavigationLayerId Nodes;
```
**Field Value**
[KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId)

View File

@@ -0,0 +1,26 @@
# MinimapState Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [MinimapState](Nodify_Interactivity_MinimapState)
```csharp
public static class MinimapState
```
## Properties
### EnableToggledPanningMode
Determines whether toggled panning mode is enabled, allowing the user to start and end the interaction in two steps with the same input gesture.
```csharp
public static bool EnableToggledPanningMode { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

View File

@@ -0,0 +1,38 @@
# MinimapState.KeyboardNavigation Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<Minimap\>](Nodify_Interactivity_InputElementState_TElement_) → [MinimapState.KeyboardNavigation](Nodify_Interactivity_MinimapState_KeyboardNavigation)
**References:** [Minimap](Nodify_Minimap)
```csharp
public class KeyboardNavigation : InputElementState<Minimap>
```
## Constructors
### MinimapState.KeyboardNavigation(Minimap)
```csharp
public KeyboardNavigation(Minimap element);
```
**Parameters**
`element` [Minimap](Nodify_Minimap)
## Methods
### OnKeyDown(KeyEventArgs)
```csharp
protected override void OnKeyDown(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)

View File

@@ -0,0 +1,100 @@
# MinimapState.Panning Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<Minimap\>](Nodify_Interactivity_InputElementState_TElement_) → [DragState\<Minimap\>](Nodify_Interactivity_DragState_TElement_) → [MinimapState.Panning](Nodify_Interactivity_MinimapState_Panning)
**References:** [Minimap](Nodify_Minimap)
```csharp
public class Panning : DragState<Minimap>
```
## Constructors
### MinimapState.Panning(Minimap)
```csharp
public Panning(Minimap minimap);
```
**Parameters**
`minimap` [Minimap](Nodify_Minimap)
## Properties
### CanBegin
```csharp
protected override bool CanBegin { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### CanCancel
```csharp
protected override bool CanCancel { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsToggle
```csharp
protected override bool IsToggle { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
## Methods
### OnBegin(InputEventArgs)
```csharp
protected override void OnBegin(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnCancel(InputEventArgs)
```csharp
protected override void OnCancel(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnEnd(InputEventArgs)
```csharp
protected override void OnEnd(InputEventArgs e);
```
**Parameters**
`e` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected override void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)

View File

@@ -0,0 +1,48 @@
# MinimapState.Zooming Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputElementState\<Minimap\>](Nodify_Interactivity_InputElementState_TElement_) → [MinimapState.Zooming](Nodify_Interactivity_MinimapState_Zooming)
**References:** [Minimap](Nodify_Minimap)
```csharp
public class Zooming : InputElementState<Minimap>
```
## Constructors
### MinimapState.Zooming(Minimap)
```csharp
public Zooming(Minimap minimap);
```
**Parameters**
`minimap` [Minimap](Nodify_Minimap)
## Methods
### OnKeyDown(KeyEventArgs)
```csharp
protected override void OnKeyDown(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnMouseWheel(MouseWheelEventArgs)
```csharp
protected override void OnMouseWheel(MouseWheelEventArgs e);
```
**Parameters**
`e` [MouseWheelEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseWheelEventArgs)

View File

@@ -0,0 +1,134 @@
# MouseGesture Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture) → [MouseGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseGesture) → [MouseGesture](Nodify_Interactivity_MouseGesture)
Represents a mouse gesture that optionally includes a specific key press as part of the gesture.
```csharp
public sealed class MouseGesture : MouseGesture
```
## Constructors
### MouseGesture(MouseAction, ModifierKeys, Key)
Initializes a new instance of the [MouseGesture](Nodify_Interactivity_MouseGesture) class with the specified mouse action, modifier keys, and a specific key.
```csharp
public MouseGesture(MouseAction action, ModifierKeys modifiers, Key key);
```
**Parameters**
`action` [MouseAction](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseAction): The action associated with this gesture.
`modifiers` [ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys): The modifiers associated with this gesture.
`key` [Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key): The key required to match the gesture.
### MouseGesture(MouseAction, Key)
Initializes a new instance of the [MouseGesture](Nodify_Interactivity_MouseGesture) class with the specified mouse action and key.
```csharp
public MouseGesture(MouseAction action, Key key);
```
**Parameters**
`action` [MouseAction](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseAction): The action associated with this gesture.
`key` [Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key): The key required to match the gesture.
### MouseGesture(MouseAction, ModifierKeys)
Initializes a new instance of the [MouseGesture](Nodify_Interactivity_MouseGesture) class with the specified mouse action and modifier keys.
```csharp
public MouseGesture(MouseAction action, ModifierKeys modifiers);
```
**Parameters**
`action` [MouseAction](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseAction): The action associated with this gesture.
`modifiers` [ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys): The modifiers required to match the gesture.
### MouseGesture(MouseAction, ModifierKeys, Boolean)
```csharp
public MouseGesture(MouseAction action, ModifierKeys modifiers, bool ignoreModifierKeysOnRelease);
```
**Parameters**
`action` [MouseAction](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseAction)
`modifiers` [ModifierKeys](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ModifierKeys)
`ignoreModifierKeysOnRelease` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### MouseGesture(MouseAction)
```csharp
public MouseGesture(MouseAction action);
```
**Parameters**
`action` [MouseAction](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseAction)
### MouseGesture()
```csharp
public MouseGesture();
```
## Properties
### IgnoreModifierKeysOnRelease
Whether to ignore modifier keys when releasing the mouse button.
```csharp
public bool IgnoreModifierKeysOnRelease { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### Key
Gets or sets the key that must be pressed to match this gesture.
```csharp
public Key Key { get; set; }
```
**Property Value**
[Key](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.Key)
## Methods
### Matches(Object, InputEventArgs)
```csharp
public override bool Matches(object targetElement, InputEventArgs inputEventArgs);
```
**Parameters**
`targetElement` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
`inputEventArgs` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

View File

@@ -0,0 +1,64 @@
# MultiGesture Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [InputGesture](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture) → [MultiGesture](Nodify_Interactivity_MultiGesture)
**Derived:** [AllGestures](Nodify_Interactivity_AllGestures), [AnyGesture](Nodify_Interactivity_AnyGesture)
**References:** [MultiGesture.Match](Nodify_Interactivity_MultiGesture_Match)
Combines multiple input gestures.
```csharp
public class MultiGesture : InputGesture
```
## Constructors
### MultiGesture(MultiGesture.Match, InputGesture[])
Constructs an instance of a [MultiGesture](Nodify_Interactivity_MultiGesture).
```csharp
public MultiGesture(Match match, InputGesture[] gestures);
```
**Parameters**
`match` [MultiGesture.Match](Nodify_Interactivity_MultiGesture_Match): The matching strategy.
`gestures` [InputGesture[]](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputGesture[]): The input gestures.
## Fields
### None
```csharp
public static MultiGesture None;
```
**Field Value**
[MultiGesture](Nodify_Interactivity_MultiGesture)
## Methods
### Matches(Object, InputEventArgs)
```csharp
public override bool Matches(object targetElement, InputEventArgs inputEventArgs);
```
**Parameters**
`targetElement` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
`inputEventArgs` [InputEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.InputEventArgs)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

View File

@@ -0,0 +1,26 @@
# MultiGesture.Match Enum
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**References:** [MultiGesture](Nodify_Interactivity_MultiGesture)
```csharp
public enum Match
```
## Fields
### All
```csharp
All = 1;
```
### Any
```csharp
Any = 0;
```

View File

@@ -0,0 +1,112 @@
# NodifyEditorGestures.KeyboardGestures Class
**Namespace:** Nodify.Interactivity
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [NodifyEditorGestures.KeyboardGestures](Nodify_Interactivity_NodifyEditorGestures_KeyboardGestures)
**References:** [EditorGestures.DirectionalNavigationGestures](Nodify_Interactivity_EditorGestures_DirectionalNavigationGestures), [InputGestureRef](Nodify_Interactivity_InputGestureRef), [EditorGestures.NodifyEditorGestures](Nodify_Interactivity_EditorGestures_NodifyEditorGestures)
```csharp
public class KeyboardGestures
```
## Constructors
### NodifyEditorGestures.KeyboardGestures()
```csharp
public KeyboardGestures();
```
## Properties
### DeselectAll
```csharp
public InputGestureRef DeselectAll { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### DragSelection
```csharp
public DirectionalNavigationGestures DragSelection { get; set; }
```
**Property Value**
[EditorGestures.DirectionalNavigationGestures](Nodify_Interactivity_EditorGestures_DirectionalNavigationGestures)
### NavigateSelection
```csharp
public DirectionalNavigationGestures NavigateSelection { get; set; }
```
**Property Value**
[EditorGestures.DirectionalNavigationGestures](Nodify_Interactivity_EditorGestures_DirectionalNavigationGestures)
### NextNavigationLayer
```csharp
public InputGestureRef NextNavigationLayer { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### Pan
```csharp
public DirectionalNavigationGestures Pan { get; set; }
```
**Property Value**
[EditorGestures.DirectionalNavigationGestures](Nodify_Interactivity_EditorGestures_DirectionalNavigationGestures)
### PrevNavigationLayer
```csharp
public InputGestureRef PrevNavigationLayer { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
### ToggleSelected
```csharp
public InputGestureRef ToggleSelected { get; set; }
```
**Property Value**
[InputGestureRef](Nodify_Interactivity_InputGestureRef)
## Methods
### Apply(NodifyEditorGestures.KeyboardGestures)
```csharp
public void Apply(NodifyEditorGestures.KeyboardGestures gestures);
```
**Parameters**
`gestures` [NodifyEditorGestures.KeyboardGestures](Nodify_Interactivity_NodifyEditorGestures_KeyboardGestures)
### Unbind()
```csharp
public void Unbind();
```

View File

@@ -0,0 +1,483 @@
# ItemContainer Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ContentControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ContentControl) → [ItemContainer](Nodify_ItemContainer)
**Implements:** [INodifyCanvasItem](Nodify_INodifyCanvasItem), [IKeyboardFocusTarget\<ItemContainer\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
**References:** [Connector](Nodify_Connector), [ContainerState.Default](Nodify_Interactivity_ContainerState_Default), [EditorCommands](Nodify_EditorCommands), [GroupingNode](Nodify_GroupingNode), [InputProcessor](Nodify_Interactivity_InputProcessor), [ItemsMovedEventArgs](Nodify_Events_ItemsMovedEventArgs), [NodifyEditor](Nodify_NodifyEditor), [PendingConnection](Nodify_PendingConnection), [PreviewLocationChanged](Nodify_Events_PreviewLocationChanged), [SelectionType](Nodify_SelectionType)
The container for all the items generated by the [ItemsControl.ItemsSource](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ItemsControl#itemssource) of the [NodifyEditor](Nodify_NodifyEditor).
```csharp
public class ItemContainer : ContentControl, INodifyCanvasItem, IKeyboardFocusTarget<ItemContainer>
```
## Constructors
### ItemContainer(NodifyEditor)
Constructs an instance of an [ItemContainer](Nodify_ItemContainer) in the specified [NodifyEditor](Nodify_NodifyEditor).
```csharp
public ItemContainer(NodifyEditor editor);
```
**Parameters**
`editor` [NodifyEditor](Nodify_NodifyEditor)
## Fields
### IsPreviewingSelectionPropertyKey
```csharp
protected static DependencyPropertyKey IsPreviewingSelectionPropertyKey;
```
**Field Value**
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
## Properties
### ActualSize
Gets the actual size of this [ItemContainer](Nodify_ItemContainer).
```csharp
public Size ActualSize { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### Bounds
Gets the bounds of the selection area for this [ItemContainer](Nodify_ItemContainer) based on its [ItemContainer.Location](Nodify_ItemContainer#location) and [ItemContainer.DesiredSizeForSelection](Nodify_ItemContainer#desiredsizeforselection).
```csharp
public virtual Rect Bounds { get; set; }
```
**Property Value**
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
### DesiredSizeForSelection
Overrides the size to check against when calculating if this [ItemContainer](Nodify_ItemContainer) can be part of the current [NodifyEditor.SelectedArea](Nodify_NodifyEditor#selectedarea).
Defaults to [UIElement.RenderSize](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement#rendersize).
```csharp
public Size? DesiredSizeForSelection { get; set; }
```
**Property Value**
[Size?](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)
### Editor
The [NodifyEditor](Nodify_NodifyEditor) that owns this [ItemContainer](Nodify_ItemContainer).
```csharp
public NodifyEditor Editor { get; set; }
```
**Property Value**
[NodifyEditor](Nodify_NodifyEditor)
### HasContextMenu
Gets a value indicating whether the container has a context menu.
```csharp
public bool HasContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HasCustomContextMenu
Gets or sets a value indicating whether the container uses a custom context menu.
```csharp
public bool HasCustomContextMenu { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HighlightBrush
Gets or sets the brush used when the [PendingConnection.IsOverElementProperty](Nodify_PendingConnection#isoverelementproperty) attached property is true for this [ItemContainer](Nodify_ItemContainer).
```csharp
public Brush HighlightBrush { get; set; }
```
**Property Value**
[Brush](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Brush)
### InputProcessor
```csharp
protected InputProcessor InputProcessor { get; set; }
```
**Property Value**
[InputProcessor](Nodify_Interactivity_InputProcessor)
### IsDraggable
Gets or sets whether this [ItemContainer](Nodify_ItemContainer) can be dragged.
```csharp
public bool IsDraggable { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsPreviewingLocation
Gets a value indicating whether this [ItemContainer](Nodify_ItemContainer) is previewing a new location but didn't logically move there.
```csharp
public bool IsPreviewingLocation { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsPreviewingSelection
Gets a value indicating whether this [ItemContainer](Nodify_ItemContainer) is about to change its [ItemContainer.IsSelected](Nodify_ItemContainer#isselected) state.
```csharp
public Boolean? IsPreviewingSelection { get; set; }
```
**Property Value**
[Boolean?](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)
### IsSelectable
Gets or sets whether this [ItemContainer](Nodify_ItemContainer) can be selected.
```csharp
public bool IsSelectable { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsSelected
Gets or sets a value that indicates whether this [ItemContainer](Nodify_ItemContainer) is selected.
Can only be set if [ItemContainer.IsSelectable](Nodify_ItemContainer#isselectable) is true.
```csharp
public bool IsSelected { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### Location
Gets or sets the location of this [ItemContainer](Nodify_ItemContainer) inside the [NodifyEditor](Nodify_NodifyEditor) in graph space coordinates.
```csharp
public virtual Point Location { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### PreserveSelectionOnRightClick
Indicates whether right-click on the container should preserve the current selection.
```csharp
public static bool PreserveSelectionOnRightClick { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### SelectedBorderThickness
Gets or sets the border thickness used when [ItemContainer.IsSelected](Nodify_ItemContainer#isselected) or [ItemContainer.IsPreviewingSelection](Nodify_ItemContainer#ispreviewingselection) is true.
```csharp
public Thickness SelectedBorderThickness { get; set; }
```
**Property Value**
[Thickness](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Thickness)
### SelectedBrush
Gets or sets the brush used when [ItemContainer.IsSelected](Nodify_ItemContainer#isselected) or [ItemContainer.IsPreviewingSelection](Nodify_ItemContainer#ispreviewingselection) is true.
```csharp
public Brush SelectedBrush { get; set; }
```
**Property Value**
[Brush](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Brush)
### SelectedMargin
The calculated margin when the container is selected or previewing selection.
```csharp
public Thickness SelectedMargin { get; set; }
```
**Property Value**
[Thickness](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Thickness)
## Methods
### BeginDragging()
```csharp
public void BeginDragging();
```
### CancelDragging()
```csharp
public void CancelDragging();
```
### EndDragging()
```csharp
public void EndDragging();
```
### IsSelectableInArea(Rect, Boolean)
Checks if area contains or intersects with this [ItemContainer](Nodify_ItemContainer) taking into consideration the [ItemContainer.DesiredSizeForSelection](Nodify_ItemContainer#desiredsizeforselection).
```csharp
public virtual bool IsSelectableInArea(Rect area, bool isContained);
```
**Parameters**
`area` [Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect): The area to check if contains or intersects this [ItemContainer](Nodify_ItemContainer).
`isContained` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): If true will check if area contains this, otherwise will check if area intersects with this.
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): True if area contains or intersects this [ItemContainer](Nodify_ItemContainer).
### OnKeyDown(KeyEventArgs)
```csharp
protected override void OnKeyDown(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnKeyUp(KeyEventArgs)
```csharp
protected override void OnKeyUp(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnLocationChanged()
Raises the [ItemContainer.LocationChangedEvent](Nodify_ItemContainer#locationchangedevent) and sets [ItemContainer.IsPreviewingLocation](Nodify_ItemContainer#ispreviewinglocation) to false.
```csharp
protected void OnLocationChanged();
```
### OnLostMouseCapture(MouseEventArgs)
```csharp
protected override void OnLostMouseCapture(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
### OnMouseDown(MouseButtonEventArgs)
```csharp
protected override void OnMouseDown(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected override void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
### OnMouseUp(MouseButtonEventArgs)
```csharp
protected override void OnMouseUp(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseWheel(MouseWheelEventArgs)
```csharp
protected override void OnMouseWheel(MouseWheelEventArgs e);
```
**Parameters**
`e` [MouseWheelEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseWheelEventArgs)
### OnRenderSizeChanged(SizeChangedInfo)
```csharp
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo);
```
**Parameters**
`sizeInfo` [SizeChangedInfo](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.SizeChangedInfo)
### OnSelectedChanged(Boolean)
Raises the [ItemContainer.SelectedEvent](Nodify_ItemContainer#selectedevent) or [ItemContainer.UnselectedEvent](Nodify_ItemContainer#unselectedevent) based on newValue.
Called when the [ItemContainer.IsSelected](Nodify_ItemContainer#isselected) value is changed.
```csharp
protected void OnSelectedChanged(bool newValue);
```
**Parameters**
`newValue` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): True if selected, false otherwise.
### OnVisualParentChanged(DependencyObject)
```csharp
protected override void OnVisualParentChanged(DependencyObject oldParent);
```
**Parameters**
`oldParent` [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject)
### Select(SelectionType)
Modifies the selection state of the current item based on the specified selection type.
```csharp
public void Select(SelectionType type);
```
**Parameters**
`type` [SelectionType](Nodify_SelectionType): The type of selection to perform.
### UpdateDragging(Vector)
```csharp
public void UpdateDragging(Vector amount);
```
**Parameters**
`amount` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector)
## Events
### LocationChanged
Occurs when the [ItemContainer.Location](Nodify_ItemContainer#location) of this [ItemContainer](Nodify_ItemContainer) is changed.
```csharp
public event RoutedEventHandler LocationChanged;
```
**Event Type**
[RoutedEventHandler](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventHandler)
### PreviewLocationChanged
Occurs when the [ItemContainer](Nodify_ItemContainer) is previewing a new location.
```csharp
public event PreviewLocationChanged PreviewLocationChanged;
```
**Event Type**
[PreviewLocationChanged](Nodify_Events_PreviewLocationChanged)
### Selected
Occurs when this [ItemContainer](Nodify_ItemContainer) is selected.
```csharp
public event RoutedEventHandler Selected;
```
**Event Type**
[RoutedEventHandler](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventHandler)
### Unselected
Occurs when this [ItemContainer](Nodify_ItemContainer) is unselected.
```csharp
public event RoutedEventHandler Unselected;
```
**Event Type**
[RoutedEventHandler](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventHandler)

View File

@@ -0,0 +1,24 @@
# KnotNode Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ContentControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ContentControl) → [KnotNode](Nodify_KnotNode)
**References:** [Connector](Nodify_Connector)
Represents a control that owns a [Connector](Nodify_Connector).
```csharp
public class KnotNode : ContentControl
```
## Constructors
### KnotNode()
```csharp
public KnotNode();
```

View File

@@ -0,0 +1,170 @@
# LineConnection Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Shape](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Shapes.Shape) → [BaseConnection](Nodify_BaseConnection) → [LineConnection](Nodify_LineConnection)
**Derived:** [CircuitConnection](Nodify_CircuitConnection), [StepConnection](Nodify_StepConnection)
**References:** [ConnectionDirection](Nodify_ConnectionDirection)
Represents a line that has an arrow indicating its [BaseConnection.Direction](Nodify_BaseConnection#direction).
```csharp
public class LineConnection : BaseConnection
```
## Constructors
### LineConnection()
```csharp
public LineConnection();
```
## Properties
### CornerRadius
The radius of the corners between the line segments.
```csharp
public double CornerRadius { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
## Methods
### AddSmoothCorner(StreamGeometryContext, Point, Point, Point, Double)
```csharp
protected static void AddSmoothCorner(StreamGeometryContext context, Point start, Point corner, Point end, double radius);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`start` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`corner` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`end` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`radius` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### DrawDefaultArrowhead(StreamGeometryContext, Point, Point, ConnectionDirection, Orientation)
```csharp
protected override void DrawDefaultArrowhead(StreamGeometryContext context, Point source, Point target, ConnectionDirection arrowDirection = 0, Orientation orientation = 0);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`arrowDirection` [ConnectionDirection](Nodify_ConnectionDirection)
`orientation` [Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation)
### DrawDirectionalArrowsGeometry(StreamGeometryContext, Point, Point)
```csharp
protected override void DrawDirectionalArrowsGeometry(StreamGeometryContext context, Point source, Point target);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### DrawLineGeometry(StreamGeometryContext, Point, Point)
```csharp
protected override ValueTuple<ValueTuple<Point, Point>, ValueTuple<Point, Point>> DrawLineGeometry(StreamGeometryContext context, Point source, Point target);
```
**Parameters**
`context` [StreamGeometryContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.StreamGeometryContext)
`source` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`target` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
**Returns**
[ValueTuple\<ValueTuple\<Point, Point\>, ValueTuple\<Point, Point\>\>](https://docs.microsoft.com/en-us/dotnet/api/System.ValueTuple-2)
### InterpolateLine(Point, Point, Point, Point, Double)
```csharp
protected static ValueTuple<ValueTuple<Point, Point>, Point> InterpolateLine(Point p0, Point p1, Point p2, Point p3, double t);
```
**Parameters**
`p0` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`p1` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`p2` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`p3` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`t` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
**Returns**
[ValueTuple\<ValueTuple\<Point, Point\>, Point\>](https://docs.microsoft.com/en-us/dotnet/api/System.ValueTuple-2)
### InterpolateLine(Point, Point, Point, Double)
```csharp
protected static ValueTuple<ValueTuple<Point, Point>, Point> InterpolateLine(Point p0, Point p1, Point p2, double t);
```
**Parameters**
`p0` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`p1` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`p2` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`t` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
**Returns**
[ValueTuple\<ValueTuple\<Point, Point\>, Point\>](https://docs.microsoft.com/en-us/dotnet/api/System.ValueTuple-2)
### InterpolateLineSegment(Point, Point, Double)
```csharp
protected static Point InterpolateLineSegment(Point p0, Point p1, double t);
```
**Parameters**
`p0` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`p1` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
`t` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
**Returns**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)

425
docs/api/Nodify_Minimap.md Normal file
View File

@@ -0,0 +1,425 @@
# Minimap Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ItemsControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ItemsControl) → [Minimap](Nodify_Minimap)
**References:** [InputProcessor](Nodify_Interactivity_InputProcessor), [MinimapState.KeyboardNavigation](Nodify_Interactivity_MinimapState_KeyboardNavigation), [MinimapItem](Nodify_MinimapItem), [NodifyEditor](Nodify_NodifyEditor), [MinimapState.Panning](Nodify_Interactivity_MinimapState_Panning), [ZoomEventArgs](Nodify_Events_ZoomEventArgs), [ZoomEventHandler](Nodify_Events_ZoomEventHandler), [MinimapState.Zooming](Nodify_Interactivity_MinimapState_Zooming)
A minimap control that can position the viewport, and zoom in and out.
```csharp
public class Minimap : ItemsControl
```
## Constructors
### Minimap()
```csharp
public Minimap();
```
## Properties
### AllowPanningCancellation
Gets or sets whether panning cancellation is allowed (see Nodify.Interactivity.EditorGestures.MinimapGestures.CancelAction).
```csharp
public static bool AllowPanningCancellation { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### Extent
The area covered by the items and the viewport rectangle in graph space.
```csharp
public Rect Extent { get; set; }
```
**Property Value**
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
### InputProcessor
```csharp
protected InputProcessor InputProcessor { get; set; }
```
**Property Value**
[InputProcessor](Nodify_Interactivity_InputProcessor)
### IsPanning
Whether the user is currently panning the minimap.
```csharp
protected bool IsPanning { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### IsReadOnly
Whether the minimap can move and zoom the viewport.
```csharp
public bool IsReadOnly { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### ItemsExtent
The area covered by the [MinimapItem](Nodify_MinimapItem)s in graph space.
```csharp
public Rect ItemsExtent { get; set; }
```
**Property Value**
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
### ItemsHost
Gets the panel that holds all the [MinimapItem](Nodify_MinimapItem)s.
```csharp
protected Panel ItemsHost { get; set; }
```
**Property Value**
[Panel](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Panel)
### MaxViewportOffset
The max position from the [NodifyEditor.ItemsExtent](Nodify_NodifyEditor#itemsextent) that the viewport can move to.
```csharp
public Size MaxViewportOffset { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### MouseLocation
Gets the current mouse location in graph space coordinates (relative to the [Minimap.ItemsHost](Nodify_Minimap#itemshost)).
```csharp
public Point MouseLocation { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### NavigationStepSize
Defines the distance to pan when using directional input (such as arrow keys).
```csharp
public static double NavigationStepSize { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### ResizeToViewport
Whether the minimap should resize to also display the whole viewport.
```csharp
public bool ResizeToViewport { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### ViewportLocation
```csharp
public Point ViewportLocation { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### ViewportSize
```csharp
public Size ViewportSize { get; set; }
```
**Property Value**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### ViewportStyle
Gets or sets the style to use for the viewport rectangle.
```csharp
public Style ViewportStyle { get; set; }
```
**Property Value**
[Style](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Style)
## Methods
### BeginPanning()
Starts the panning operation from the specified location. Call Nodify.Minimap.EndPanning to end the panning operation.
```csharp
public void BeginPanning();
```
### BeginPanning(Point)
```csharp
public void BeginPanning(Point location);
```
**Parameters**
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### CancelPanning()
Cancels the current panning operation and reverts the viewport to its initial location if [Minimap.AllowPanningCancellation](Nodify_Minimap#allowpanningcancellation) is true.
Otherwise, it ends the panning operation by calling Nodify.Minimap.EndPanning.
```csharp
public void CancelPanning();
```
### EndPanning()
Ends the current panning operation, retaining the current [Minimap.ViewportLocation](Nodify_Minimap#viewportlocation).
```csharp
public void EndPanning();
```
### GetContainerForItemOverride()
```csharp
protected override DependencyObject GetContainerForItemOverride();
```
**Returns**
[DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject)
### GetLocationInsideMinimap(MouseEventArgs)
Translates the event location to graph space coordinates (relative to the [Minimap.ItemsHost](Nodify_Minimap#itemshost)).
```csharp
public Point GetLocationInsideMinimap(MouseEventArgs args);
```
**Parameters**
`args` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs): The mouse event.
**Returns**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): A location inside the minimap
### IsItemItsOwnContainerOverride(Object)
```csharp
protected override bool IsItemItsOwnContainerOverride(object item);
```
**Parameters**
`item` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### OnApplyTemplate()
```csharp
public override void OnApplyTemplate();
```
### OnKeyDown(KeyEventArgs)
```csharp
protected override void OnKeyDown(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnKeyUp(KeyEventArgs)
```csharp
protected override void OnKeyUp(KeyEventArgs e);
```
**Parameters**
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
### OnLostMouseCapture(MouseEventArgs)
```csharp
protected override void OnLostMouseCapture(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
### OnMouseDown(MouseButtonEventArgs)
```csharp
protected override void OnMouseDown(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseMove(MouseEventArgs)
```csharp
protected override void OnMouseMove(MouseEventArgs e);
```
**Parameters**
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
### OnMouseUp(MouseButtonEventArgs)
```csharp
protected override void OnMouseUp(MouseButtonEventArgs e);
```
**Parameters**
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
### OnMouseWheel(MouseWheelEventArgs)
```csharp
protected override void OnMouseWheel(MouseWheelEventArgs e);
```
**Parameters**
`e` [MouseWheelEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseWheelEventArgs)
### ResetViewport()
```csharp
public void ResetViewport();
```
### SetViewportLocation(Point)
```csharp
protected void SetViewportLocation(Point location);
```
**Parameters**
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### UpdatePanning(Point)
Sets the viewport location to the specified location.
```csharp
public void UpdatePanning(Point location);
```
**Parameters**
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The location to pan the viewport to.
### UpdatePanning(Vector)
Pans the viewport by the specified amount.
```csharp
public void UpdatePanning(Vector amount);
```
**Parameters**
`amount` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector): The amount to pan the viewport.
### ZoomAtPosition(Double, Point)
Zoom at the specified location in graph space coordinates.
```csharp
public void ZoomAtPosition(double zoom, Point location);
```
**Parameters**
`zoom` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double): The zoom factor.
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The location to focus when zooming.
### ZoomIn()
Zoom in at the viewport's center.
```csharp
public void ZoomIn();
```
### ZoomOut()
Zoom out at the viewport's center.
```csharp
public void ZoomOut();
```
## Events
### Zoom
Triggered when zooming in or out using the mouse wheel.
```csharp
public event ZoomEventHandler Zoom;
```
**Event Type**
[ZoomEventHandler](Nodify_Events_ZoomEventHandler)

View File

@@ -0,0 +1,36 @@
# MinimapItem Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ContentControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ContentControl) → [MinimapItem](Nodify_MinimapItem)
**References:** [Minimap](Nodify_Minimap)
```csharp
public class MinimapItem : ContentControl
```
## Constructors
### MinimapItem()
```csharp
public MinimapItem();
```
## Properties
### Location
Gets or sets the location of this [MinimapItem](Nodify_MinimapItem) inside the [Minimap](Nodify_Minimap).
```csharp
public Point Location { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)

262
docs/api/Nodify_Node.md Normal file
View File

@@ -0,0 +1,262 @@
# Node Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ContentControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ContentControl) → [HeaderedContentControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.HeaderedContentControl) → [Node](Nodify_Node)
**References:** [Connector](Nodify_Connector), [NodeInput](Nodify_NodeInput), [NodeOutput](Nodify_NodeOutput)
Represents a control that has a list of [Node.Input](Nodify_Node#input)[Connector](Nodify_Connector)s and a list of [Node.Output](Nodify_Node#output)[Connector](Nodify_Connector)s.
```csharp
public class Node : HeaderedContentControl
```
## Constructors
### Node()
```csharp
public Node();
```
## Fields
### ElementInputItemsControl
```csharp
protected const string ElementInputItemsControl = "PART_Input";
```
**Field Value**
[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)
### ElementOutputItemsControl
```csharp
protected const string ElementOutputItemsControl = "PART_Output";
```
**Field Value**
[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)
### HasFooterPropertyKey
```csharp
protected static DependencyPropertyKey HasFooterPropertyKey;
```
**Field Value**
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
## Properties
### ContentBrush
Gets or sets the brush used for the background of the [ContentControl.Content](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ContentControl#content) of this [Node](Nodify_Node).
```csharp
public Brush ContentBrush { get; set; }
```
**Property Value**
[Brush](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Brush)
### ContentContainerStyle
Gets or sets the style for the content container.
```csharp
public Style ContentContainerStyle { get; set; }
```
**Property Value**
[Style](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Style)
### Footer
Gets or sets the data for the footer of this control.
```csharp
public object Footer { get; set; }
```
**Property Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### FooterBrush
Gets or sets the brush used for the background of the [Node.Footer](Nodify_Node#footer) of this [Node](Nodify_Node).
```csharp
public Brush FooterBrush { get; set; }
```
**Property Value**
[Brush](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Brush)
### FooterContainerStyle
Gets or sets the style for the footer container.
```csharp
public Style FooterContainerStyle { get; set; }
```
**Property Value**
[Style](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Style)
### FooterTemplate
Gets or sets the template used to display the content of the control's footer.
```csharp
public DataTemplate FooterTemplate { get; set; }
```
**Property Value**
[DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate)
### HasFooter
Gets a value that indicates whether the [Node.Footer](Nodify_Node#footer) is .
```csharp
public bool HasFooter { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HeaderBrush
Gets or sets the brush used for the background of the [HeaderedContentControl.Header](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.HeaderedContentControl#header) of this [Node](Nodify_Node).
```csharp
public Brush HeaderBrush { get; set; }
```
**Property Value**
[Brush](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Brush)
### HeaderContainerStyle
Gets or sets the style for the header container.
```csharp
public Style HeaderContainerStyle { get; set; }
```
**Property Value**
[Style](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Style)
### Input
Gets or sets the data for the input [Connector](Nodify_Connector)s of this control.
```csharp
public IEnumerable Input { get; set; }
```
**Property Value**
[IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.IEnumerable)
### InputConnectorTemplate
Gets or sets the template used to display the content of the control's [Node.Input](Nodify_Node#input) connectors.
```csharp
public DataTemplate InputConnectorTemplate { get; set; }
```
**Property Value**
[DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate)
### InputGroupStyle
```csharp
public ObservableCollection<GroupStyle> InputGroupStyle { get; set; }
```
**Property Value**
[ObservableCollection\<GroupStyle\>](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.ObjectModel.ObservableCollection-1)
### InputItemsControl
```csharp
protected ItemsControl InputItemsControl { get; set; }
```
**Property Value**
[ItemsControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ItemsControl)
### Output
Gets or sets the data for the output [Connector](Nodify_Connector)s of this control.
```csharp
public IEnumerable Output { get; set; }
```
**Property Value**
[IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.IEnumerable)
### OutputConnectorTemplate
Gets or sets the template used to display the content of the control's [Node.Output](Nodify_Node#output) connectors.
```csharp
public DataTemplate OutputConnectorTemplate { get; set; }
```
**Property Value**
[DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate)
### OutputGroupStyle
```csharp
public ObservableCollection<GroupStyle> OutputGroupStyle { get; set; }
```
**Property Value**
[ObservableCollection\<GroupStyle\>](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.ObjectModel.ObservableCollection-1)
### OutputItemsControl
```csharp
protected ItemsControl OutputItemsControl { get; set; }
```
**Property Value**
[ItemsControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ItemsControl)
## Methods
### OnApplyTemplate()
```csharp
public override void OnApplyTemplate();
```

View File

@@ -0,0 +1,72 @@
# NodeInput Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [Connector](Nodify_Connector) → [NodeInput](Nodify_NodeInput)
**References:** [Node](Nodify_Node)
Represents the default control for the [Node.InputConnectorTemplate](Nodify_Node#inputconnectortemplate).
```csharp
public class NodeInput : Connector
```
## Constructors
### NodeInput()
```csharp
public NodeInput();
```
## Properties
### ConnectorTemplate
Gets or sets the template used to display the connecting point of this [Connector](Nodify_Connector).
```csharp
public ControlTemplate ConnectorTemplate { get; set; }
```
**Property Value**
[ControlTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ControlTemplate)
### Header
Gets of sets the data used for the control's header.
```csharp
public object Header { get; set; }
```
**Property Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### HeaderTemplate
Gets or sets the template used to display the content of the control's header.
```csharp
public DataTemplate HeaderTemplate { get; set; }
```
**Property Value**
[DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate)
### Orientation
```csharp
public Orientation Orientation { get; set; }
```
**Property Value**
[Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation)

View File

@@ -0,0 +1,72 @@
# NodeOutput Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [Connector](Nodify_Connector) → [NodeOutput](Nodify_NodeOutput)
**References:** [Node](Nodify_Node)
Represents the default control for the [Node.OutputConnectorTemplate](Nodify_Node#outputconnectortemplate).
```csharp
public class NodeOutput : Connector
```
## Constructors
### NodeOutput()
```csharp
public NodeOutput();
```
## Properties
### ConnectorTemplate
Gets or sets the template used to display the connecting point of this [Connector](Nodify_Connector).
```csharp
public ControlTemplate ConnectorTemplate { get; set; }
```
**Property Value**
[ControlTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ControlTemplate)
### Header
Gets of sets the data used for the control's header.
```csharp
public object Header { get; set; }
```
**Property Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### HeaderTemplate
Gets or sets the template used to display the content of the control's header.
```csharp
public DataTemplate HeaderTemplate { get; set; }
```
**Property Value**
[DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate)
### Orientation
```csharp
public Orientation Orientation { get; set; }
```
**Property Value**
[Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation)

View File

@@ -0,0 +1,68 @@
# NodifyCanvas Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Panel](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Panel) → [NodifyCanvas](Nodify_NodifyCanvas)
**References:** [INodifyCanvasItem](Nodify_INodifyCanvasItem)
A canvas like panel that works with [INodifyCanvasItem](Nodify_INodifyCanvasItem)s.
```csharp
public class NodifyCanvas : Panel
```
## Constructors
### NodifyCanvas()
```csharp
public NodifyCanvas();
```
## Properties
### Extent
The area covered by the children of this panel.
```csharp
public Rect Extent { get; set; }
```
**Property Value**
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
## Methods
### ArrangeOverride(Size)
```csharp
protected override Size ArrangeOverride(Size arrangeSize);
```
**Parameters**
`arrangeSize` [Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
**Returns**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
### MeasureOverride(Size)
```csharp
protected override Size MeasureOverride(Size constraint);
```
**Parameters**
`constraint` [Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
**Returns**
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,345 @@
# PendingConnection Class
**Namespace:** Nodify
**Assembly:** Nodify
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ContentControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ContentControl) → [PendingConnection](Nodify_PendingConnection)
**References:** [ConnectionDirection](Nodify_ConnectionDirection), [Connector](Nodify_Connector), [HotKeysDisplayMode](Nodify_HotKeysDisplayMode), [ItemContainer](Nodify_ItemContainer), [NodifyEditor](Nodify_NodifyEditor), [PendingConnectionEventArgs](Nodify_Events_PendingConnectionEventArgs), [PendingConnectionEventHandler](Nodify_Events_PendingConnectionEventHandler), [StateNode](Nodify_StateNode)
Represents a pending connection usually started by a [Connector](Nodify_Connector) which invokes the [PendingConnection.CompletedCommand](Nodify_PendingConnection#completedcommand) when completed.
```csharp
public class PendingConnection : ContentControl
```
## Constructors
### PendingConnection()
```csharp
public PendingConnection();
```
## Properties
### AllowOnlyConnectors
If true will preview and connect only to [Connector](Nodify_Connector)s, otherwise will also enable [ItemContainer](Nodify_ItemContainer)s.
```csharp
public bool AllowOnlyConnectors { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### CompletedCommand
Gets or sets the command to invoke when the pending connection is completed.
Will not be invoked if [NodifyEditor.ConnectionCompletedCommand](Nodify_NodifyEditor#connectioncompletedcommand) is used.
[PendingConnection.Target](Nodify_PendingConnection#target) will be set to the desired [Connector](Nodify_Connector)'s [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) and will also be the command's parameter.
```csharp
public ICommand CompletedCommand { get; set; }
```
**Property Value**
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
### Direction
Gets or sets the direction of this connection.
```csharp
public ConnectionDirection Direction { get; set; }
```
**Property Value**
[ConnectionDirection](Nodify_ConnectionDirection)
### Editor
Gets the [NodifyEditor](Nodify_NodifyEditor) that owns this [PendingConnection](Nodify_PendingConnection).
```csharp
protected NodifyEditor Editor { get; set; }
```
**Property Value**
[NodifyEditor](Nodify_NodifyEditor)
### EnableHitTesting
Gets or sets whether hit testing is enabled for pending connections.
```csharp
public static bool EnableHitTesting { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### EnablePreview
[PendingConnection.PreviewTarget](Nodify_PendingConnection#previewtarget) will be updated with a potential [Connector](Nodify_Connector)'s [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) if this is true.
```csharp
public bool EnablePreview { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### EnableSnapping
Enables snapping the [PendingConnection.TargetAnchor](Nodify_PendingConnection#targetanchor) to a possible [PendingConnection.Target](Nodify_PendingConnection#target) connector.
```csharp
public bool EnableSnapping { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### HotKeysDisplayMode
Gets or sets whether hotkeys are enabled for pending connections.
```csharp
public static HotKeysDisplayMode HotKeysDisplayMode { get; set; }
```
**Property Value**
[HotKeysDisplayMode](Nodify_HotKeysDisplayMode)
### IsVisible
Gets or sets the visibility of the connection.
```csharp
public bool IsVisible { get; set; }
```
**Property Value**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### MaxHotKeys
Gets or sets the maximum number of hotkeys that can be displayed for a pending connection.
```csharp
public static uint MaxHotKeys { get; set; }
```
**Property Value**
[UInt32](https://docs.microsoft.com/en-us/dotnet/api/System.UInt32)
### PreviewTarget
Gets or sets the [Connector](Nodify_Connector) or the [ItemContainer](Nodify_ItemContainer) (if [PendingConnection.AllowOnlyConnectors](Nodify_PendingConnection#allowonlyconnectors) is false) that we're previewing. See [PendingConnection.EnablePreview](Nodify_PendingConnection#enablepreview).
```csharp
public object PreviewTarget { get; set; }
```
**Property Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### Source
Gets or sets the [Connector](Nodify_Connector)'s [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) that started this pending connection.
```csharp
public object Source { get; set; }
```
**Property Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### SourceAnchor
Gets or sets the starting point for the connection.
```csharp
public Point SourceAnchor { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
### StartedCommand
Gets or sets the command to invoke when the pending connection is started.
Will not be invoked if [NodifyEditor.ConnectionStartedCommand](Nodify_NodifyEditor#connectionstartedcommand) is used.
[PendingConnection.Source](Nodify_PendingConnection#source) will be set to the [Connector](Nodify_Connector)'s [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) that started this connection and will also be the command's parameter.
```csharp
public ICommand StartedCommand { get; set; }
```
**Property Value**
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
### Stroke
Gets or sets the stroke color of the connection.
```csharp
public Brush Stroke { get; set; }
```
**Property Value**
[Brush](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Brush)
### StrokeDashArray
Gets or sets the pattern of dashes and gaps that is used to outline the connection.
```csharp
public DoubleCollection StrokeDashArray { get; set; }
```
**Property Value**
[DoubleCollection](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.DoubleCollection)
### StrokeThickness
Gets or set the connection thickness.
```csharp
public double StrokeThickness { get; set; }
```
**Property Value**
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
### Target
Gets or sets the [Connector](Nodify_Connector)'s [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) (or potentially an [ItemContainer](Nodify_ItemContainer)'s [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) if [PendingConnection.AllowOnlyConnectors](Nodify_PendingConnection#allowonlyconnectors) is false) that the [PendingConnection.Source](Nodify_PendingConnection#source) can connect to.
Only set when the connection is completed (see [PendingConnection.CompletedCommand](Nodify_PendingConnection#completedcommand)).
```csharp
public object Target { get; set; }
```
**Property Value**
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
### TargetAnchor
Gets or sets the end point for the connection.
```csharp
public Point TargetAnchor { get; set; }
```
**Property Value**
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
## Methods
### FindConnectionTarget(Point)
Searches for a potential [Connector](Nodify_Connector) or [ItemContainer](Nodify_ItemContainer) at the specified position within the editor.
```csharp
public FrameworkElement FindConnectionTarget(Point position);
```
**Parameters**
`position` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
**Returns**
[FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement)
### GetIsOverElement(UIElement)
```csharp
public static bool GetIsOverElement(UIElement elem);
```
**Parameters**
`elem` [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement)
**Returns**
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
### OnApplyTemplate()
```csharp
public override void OnApplyTemplate();
```
### OnPendingConnectionCompleted(Object, PendingConnectionEventArgs)
```csharp
protected virtual void OnPendingConnectionCompleted(object sender, PendingConnectionEventArgs e);
```
**Parameters**
`sender` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
`e` [PendingConnectionEventArgs](Nodify_Events_PendingConnectionEventArgs)
### OnPendingConnectionDrag(Object, PendingConnectionEventArgs)
```csharp
protected virtual void OnPendingConnectionDrag(object sender, PendingConnectionEventArgs e);
```
**Parameters**
`sender` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
`e` [PendingConnectionEventArgs](Nodify_Events_PendingConnectionEventArgs)
### OnPendingConnectionStarted(Object, PendingConnectionEventArgs)
```csharp
protected virtual void OnPendingConnectionStarted(object sender, PendingConnectionEventArgs e);
```
**Parameters**
`sender` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
`e` [PendingConnectionEventArgs](Nodify_Events_PendingConnectionEventArgs)
### SetIsOverElement(UIElement, Boolean)
```csharp
public static void SetIsOverElement(UIElement elem, bool value);
```
**Parameters**
`elem` [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement)
`value` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)

Some files were not shown because too many files have changed in this diff Show More