reckfellENGINE

GraphEdit

Graph editor for element layout and directed connection display, separate from model storage and execution.

On this page
class GraphEditReckfellSharpInherits Control

GraphEdit is editor UI rather than a graph executor. Add GraphNode/GraphFrame as direct children. Keep your own element/connection model and rebuild the display from it. Update the model and UI consistently; onscreen lines do not themselves invoke methods or transmit game data.

A connection is a directed tuple (fromNode, fromPort, toNode, toPort). Names are child GraphNode Name values; fromPort is a dense output index and toPort a dense input index rather than row slotIndex. Recalculate mappings after port changes and rebuild connections from stable model keys. Explicitly update connection records when renaming Name.

A user gesture emits ConnectionRequest. Validate element existence, port ranges, types, cycle policy and connection limits in the handler, then commit the model edge and call ConnectNode. DisconnectionRequest similarly requires handling and DisconnectNode. Programmatic ConnectNode/DisconnectNode/ClearConnections do not themselves emit these request signals.

ConnectNode returns Error, but Ok does not prove that elements/ports exist or the edge is semantically valid. The method can store unresolved names and bypasses UI allowed-type filtering. Repeating a tuple returns Ok without a duplicate or keepAlive update: remove and recreate the record to change that flag.

AddValidConnectionType registers a directed type pair for UI candidates. Equal types normally pass a separate interactive-connection rule; IsValidConnectionType checks only explicitly registered pairs and can therefore return false for equal types. This is not a complete test of whether two specific ports can connect.

GetConnectionList returns an array/dictionary snapshot with from_node, from_port, to_node, to_port and keep_alive. Editing the snapshot does not edit the graph. Connections/SetConnections replaces the entire list after clearing the old one; validate all fields and endpoints before assigning. Prefer your own project schema with stable port IDs rather than current UI indices for persistence.

GetConnectionCount matches an element/port number on either endpoint, without a direction argument. GetConnectionListFromNode includes incoming and outgoing edges; From does not mean outbound only. Do not call it for an arbitrary isolated name lacking a connection-map entry: filter GetConnectionList for a safe general traversal.

keepAlive retains a record when a GraphNode is temporarily missing during display updates. It neither keeps an Entity alive nor creates elements or makes an invalid port index safe. SetConnectionActivity changes an existing line’s presentation rather than executing the graph. RightDisconnects and disconnect-type lists control UI gestures; they neither block programmatic DisconnectNode nor mean the right mouse button.

Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.

Constructors1

GraphEditConstructor
# GraphEdit
C#
public GraphEdit();

Creates a graph-editor Control with an internal toolbar and minimap. The application adds its model and GraphNode objects; internal children are not model elements.

Properties28

ArrangeNodesButtonHiddenProperty
# ArrangeNodesButtonHidden
C#
public bool ArrangeNodesButtonHidden { get; set; }

Legacy inverted property: true means ShowArrangeButton = false. Use ShowArrangeButton in new code to avoid double negatives.

ConnectionLinesAntialiasedProperty
# ConnectionLinesAntialiased
C#
public bool ConnectionLinesAntialiased { get; set; }

Requests antialiasing for GraphEdit lines. Not global MSAA/TAA and does not guarantee antialiasing of text, grid or unrelated elements.

ConnectionLinesCurvatureProperty
# ConnectionLinesCurvature
C#
public float ConnectionLinesCurvature { get; set; }

Connection-line curvature factor. Setter stores the value without a sign clamp; use a suitable nonnegative factor for ordinary presentation. Does not change connection data.

ConnectionLinesThicknessProperty
# ConnectionLinesThickness
C#
public float ConnectionLinesThickness { get; set; }

Line thickness in local presentation units. Accepts 0 or greater; negative values are rejected. Does not change types, connection counts or element scale.

ConnectionsProperty
# Connections
C#
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> Connections { get; set; }

Connection-list snapshot. Assignment replaces the entire list and clears the old one first. Each Dictionary must contain from_node, from_port, to_node, to_port, keep_alive; validate beforehand. Not a mutable live collection.

GridPatternProperty
# GridPattern
C#
public GraphEdit.GridPatternEnum GridPattern { get; set; }

Grid presentation: Lines or Dots, default Lines. Changes the background rather than connection rules or snap spacing.

MinimapEnabledProperty
# MinimapEnabled
C#
public bool MinimapEnabled { get; set; }

Enables the minimap display. Independent of ShowMinimapButton: a hidden button does not imply a disabled minimap. Does not create a second graph model.

MinimapOpacityProperty
# MinimapOpacity
C#
public float MinimapOpacity { get; set; }

Minimap alpha. Normally use 0…1; setter also stores out-of-range values without normalization. Zero alpha is not equivalent to disabling the minimap/its input.

MinimapSizeProperty
# MinimapSize
C#
public Vector2 MinimapSize { get; set; }

Minimap Control size in local UI units, constrained by its minimum. Smaller requests are enlarged; read actual size through the getter. Not a graph-coordinate scale.

PanningSchemeProperty
# PanningScheme
C#
public GraphEdit.PanningSchemeEnum PanningScheme { get; set; }

Wheel policy: Zooms zooms with the wheel and pans with Ctrl; Pans swaps those actions. Does not change model coordinates or disable programmatic Zoom/ScrollOffset.

RightDisconnectsProperty
# RightDisconnects
C#
public bool RightDisconnects { get; set; }

Allows UI reconnection from an input port, default false. Does not mean the right mouse button or remove the record without application request handling.

ScrollOffsetProperty
# ScrollOffset
C#
public Vector2 ScrollOffset { get; set; }

View offset in GraphEdit-local units after zoom; element Position is PositionOffset × Zoom − ScrollOffset. Setter constrains the value to the current scroll range and defers position updates. Read back the actual value; programmatic assignment can emit ScrollOffsetChanged.

ShowArrangeButtonProperty
# ShowArrangeButton
C#
public bool ShowArrangeButton { get; set; }

Show the automatic arrangement button. Does not invoke ArrangeNodes or block programmatic calls.

ShowGridProperty
# ShowGrid
C#
public bool ShowGrid { get; set; }

Show background grid lines/dots, default true. Independent of SnappingEnabled: snapping can remain active while the grid is hidden.

ShowGridButtonsProperty
# ShowGridButtons
C#
public bool ShowGridButtons { get; set; }

Show grid/snapping controls. Hiding them does not reset ShowGrid, SnappingEnabled or SnappingDistance.

ShowMenuProperty
# ShowMenu
C#
public bool ShowMenu { get; set; }

Show the built-in toolbar. false hides the panel rather than prohibiting programmatic operations, panning or graph actions.

ShowMinimapButtonProperty
# ShowMinimapButton
C#
public bool ShowMinimapButton { get; set; }

Show the minimap toggle button. Does not change MinimapEnabled.

ShowZoomButtonsProperty
# ShowZoomButtons
C#
public bool ShowZoomButtons { get; set; }

Show zoom-out/reset/zoom-in buttons. Does not prevent programmatic or wheel zoom.

ShowZoomLabelProperty
# ShowZoomLabel
C#
public bool ShowZoomLabel { get; set; }

Show the current zoom label. Text visibility rather than a Zoom value setting.

SnapDistanceProperty
# SnapDistance
C#
public int SnapDistance { get; set; }

Legacy name for SnappingDistance. Use SnappingDistance; it has the same spacing and constraints.

SnappingDistanceProperty
# SnappingDistance
C#
public int SnappingDistance { get; set; }

Snap spacing in graph coordinates before zoom, default 20. With the standard grid scale, use 2…100 inclusive. Setter does not automatically move existing elements onto the grid.

SnappingEnabledProperty
# SnappingEnabled
C#
public bool SnappingEnabled { get; set; }

Snap user movement/resize to the grid, default true. Does not enable ShowGrid or round programmatic GraphElement.PositionOffset. Ctrl can temporarily alter snapping during standard interaction.

TypeNamesProperty
# TypeNames
C#
public Reckfell.Collections.Dictionary TypeNames { get; set; }

Shared Dictionary mapping integer types to labels. Getter/setter do not deeply copy the container. Editing labels does not register allowed connection-type pairs; use AddValidConnectionType separately.

UseSnapProperty
# UseSnap
C#
public bool UseSnap { get; set; }

Legacy name for SnappingEnabled. Use SnappingEnabled in new code; both share the same flag and behavior.

ZoomProperty
# Zoom
C#
public float Zoom { get; set; }

Scale multiplier, default 1. Clamped to ZoomMin/ZoomMax. In a visible GraphEdit, zoom preserves the point under the view center, so ScrollOffset can change. Do not pre-multiply model PositionOffset.

ZoomMaxProperty
# ZoomMax
C#
public float ZoomMax { get; set; }

Upper Zoom bound. Use a positive value no smaller than ZoomMin; setter reclamps current Zoom. Not the maximum graph coordinate.

ZoomMinProperty
# ZoomMin
C#
public float ZoomMin { get; set; }

Lower Zoom bound. Use a positive value no greater than ZoomMax; setter reclamps current Zoom. Set compatible bounds in a suitable order when expanding the range.

ZoomStepProperty
# ZoomStep
C#
public float ZoomStep { get; set; }

Multiplier for one zoom step, default 1.2. Use a finite value > 1; negative input becomes its absolute value. Changing the step does not recompute existing ZoomMin/ZoomMax.

Methods83

AddValidConnectionTypevoid
# AddValidConnectionType
C#
public void AddValidConnectionType(int fromType, int toType);

Adds a directed fromType → toType pair for UI candidate filtering. Creates neither an edge nor the reverse pair. ConnectNode does not enforce this check for your application.

Parameters
NameTypeDefault
fromTypeint—
toTypeint—
fromType

Integer output type.

toType

Integer input type.

AddValidLeftDisconnectTypevoid
# AddValidLeftDisconnectType
C#
public void AddValidLeftDisconnectType(int type);

Allows UI reconnection for a port type from the output side. Does not call DisconnectNode or change existing records.

Parameters
NameTypeDefault
typeint—
type

Integer port category for the UI policy.

AddValidRightDisconnectTypevoid
# AddValidRightDisconnectType
C#
public void AddValidRightDisconnectType(int type);

Allows UI reconnection for a port type from the input side. Does not call DisconnectNode or change existing records.

Parameters
NameTypeDefault
typeint—
type

Integer port category for the UI policy.

ArrangeNodesvoid
# ArrangeNodes
C#
public void ArrangeNodes();

Automatically arranges selected direct GraphNode children, or all GraphNodes when none is selected. Changes PositionOffset and emits BeginNodeMove/EndNodeMove without creating edges or recording application undo. Capture coordinates before and commit the result after to create one undo action.

AttachGraphElementToFramevoid
# AttachGraphElementToFrame
C#
public void AttachGraphElementToFrame(StringName element, StringName frame);

Links a direct GraphElement to a direct GraphFrame by their Name values. Neither reparents nor transfers ownership. Detach before moving to another frame and prevent grouping cycles. Can recompute the frame bounds.

Parameters
NameTypeDefault
elementStringName—
frameStringName—
element

Direct GraphElement Name rather than Title or child index.

frame

Direct GraphFrame Name; for FrameRectChanged, the shared graph-owned frame object.

ClearConnectionsvoid
# ClearConnections
C#
public void ClearConnections();

Removes all connection records/lines while retaining GraphNode objects. Emits no per-edge disconnection request.

ConnectNode2 overloads
# ConnectNode · 1/2
C#
public Error ConnectNode(StringName fromNode, int fromPort, StringName toNode, int toPort);

Short ConnectNode overload with keepAlive = false. Stores an edge without model validation or ConnectionRequest.

Parameters
NameTypeDefault
fromNodeStringName—
fromPortint—
toNodeStringName—
toPortint—
fromNode

Source GraphNode Name: an identifier separate from Title.

fromPort

Dense source output index rather than row slotIndex.

toNode

Destination GraphNode Name: an identifier separate from Title.

toPort

Dense destination input index rather than row slotIndex.

Returns Error

Error.Ok when stored or already present; not a model-validation result.

# ConnectNode · 2/2
C#
public Error ConnectNode(StringName fromNode, int fromPort, StringName toNode, int toPort, bool keepAlive = false);

Stores a directed edge and creates its display. Emits no ConnectionRequest and does not validate your model, endpoint existence/port ranges or UI type pairs. A repeated tuple returns Ok without changing keepAlive. Validate endpoints before calling.

Parameters
NameTypeDefault
fromNodeStringName—
fromPortint—
toNodeStringName—
toPortint—
keepAliveboolfalse
fromNode

Source GraphNode Name: an identifier separate from Title.

fromPort

Dense source output index rather than row slotIndex.

toNode

Destination GraphNode Name: an identifier separate from Title.

toPort

Dense destination input index rather than row slotIndex.

keepAlive

Retain the record when a GraphNode is temporarily missing. Does not retain Entity memory or permit invalid ports.

Returns Error

Error.Ok when stored or already present; not a model-validation result.

DetachGraphElementFromFramevoid
# DetachGraphElementFromFrame
C#
public void DetachGraphElementFromFrame(StringName element);

Removes grouping while retaining objects as GraphEdit children. Does nothing for an unlinked name; can recompute the previous frame bounds.

Parameters
NameTypeDefault
elementStringName—
element

Direct GraphElement Name rather than Title or child index.

DisconnectNodevoid
# DisconnectNode
C#
public void DisconnectNode(StringName fromNode, int fromPort, StringName toNode, int toPort);

Removes the exact tuple if present; missing tuples are ignored. Emits no DisconnectionRequest and does not delete GraphNode objects/model data.

Parameters
NameTypeDefault
fromNodeStringName—
fromPortint—
toNodeStringName—
toPortint—
fromNode

Source GraphNode Name: an identifier separate from Title.

fromPort

Dense source output index rather than row slotIndex.

toNode

Destination GraphNode Name: an identifier separate from Title.

toPort

Dense destination input index rather than row slotIndex.

ForceConnectionDragEndvoid
# ForceConnectionDragEnd
C#
public void ForceConnectionDragEnd();

Forces an already active gesture to end and emits ConnectionDragEnded. Calling without an active drag is an error. Does not delete stored edges or roll back your model.

GetAttachedNodesOfFrameReckfell.Collections.Array<StringName>
# GetAttachedNodesOfFrame
C#
public Reckfell.Collections.Array<StringName> GetAttachedNodesOfFrame(StringName frame);

Returns a snapshot of group element names rather than tree objects. Empty for an unknown group. Order is not a stable model index; editing the array does not change membership.

Parameters
NameTypeDefault
frameStringName—
frame

Direct GraphFrame Name; for FrameRectChanged, the shared graph-owned frame object.

Returns Reckfell.Collections.Array<StringName>

Returns a snapshot of group element names rather than tree objects. Empty for an unknown group. Order is not a stable model index; editing the array does not change membership.

GetClosestConnectionAtPointReckfell.Collections.Dictionary
# GetClosestConnectionAtPoint
C#
public Reckfell.Collections.Dictionary GetClosestConnectionAtPoint(Vector2 point, float maxDistance = 4f);

Finds the closest line at a GraphEdit-local point with nonnegative maxDistance tolerance in UI units. Returns a five-field connection Dictionary snapshot or an empty dictionary. Requires an up-to-date line cache after layout; does not validate model port existence/types.

Parameters
NameTypeDefault
pointVector2—
maxDistancefloat4f
point

GraphEdit-local position rather than PositionOffset or OS coordinates.

maxDistance

Nonnegative line-search tolerance in local UI units.

Returns Reckfell.Collections.Dictionary

Finds the closest line at a GraphEdit-local point with nonnegative maxDistance tolerance in UI units. Returns a five-field connection Dictionary snapshot or an empty dictionary. Requires an up-to-date line cache after layout; does not validate model port existence/types.

GetConnectionCountint
# GetConnectionCount
C#
public int GetConnectionCount(StringName fromNode, int fromPort);

Count of edges matching the name and port number on either endpoint. Does not distinguish input/output with the same number; filter dictionaries to count one side.

Parameters
NameTypeDefault
fromNodeStringName—
fromPortint—
fromNode

Element Name to match on either endpoint.

fromPort

Port number matched on both endpoints; input and output with the same number are not separated.

Returns int

Count of incident name/port-number matches.

GetConnectionLineVector2[]
# GetConnectionLine
C#
public Vector2[] GetConnectionLine(Vector2 fromNode, Vector2 toNode);

Computes line points for two supplied positions in one coordinate space. fromNode/toNode here are Vector2 positions rather than element names. Calls an overridden _GetConnectionLine; does not create a connection record.

Parameters
NameTypeDefault
fromNodeVector2—
toNodeVector2—
fromNode

Source GraphNode Name; only in GetConnectionLine this is a Vector2 position rather than a name.

toNode

Destination GraphNode Name; only in GetConnectionLine this is a Vector2 position rather than a name.

Returns Vector2[]

Computes line points for two supplied positions in one coordinate space. fromNode/toNode here are Vector2 positions rather than element names. Calls an overridden _GetConnectionLine; does not create a connection record.

GetConnectionLinesCurvaturefloat
# GetConnectionLinesCurvature
C#
public float GetConnectionLinesCurvature();

Connection-line curvature factor. Setter stores the value without a sign clamp; use a suitable nonnegative factor for ordinary presentation. Does not change connection data.

Returns float

Connection-line curvature factor. Setter stores the value without a sign clamp; use a suitable nonnegative factor for ordinary presentation. Does not change connection data.

GetConnectionLinesThicknessfloat
# GetConnectionLinesThickness
C#
public float GetConnectionLinesThickness();

Line thickness in local presentation units. Accepts 0 or greater; negative values are rejected. Does not change types, connection counts or element scale.

Returns float

Line thickness in local presentation units. Accepts 0 or greater; negative values are rejected. Does not change types, connection counts or element scale.

GetConnectionListReckfell.Collections.Array<Reckfell.Collections.Dictionary>
# GetConnectionList
C#
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> GetConnectionList();

Returns an independent dictionary snapshot: from_node, from_port, to_node, to_port, keep_alive. Editing the array/dictionaries does not change the graph. These are UI edges rather than an automatically persisted model.

Returns Reckfell.Collections.Array<Reckfell.Collections.Dictionary>

Returns an independent dictionary snapshot: from_node, from_port, to_node, to_port, keep_alive. Editing the array/dictionaries does not change the graph. These are UI edges rather than an automatically persisted model.

GetConnectionListFromNodeReckfell.Collections.Array<Reckfell.Collections.Dictionary>
# GetConnectionListFromNode
C#
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> GetConnectionListFromNode(StringName node);

Returns a snapshot of all incident edges, including incoming ones. Requires a name entry in the connection map; filter GetConnectionList instead for an arbitrary isolated element.

Parameters
NameTypeDefault
nodeStringName—
node

Element Name with a connection-map entry; results include both directions.

Returns Reckfell.Collections.Array<Reckfell.Collections.Dictionary>

Returns a snapshot of all incident edges, including incoming ones. Requires a name entry in the connection map; filter GetConnectionList instead for an arbitrary isolated element.

GetConnectionsIntersectingWithRectReckfell.Collections.Array<Reckfell.Collections.Dictionary>
# GetConnectionsIntersectingWithRect
C#
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> GetConnectionsIntersectingWithRect(Rect2 rect);

Returns connection snapshots whose geometry intersects a GraphEdit-local rectangle. A cached line-geometry query rather than selection of all elements inside a box or connection mutation.

Parameters
NameTypeDefault
rectRect2—
rect

GraphEdit-local rectangle for line-geometry intersection.

Returns Reckfell.Collections.Array<Reckfell.Collections.Dictionary>

Returns connection snapshots whose geometry intersects a GraphEdit-local rectangle. A cached line-geometry query rather than selection of all elements inside a box or connection mutation.

GetElementFrameGraphFrame
# GetElementFrame
C#
public GraphFrame GetElementFrame(StringName element);

Returns the element’s shared frame object, or null. Ownership is unchanged; do not free the frame as a temporary getter result.

Parameters
NameTypeDefault
elementStringName—
element

Direct GraphElement Name rather than Title or child index.

Returns GraphFrame

Returns the element’s shared frame object, or null. Ownership is unchanged; do not free the frame as a temporary getter result.

GetGridPatternGraphEdit.GridPatternEnum
# GetGridPattern
C#
public GraphEdit.GridPatternEnum GetGridPattern();

Grid presentation: Lines or Dots, default Lines. Changes the background rather than connection rules or snap spacing.

Returns GraphEdit.GridPatternEnum

Grid presentation: Lines or Dots, default Lines. Changes the background rather than connection rules or snap spacing.

GetMenuHBoxHBoxContainer
# GetMenuHBox
C#
public HBoxContainer GetMenuHBox();

Returns the shared internal toolbar HBoxContainer. Add your buttons without freeing or reparenting the container itself; GraphEdit owns its lifetime.

Returns HBoxContainer

Returns the shared internal toolbar HBoxContainer. Add your buttons without freeing or reparenting the container itself; GraphEdit owns its lifetime.

GetMinimapOpacityfloat
# GetMinimapOpacity
C#
public float GetMinimapOpacity();

Minimap alpha. Normally use 0…1; setter also stores out-of-range values without normalization. Zero alpha is not equivalent to disabling the minimap/its input.

Returns float

Minimap alpha. Normally use 0…1; setter also stores out-of-range values without normalization. Zero alpha is not equivalent to disabling the minimap/its input.

GetMinimapSizeVector2
# GetMinimapSize
C#
public Vector2 GetMinimapSize();

Minimap Control size in local UI units, constrained by its minimum. Smaller requests are enlarged; read actual size through the getter. Not a graph-coordinate scale.

Returns Vector2

Minimap Control size in local UI units, constrained by its minimum. Smaller requests are enlarged; read actual size through the getter. Not a graph-coordinate scale.

GetPanningSchemeGraphEdit.PanningSchemeEnum
# GetPanningScheme
C#
public GraphEdit.PanningSchemeEnum GetPanningScheme();

Wheel policy: Zooms zooms with the wheel and pans with Ctrl; Pans swaps those actions. Does not change model coordinates or disable programmatic Zoom/ScrollOffset.

Returns GraphEdit.PanningSchemeEnum

Wheel policy: Zooms zooms with the wheel and pans with Ctrl; Pans swaps those actions. Does not change model coordinates or disable programmatic Zoom/ScrollOffset.

GetScrollOffsetVector2
# GetScrollOffset
C#
public Vector2 GetScrollOffset();

View offset in GraphEdit-local units after zoom; element Position is PositionOffset × Zoom − ScrollOffset. Setter constrains the value to the current scroll range and defers position updates. Read back the actual value; programmatic assignment can emit ScrollOffsetChanged.

Returns Vector2

View offset in GraphEdit-local units after zoom; element Position is PositionOffset × Zoom − ScrollOffset. Setter constrains the value to the current scroll range and defers position updates. Read back the actual value; programmatic assignment can emit ScrollOffsetChanged.

GetSnappingDistanceint
# GetSnappingDistance
C#
public int GetSnappingDistance();

Snap spacing in graph coordinates before zoom, default 20. With the standard grid scale, use 2…100 inclusive. Setter does not automatically move existing elements onto the grid.

Returns int

Snap spacing in graph coordinates before zoom, default 20. With the standard grid scale, use 2…100 inclusive. Setter does not automatically move existing elements onto the grid.

GetTypeNamesReckfell.Collections.Dictionary
# GetTypeNames
C#
public Reckfell.Collections.Dictionary GetTypeNames();

Shared Dictionary mapping integer types to labels. Getter/setter do not deeply copy the container. Editing labels does not register allowed connection-type pairs; use AddValidConnectionType separately.

Returns Reckfell.Collections.Dictionary

Shared Dictionary mapping integer types to labels. Getter/setter do not deeply copy the container. Editing labels does not register allowed connection-type pairs; use AddValidConnectionType separately.

GetZoomfloat
# GetZoom
C#
public float GetZoom();

Scale multiplier, default 1. Clamped to ZoomMin/ZoomMax. In a visible GraphEdit, zoom preserves the point under the view center, so ScrollOffset can change. Do not pre-multiply model PositionOffset.

Returns float

Scale multiplier, default 1. Clamped to ZoomMin/ZoomMax. In a visible GraphEdit, zoom preserves the point under the view center, so ScrollOffset can change. Do not pre-multiply model PositionOffset.

GetZoomHBoxHBoxContainer
# GetZoomHBox
C#
public HBoxContainer GetZoomHBox();

Legacy name for GetMenuHBox: returns the same shared toolbar container rather than a separate new zoom panel. Use GetMenuHBox and do not free the result separately.

Returns HBoxContainer

Legacy name for GetMenuHBox: returns the same shared toolbar container rather than a separate new zoom panel. Use GetMenuHBox and do not free the result separately.

GetZoomMaxfloat
# GetZoomMax
C#
public float GetZoomMax();

Upper Zoom bound. Use a positive value no smaller than ZoomMin; setter reclamps current Zoom. Not the maximum graph coordinate.

Returns float

Upper Zoom bound. Use a positive value no smaller than ZoomMin; setter reclamps current Zoom. Not the maximum graph coordinate.

GetZoomMinfloat
# GetZoomMin
C#
public float GetZoomMin();

Lower Zoom bound. Use a positive value no greater than ZoomMax; setter reclamps current Zoom. Set compatible bounds in a suitable order when expanding the range.

Returns float

Lower Zoom bound. Use a positive value no greater than ZoomMax; setter reclamps current Zoom. Set compatible bounds in a suitable order when expanding the range.

GetZoomStepfloat
# GetZoomStep
C#
public float GetZoomStep();

Multiplier for one zoom step, default 1.2. Use a finite value > 1; negative input becomes its absolute value. Changing the step does not recompute existing ZoomMin/ZoomMax.

Returns float

Multiplier for one zoom step, default 1.2. Use a finite value > 1; negative input becomes its absolute value. Changing the step does not recompute existing ZoomMin/ZoomMax.

IsArrangeNodesButtonHiddenbool
# IsArrangeNodesButtonHidden
C#
public bool IsArrangeNodesButtonHidden();

Legacy inverted property: true means ShowArrangeButton = false. Use ShowArrangeButton in new code to avoid double negatives.

Returns bool

Legacy inverted property: true means ShowArrangeButton = false. Use ShowArrangeButton in new code to avoid double negatives.

IsConnectionLinesAntialiasedbool
# IsConnectionLinesAntialiased
C#
public bool IsConnectionLinesAntialiased();

Requests antialiasing for GraphEdit lines. Not global MSAA/TAA and does not guarantee antialiasing of text, grid or unrelated elements.

Returns bool

Requests antialiasing for GraphEdit lines. Not global MSAA/TAA and does not guarantee antialiasing of text, grid or unrelated elements.

IsMinimapEnabledbool
# IsMinimapEnabled
C#
public bool IsMinimapEnabled();

Enables the minimap display. Independent of ShowMinimapButton: a hidden button does not imply a disabled minimap. Does not create a second graph model.

Returns bool

Enables the minimap display. Independent of ShowMinimapButton: a hidden button does not imply a disabled minimap. Does not create a second graph model.

IsNodeConnectedbool
# IsNodeConnected
C#
public bool IsNodeConnected(StringName fromNode, int fromPort, StringName toNode, int toPort);

Checks for the exact directed tuple. Does not prove element existence, type compatibility or line visibility.

Parameters
NameTypeDefault
fromNodeStringName—
fromPortint—
toNodeStringName—
toPortint—
fromNode

Source GraphNode Name: an identifier separate from Title.

fromPort

Dense source output index rather than row slotIndex.

toNode

Destination GraphNode Name: an identifier separate from Title.

toPort

Dense destination input index rather than row slotIndex.

Returns bool

Whether the exact directed tuple exists.

IsRightDisconnectsEnabledbool
# IsRightDisconnectsEnabled
C#
public bool IsRightDisconnectsEnabled();

Allows UI reconnection from an input port, default false. Does not mean the right mouse button or remove the record without application request handling.

Returns bool

Allows UI reconnection from an input port, default false. Does not mean the right mouse button or remove the record without application request handling.

IsShowingArrangeButtonbool
# IsShowingArrangeButton
C#
public bool IsShowingArrangeButton();

Show the automatic arrangement button. Does not invoke ArrangeNodes or block programmatic calls.

Returns bool

Show the automatic arrangement button. Does not invoke ArrangeNodes or block programmatic calls.

IsShowingGridbool
# IsShowingGrid
C#
public bool IsShowingGrid();

Show background grid lines/dots, default true. Independent of SnappingEnabled: snapping can remain active while the grid is hidden.

Returns bool

Show background grid lines/dots, default true. Independent of SnappingEnabled: snapping can remain active while the grid is hidden.

IsShowingGridButtonsbool
# IsShowingGridButtons
C#
public bool IsShowingGridButtons();

Show grid/snapping controls. Hiding them does not reset ShowGrid, SnappingEnabled or SnappingDistance.

Returns bool

Show grid/snapping controls. Hiding them does not reset ShowGrid, SnappingEnabled or SnappingDistance.

IsShowingMenubool
# IsShowingMenu
C#
public bool IsShowingMenu();

Show the built-in toolbar. false hides the panel rather than prohibiting programmatic operations, panning or graph actions.

Returns bool

Show the built-in toolbar. false hides the panel rather than prohibiting programmatic operations, panning or graph actions.

IsShowingMinimapButtonbool
# IsShowingMinimapButton
C#
public bool IsShowingMinimapButton();

Show the minimap toggle button. Does not change MinimapEnabled.

Returns bool

Show the minimap toggle button. Does not change MinimapEnabled.

IsShowingZoomButtonsbool
# IsShowingZoomButtons
C#
public bool IsShowingZoomButtons();

Show zoom-out/reset/zoom-in buttons. Does not prevent programmatic or wheel zoom.

Returns bool

Show zoom-out/reset/zoom-in buttons. Does not prevent programmatic or wheel zoom.

IsShowingZoomLabelbool
# IsShowingZoomLabel
C#
public bool IsShowingZoomLabel();

Show the current zoom label. Text visibility rather than a Zoom value setting.

Returns bool

Show the current zoom label. Text visibility rather than a Zoom value setting.

IsSnappingEnabledbool
# IsSnappingEnabled
C#
public bool IsSnappingEnabled();

Snap user movement/resize to the grid, default true. Does not enable ShowGrid or round programmatic GraphElement.PositionOffset. Ctrl can temporarily alter snapping during standard interaction.

Returns bool

Snap user movement/resize to the grid, default true. Does not enable ShowGrid or round programmatic GraphElement.PositionOffset. Ctrl can temporarily alter snapping during standard interaction.

IsValidConnectionTypebool
# IsValidConnectionType
C#
public bool IsValidConnectionType(int fromType, int toType);

Checks only a registered type pair rather than complete connection validity. Can return false for equal types without AddValidConnectionType although UI permits them through a separate rule.

Parameters
NameTypeDefault
fromTypeint—
toTypeint—
fromType

Integer output type.

toType

Integer input type.

Returns bool

Whether this exact directed type pair is registered.

RemoveValidConnectionTypevoid
# RemoveValidConnectionType
C#
public void RemoveValidConnectionType(int fromType, int toType);

Removes an explicitly allowed directed pair. Does not delete existing lines; equal types can still pass a separate UI rule.

Parameters
NameTypeDefault
fromTypeint—
toTypeint—
fromType

Integer output type.

toType

Integer input type.

RemoveValidLeftDisconnectTypevoid
# RemoveValidLeftDisconnectType
C#
public void RemoveValidLeftDisconnectType(int type);

Removes the UI reconnection permission for a type on the output side. Does not delete edges or block programmatic DisconnectNode.

Parameters
NameTypeDefault
typeint—
type

Integer port category for the UI policy.

RemoveValidRightDisconnectTypevoid
# RemoveValidRightDisconnectType
C#
public void RemoveValidRightDisconnectType(int type);

Removes the UI reconnection permission for a type on the input side. Does not delete edges or block programmatic DisconnectNode.

Parameters
NameTypeDefault
typeint—
type

Integer port category for the UI policy.

SetArrangeNodesButtonHiddenvoid
# SetArrangeNodesButtonHidden
C#
public void SetArrangeNodesButtonHidden(bool enable);

Legacy inverted property: true means ShowArrangeButton = false. Use ShowArrangeButton in new code to avoid double negatives.

Parameters
NameTypeDefault
enablebool—
enable

true hides the arrange button; inverse of ShowArrangeButton.

SetConnectionActivityvoid
# SetConnectionActivity
C#
public void SetConnectionActivity(StringName fromNode, int fromPort, StringName toNode, int toPort, float amount);

Sets visual activity on an existing line; normally use 0…1. Does not create an edge, transmit data or report execution. A missing tuple is ignored.

Parameters
NameTypeDefault
fromNodeStringName—
fromPortint—
toNodeStringName—
toPortint—
amountfloat—
fromNode

Source GraphNode Name: an identifier separate from Title.

fromPort

Dense source output index rather than row slotIndex.

toNode

Destination GraphNode Name: an identifier separate from Title.

toPort

Dense destination input index rather than row slotIndex.

amount

Visual activity amount, normally 0…1.

SetConnectionLinesAntialiasedvoid
# SetConnectionLinesAntialiased
C#
public void SetConnectionLinesAntialiased(bool pixels);

Requests antialiasing for GraphEdit lines. Not global MSAA/TAA and does not guarantee antialiasing of text, grid or unrelated elements.

Parameters
NameTypeDefault
pixelsbool—
pixels

Enable antialiasing; the historical pixels parameter name denotes a bool.

SetConnectionLinesCurvaturevoid
# SetConnectionLinesCurvature
C#
public void SetConnectionLinesCurvature(float curvature);

Connection-line curvature factor. Setter stores the value without a sign clamp; use a suitable nonnegative factor for ordinary presentation. Does not change connection data.

Parameters
NameTypeDefault
curvaturefloat—
curvature

Curvature factor, normally nonnegative.

SetConnectionLinesThicknessvoid
# SetConnectionLinesThickness
C#
public void SetConnectionLinesThickness(float pixels);

Line thickness in local presentation units. Accepts 0 or greater; negative values are rejected. Does not change types, connection counts or element scale.

Parameters
NameTypeDefault
pixelsfloat—
pixels

Line thickness, 0 or greater.

SetConnectionsvoid
# SetConnections
C#
public void SetConnections(Reckfell.Collections.Array<Reckfell.Collections.Dictionary> connections);

Connection-list snapshot. Assignment replaces the entire list and clears the old one first. Each Dictionary must contain from_node, from_port, to_node, to_port, keep_alive; validate beforehand. Not a mutable live collection.

Parameters
NameTypeDefault
connectionsReckfell.Collections.Array<Reckfell.Collections.Dictionary>—
connections

Validated Dictionary list with all five connection fields; replaces the entire previous list.

SetGridPatternvoid
# SetGridPattern
C#
public void SetGridPattern(GraphEdit.GridPatternEnum pattern);

Grid presentation: Lines or Dots, default Lines. Changes the background rather than connection rules or snap spacing.

Parameters
NameTypeDefault
patternGraphEdit.GridPatternEnum—
pattern

Lines or Dots.

SetMinimapEnabledvoid
# SetMinimapEnabled
C#
public void SetMinimapEnabled(bool enable);

Enables the minimap display. Independent of ShowMinimapButton: a hidden button does not imply a disabled minimap. Does not create a second graph model.

Parameters
NameTypeDefault
enablebool—
enable

Enable the specified feature/visibility.

SetMinimapOpacityvoid
# SetMinimapOpacity
C#
public void SetMinimapOpacity(float opacity);

Minimap alpha. Normally use 0…1; setter also stores out-of-range values without normalization. Zero alpha is not equivalent to disabling the minimap/its input.

Parameters
NameTypeDefault
opacityfloat—
opacity

Alpha, normally 0…1; out-of-range input is not normalized.

SetMinimapSizevoid
# SetMinimapSize
C#
public void SetMinimapSize(Vector2 size);

Minimap Control size in local UI units, constrained by its minimum. Smaller requests are enlarged; read actual size through the getter. Not a graph-coordinate scale.

Parameters
NameTypeDefault
sizeVector2—
size

Requested minimap UI size, constrained by its minimum.

SetPanningSchemevoid
# SetPanningScheme
C#
public void SetPanningScheme(GraphEdit.PanningSchemeEnum scheme);

Wheel policy: Zooms zooms with the wheel and pans with Ctrl; Pans swaps those actions. Does not change model coordinates or disable programmatic Zoom/ScrollOffset.

Parameters
NameTypeDefault
schemeGraphEdit.PanningSchemeEnum—
scheme

Zooms or Pans wheel behavior.

SetRightDisconnectsvoid
# SetRightDisconnects
C#
public void SetRightDisconnects(bool enable);

Allows UI reconnection from an input port, default false. Does not mean the right mouse button or remove the record without application request handling.

Parameters
NameTypeDefault
enablebool—
enable

Allow UI reconnection from the input side.

SetScrollOffsetvoid
# SetScrollOffset
C#
public void SetScrollOffset(Vector2 offset);

View offset in GraphEdit-local units after zoom; element Position is PositionOffset × Zoom − ScrollOffset. Setter constrains the value to the current scroll range and defers position updates. Read back the actual value; programmatic assignment can emit ScrollOffsetChanged.

Parameters
NameTypeDefault
offsetVector2—
offset

View offset after zoom rather than element PositionOffset. Read back the actual constrained value.

SetSelectedvoid
# SetSelected
C#
public void SetSelected(Entity node);

Selects the specified direct GraphElement and deselects the others. null clears selection. Respects Selectable and can emit NodeSelected/NodeDeselected even from code. Does not focus a nested input field.

Parameters
NameTypeDefault
nodeEntity—
node

Direct graph GraphElement/Entity; null clears selection for SetSelected. Does not transfer ownership.

SetShowArrangeButtonvoid
# SetShowArrangeButton
C#
public void SetShowArrangeButton(bool hidden);

Show the automatic arrangement button. Does not invoke ArrangeNodes or block programmatic calls.

Parameters
NameTypeDefault
hiddenbool—
hidden

Despite the historical hidden parameter name, true shows the UI and false hides it.

SetShowGridvoid
# SetShowGrid
C#
public void SetShowGrid(bool enable);

Show background grid lines/dots, default true. Independent of SnappingEnabled: snapping can remain active while the grid is hidden.

Parameters
NameTypeDefault
enablebool—
enable

Enable the specified feature/visibility.

SetShowGridButtonsvoid
# SetShowGridButtons
C#
public void SetShowGridButtons(bool hidden);

Show grid/snapping controls. Hiding them does not reset ShowGrid, SnappingEnabled or SnappingDistance.

Parameters
NameTypeDefault
hiddenbool—
hidden

Despite the historical hidden parameter name, true shows the UI and false hides it.

SetShowMenuvoid
# SetShowMenu
C#
public void SetShowMenu(bool hidden);

Show the built-in toolbar. false hides the panel rather than prohibiting programmatic operations, panning or graph actions.

Parameters
NameTypeDefault
hiddenbool—
hidden

Despite the historical hidden parameter name, true shows the UI and false hides it.

SetShowMinimapButtonvoid
# SetShowMinimapButton
C#
public void SetShowMinimapButton(bool hidden);

Show the minimap toggle button. Does not change MinimapEnabled.

Parameters
NameTypeDefault
hiddenbool—
hidden

Despite the historical hidden parameter name, true shows the UI and false hides it.

SetShowZoomButtonsvoid
# SetShowZoomButtons
C#
public void SetShowZoomButtons(bool hidden);

Show zoom-out/reset/zoom-in buttons. Does not prevent programmatic or wheel zoom.

Parameters
NameTypeDefault
hiddenbool—
hidden

Despite the historical hidden parameter name, true shows the UI and false hides it.

SetShowZoomLabelvoid
# SetShowZoomLabel
C#
public void SetShowZoomLabel(bool enable);

Show the current zoom label. Text visibility rather than a Zoom value setting.

Parameters
NameTypeDefault
enablebool—
enable

Enable the specified feature/visibility.

SetSnappingDistancevoid
# SetSnappingDistance
C#
public void SetSnappingDistance(int pixels);

Snap spacing in graph coordinates before zoom, default 20. With the standard grid scale, use 2…100 inclusive. Setter does not automatically move existing elements onto the grid.

Parameters
NameTypeDefault
pixelsint—
pixels

Snap spacing before zoom, 2…100 at the standard grid scale.

SetSnappingEnabledvoid
# SetSnappingEnabled
C#
public void SetSnappingEnabled(bool enable);

Snap user movement/resize to the grid, default true. Does not enable ShowGrid or round programmatic GraphElement.PositionOffset. Ctrl can temporarily alter snapping during standard interaction.

Parameters
NameTypeDefault
enablebool—
enable

Enable the specified feature/visibility.

SetTypeNamesvoid
# SetTypeNames
C#
public void SetTypeNames(Reckfell.Collections.Dictionary typeNames);

Shared Dictionary mapping integer types to labels. Getter/setter do not deeply copy the container. Editing labels does not register allowed connection-type pairs; use AddValidConnectionType separately.

Parameters
NameTypeDefault
typeNamesReckfell.Collections.Dictionary—
typeNames

Shared integer-type → label Dictionary; connection compatibility is separate.

SetZoomvoid
# SetZoom
C#
public void SetZoom(float zoom);

Scale multiplier, default 1. Clamped to ZoomMin/ZoomMax. In a visible GraphEdit, zoom preserves the point under the view center, so ScrollOffset can change. Do not pre-multiply model PositionOffset.

Parameters
NameTypeDefault
zoomfloat—
zoom

Requested scale multiplier; clamped by current ZoomMin/ZoomMax.

SetZoomMaxvoid
# SetZoomMax
C#
public void SetZoomMax(float zoomMax);

Upper Zoom bound. Use a positive value no smaller than ZoomMin; setter reclamps current Zoom. Not the maximum graph coordinate.

Parameters
NameTypeDefault
zoomMaxfloat—
zoomMax

Positive upper bound no smaller than ZoomMin.

SetZoomMinvoid
# SetZoomMin
C#
public void SetZoomMin(float zoomMin);

Lower Zoom bound. Use a positive value no greater than ZoomMax; setter reclamps current Zoom. Set compatible bounds in a suitable order when expanding the range.

Parameters
NameTypeDefault
zoomMinfloat—
zoomMin

Positive lower bound no greater than ZoomMax.

SetZoomStepvoid
# SetZoomStep
C#
public void SetZoomStep(float zoomStep);

Multiplier for one zoom step, default 1.2. Use a finite value > 1; negative input becomes its absolute value. Changing the step does not recompute existing ZoomMin/ZoomMax.

Parameters
NameTypeDefault
zoomStepfloat—
zoomStep

Finite step multiplier, normally > 1; negative values become absolute.

_GetConnectionLineVector2[]
# _GetConnectionLine
C#
public virtual Vector2[] _GetConnectionLine(Vector2 fromPosition, Vector2 toPosition);

Override line geometry. Return at least two points with finite coordinates in the same space and preserve the intended endpoints. Returns points rather than issuing draw calls. The replacement also affects connection hit queries.

Parameters
NameTypeDefault
fromPositionVector2—
toPositionVector2—
fromPosition

Line start in the chosen coordinate space.

toPosition

Line end in the same coordinate space.

Returns Vector2[]

Override line geometry. Return at least two points with finite coordinates in the same space and preserve the intended endpoints. Returns points rather than issuing draw calls. The replacement also affects connection hit queries.

_IsInInputHotzonebool
# _IsInInputHotzone
C#
public virtual bool _IsInInputHotzone(ReckfellObject inNode, int inPort, Vector2 mousePosition);

Overrides input-port hit detection. inNode is a GraphNode and inPort a dense input index. mousePosition is GraphEdit-local position divided by Zoom, not GraphNode-local position or PositionOffset. Return bool.

Parameters
NameTypeDefault
inNodeReckfellObject—
inPortint—
mousePositionVector2—
inNode

Shared GraphNode passed as ReckfellObject; do not free it in the callback.

inPort

Dense port index on the relevant side rather than slotIndex.

mousePosition

GraphEdit-local position / Zoom rather than GraphNode-local position.

Returns bool

Overrides input-port hit detection. inNode is a GraphNode and inPort a dense input index. mousePosition is GraphEdit-local position divided by Zoom, not GraphNode-local position or PositionOffset. Return bool.

_IsInOutputHotzonebool
# _IsInOutputHotzone
C#
public virtual bool _IsInOutputHotzone(ReckfellObject inNode, int inPort, Vector2 mousePosition);

Overrides output-port hit detection with mousePosition in GraphEdit-local / Zoom space. inPort here is a dense output index. Standard code excludes the resize-handle area first; the callback is not global connection validation.

Parameters
NameTypeDefault
inNodeReckfellObject—
inPortint—
mousePositionVector2—
inNode

Shared GraphNode passed as ReckfellObject; do not free it in the callback.

inPort

Dense port index on the relevant side rather than slotIndex.

mousePosition

GraphEdit-local position / Zoom rather than GraphNode-local position.

Returns bool

Overrides output-port hit detection with mousePosition in GraphEdit-local / Zoom space. inPort here is a dense output index. Standard code excludes the resize-handle area first; the callback is not global connection validation.

_IsNodeHoverValidbool
# _IsNodeHoverValid
C#
public virtual bool _IsNodeHoverValid(StringName fromNode, int fromPort, StringName toNode, int toPort);

Additional candidate check during interactive hover after standard UI conditions. Return false to reject a candidate. Direct ConnectNode does not use this as model validation; perform validation in a shared application method.

Parameters
NameTypeDefault
fromNodeStringName—
fromPortint—
toNodeStringName—
toPortint—
fromNode

Source GraphNode Name; only in GetConnectionLine this is a Vector2 position rather than a name.

fromPort

Dense output index rather than row slotIndex.

toNode

Destination GraphNode Name; only in GetConnectionLine this is a Vector2 position rather than a name.

toPort

Dense input index rather than row slotIndex.

Returns bool

Additional candidate check during interactive hover after standard UI conditions. Return false to reject a candidate. Direct ConnectNode does not use this as model validation; perform validation in a shared application method.

Signals and events19

BeginNodeMoveEvent
# BeginNodeMove
C#
public event Action BeginNodeMove;

Start of a movement group during dragging or ArrangeNodes. Capture element PositionOffset values for undo; not emitted by every PositionOffset setter.

ConnectionDragEndedEvent
# ConnectionDragEnded
C#
public event Action ConnectionDragEnded;

Connection gesture ended, including cancellation. Does not guarantee an edge was created; the ConnectionRequest handler determines acceptance.

ConnectionDragStartedEvent
# ConnectionDragStarted
C#
public event GraphEdit.ConnectionDragStartedEventHandler ConnectionDragStarted;

A connection/reconnection gesture started. isOutput identifies the starting port side. Not a stored edge or successful ConnectionRequest commit.

Handler parameters
NameTypeDefault
fromNodeStringName—
fromPortlong—
isOutputbool—
fromNode

Name of the element whose port started the gesture.

fromPort

Dense starting-port index; isOutput determines its side.

isOutput

Starting port is an output rather than input.

ConnectionFromEmptyEvent
# ConnectionFromEmpty
C#
public event GraphEdit.ConnectionFromEmptyEventHandler ConnectionFromEmpty;

A gesture from an input ended over empty space. toNode/toPort identifies the destination port; releasePosition is GraphEdit-local and can be zero for keyboard completion.

Handler parameters
NameTypeDefault
toNodeStringName—
toPortlong—
releasePositionVector2—
toNode

Destination GraphNode Name: an identifier separate from Title.

toPort

Dense destination input index rather than row slotIndex.

releasePosition

GraphEdit-local position rather than PositionOffset; can be zero for keyboard completion.

ConnectionRequestEvent
# ConnectionRequest
C#
public event GraphEdit.ConnectionRequestEventHandler ConnectionRequest;

User requested a directed connection. Validate your model, endpoints and indices, then call ConnectNode to display the accepted edge. Direct ConnectNode does not emit this signal.

Handler parameters
NameTypeDefault
fromNodeStringName—
fromPortlong—
toNodeStringName—
toPortlong—
fromNode

Source GraphNode Name: an identifier separate from Title.

fromPort

Dense source output index rather than row slotIndex.

toNode

Destination GraphNode Name: an identifier separate from Title.

toPort

Dense destination input index rather than row slotIndex.

ConnectionToEmptyEvent
# ConnectionToEmpty
C#
public event GraphEdit.ConnectionToEmptyEventHandler ConnectionToEmpty;

A gesture from an output ended over empty space; you may offer element creation. releasePosition is GraphEdit-local UI position and can be (0,0) for keyboard completion. Does not automatically create an element.

Handler parameters
NameTypeDefault
fromNodeStringName—
fromPortlong—
releasePositionVector2—
fromNode

Source GraphNode Name: an identifier separate from Title.

fromPort

Dense source output index rather than row slotIndex.

releasePosition

GraphEdit-local position rather than PositionOffset; can be zero for keyboard completion.

CopyNodesRequestEvent
# CopyNodesRequest
C#
public event Action CopyNodesRequest;

Copy request without arguments. Gather selected GraphElements and serialize your model yourself; the signal does not write clipboard contents.

CutNodesRequestEvent
# CutNodesRequest
C#
public event Action CutNodesRequest;

Cut request without arguments. Copy model data/connections first, then remove accepted elements through your undo action; nothing is deleted automatically.

DeleteNodesRequestEvent
# DeleteNodesRequest
C#
public event GraphEdit.DeleteNodesRequestEventHandler DeleteNodesRequest;

Deletion request containing selected GraphElement Name values. Validate your model, remove associated connection/group records and free accepted objects. The signal does not call Free itself.

Handler parameters
NameTypeDefault
nodesReckfell.Collections.Array<StringName>—
nodes

Selected GraphElement Name snapshot rather than objects to free automatically.

DisconnectionRequestEvent
# DisconnectionRequest
C#
public event GraphEdit.DisconnectionRequestEventHandler DisconnectionRequest;

User requested removal of an existing tuple. Update the model and call DisconnectNode; direct programmatic removal does not emit the signal.

Handler parameters
NameTypeDefault
fromNodeStringName—
fromPortlong—
toNodeStringName—
toPortlong—
fromNode

Source GraphNode Name: an identifier separate from Title.

fromPort

Dense source output index rather than row slotIndex.

toNode

Destination GraphNode Name: an identifier separate from Title.

toPort

Dense destination input index rather than row slotIndex.

DuplicateNodesRequestEvent
# DuplicateNodesRequest
C#
public event Action DuplicateNodesRequest;

Request to duplicate the selection. Create model copies with new IDs/Names and remap internal connections; the signal does not copy objects itself.

EndNodeMoveEvent
# EndNodeMove
C#
public event Action EndNodeMove;

End of a movement group, including ArrangeNodes. Read final coordinates and record one undo action; the application manages history.

FrameRectChangedEvent
# FrameRectChanged
C#
public event GraphEdit.FrameRectChangedEventHandler FrameRectChanged;

GraphEdit recomputed a frame rectangle. newRect is its current Control.GetRect in parent space rather than a ready-made pre-zoom model PositionOffset/Size pair. Explicitly read the frame’s PositionOffset and Size for persistence.

Handler parameters
NameTypeDefault
frameGraphFrame—
newRectRect2—
frame

Direct GraphFrame Name; for FrameRectChanged, the shared graph-owned frame object.

newRect

Current frame Control.GetRect in parent space; read PositionOffset and Size for your model.

GraphElementsLinkedToFrameRequestEvent
# GraphElementsLinkedToFrameRequest
C#
public event GraphEdit.GraphElementsLinkedToFrameRequestEventHandler GraphElementsLinkedToFrameRequest;

After dragging, the user requested linking elements to a frame. elements contains names; frame is the frame Name. Validate the model, remove previous links and call AttachGraphElementToFrame for accepted elements; the request does not persist the model.

Handler parameters
NameTypeDefault
elementsReckfell.Collections.Array—
frameStringName—
elements

Names of elements proposed for frame attachment.

frame

Direct GraphFrame Name; for FrameRectChanged, the shared graph-owned frame object.

NodeDeselectedEvent
# NodeDeselected
C#
public event GraphEdit.NodeDeselectedEventHandler NodeDeselected;

A GraphElement was deselected, including by programmatic operations. Does not delete the object or revert model changes.

Handler parameters
NameTypeDefault
nodeEntity—
node

Direct graph GraphElement/Entity; null clears selection for SetSelected. Does not transfer ownership.

NodeSelectedEvent
# NodeSelected
C#
public event GraphEdit.NodeSelectedEventHandler NodeSelected;

A direct GraphElement was selected, including by a programmatic setter. Entity can be GraphNode or GraphFrame; the object belongs to the tree, so do not free it merely because it was reported.

Handler parameters
NameTypeDefault
nodeEntity—
node

Direct graph GraphElement/Entity; null clears selection for SetSelected. Does not transfer ownership.

PasteNodesRequestEvent
# PasteNodesRequest
C#
public event Action PasteNodesRequest;

Paste request without arguments. The application reads/validates data and creates new unique IDs/Names, elements and connections. The signal does not automatically restore a graph.

PopupRequestEvent
# PopupRequest
C#
public event GraphEdit.PopupRequestEventHandler PopupRequest;

Context-menu request at a GraphEdit-local position. Create/show your menu; account for ScrollOffset and Zoom when converting to graph coordinates. Not OS screen coordinates.

Handler parameters
NameTypeDefault
atPositionVector2—
atPosition

GraphEdit-local position; convert separately for screen or graph coordinates.

ScrollOffsetChangedEvent
# ScrollOffsetChanged
C#
public event GraphEdit.ScrollOffsetChangedEventHandler ScrollOffsetChanged;

View offset changed; supplies the actual offset. Can follow a deferred programmatic assignment: do not treat it as exclusively user input or unconditionally reassign the same ScrollOffset in the handler.

Handler parameters
NameTypeDefault
offsetVector2—
offset

View offset after zoom rather than element PositionOffset. Read back the actual constrained value.

GraphEdit.GridPatternEnum

ValueDescription
Dots = 1

Draw the grid using dots.

Lines = 0

Draw the grid using solid lines.

GraphEdit.PanningSchemeEnum

ValueDescription
Pans = 1

[kbd]Mouse Wheel[/kbd] will move the view, [kbd]Ctrl + Mouse Wheel[/kbd] will zoom.

Zooms = 0

[kbd]Mouse Wheel[/kbd] will zoom, [kbd]Ctrl + Mouse Wheel[/kbd] will move the view.

Theme properties

These are Theme resource keys, not C# properties. Use the matching Control GetTheme…() and AddTheme…Override() methods for each value type.

Key and typeDescription
activity
Color

Color the connection line is interpolated to based on the activity value of a connection (see GraphEdit.SetConnectionActivity).

Default: Color(1, 1, 1, 1)
connection_hover_tint_color
Color

Color which is blended with the connection line when the mouse is hovering over it.

Default: Color(0, 0, 0, 0.3)
connection_rim_color
Color

Color of the rim around each connection line used for making intersecting lines more distinguishable.

Default: Color(0.1, 0.1, 0.1, 0.6)
connection_valid_target_tint_color
Color

Color which is blended with the connection line when the currently dragged connection is hovering over a valid target port.

Default: Color(1, 1, 1, 0.4)
grid_major
Color

Color of major grid lines/dots.

Default: Color(1, 1, 1, 0.2)
grid_minor
Color

Color of minor grid lines/dots.

Default: Color(1, 1, 1, 0.05)
selection_fill
Color

The fill color of the selection rectangle.

Default: Color(1, 1, 1, 0.3)
selection_stroke
Color

The outline color of the selection rectangle.

Default: Color(1, 1, 1, 0.8)
connection_hover_thickness
int

Widens the line of a connection when the mouse is hovering over it by a percentage factor. A value of 0 disables the highlight. A value of 100 doubles the line width.

Default: 0
port_hotzone_inner_extent
int

The horizontal range within which a port can be grabbed (inner side).

Default: 22
port_hotzone_outer_extent
int

The horizontal range within which a port can be grabbed (outer side).

Default: 26
grid_toggle
Texture2D

The icon for the grid toggle button.

layout
Texture2D

The icon for the layout button for auto-arranging the graph.

minimap_toggle
Texture2D

The icon for the minimap toggle button.

snapping_toggle
Texture2D

The icon for the snapping toggle button.

zoom_in
Texture2D

The icon for the zoom in button.

zoom_out
Texture2D

The icon for the zoom out button.

zoom_reset
Texture2D

The icon for the zoom reset button.

menu_panel
StyleBox
panel
StyleBox

The background drawn under the grid.

panel_focus
StyleBox

StyleBox used when the GraphEdit is focused (when used with assistive apps).

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.