GraphEdit
Graph editor for element layout and directed connection display, separate from model storage and execution.
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
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
public bool ArrangeNodesButtonHidden { get; set; }Legacy inverted property: true means ShowArrangeButton = false. Use ShowArrangeButton in new code to avoid double negatives.
ConnectionLinesAntialiasedProperty
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
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
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
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
public GraphEdit.GridPatternEnum GridPattern { get; set; }Grid presentation: Lines or Dots, default Lines. Changes the background rather than connection rules or snap spacing.
MinimapEnabledProperty
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
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
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
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
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
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
public bool ShowArrangeButton { get; set; }Show the automatic arrangement button. Does not invoke ArrangeNodes or block programmatic calls.
ShowGridProperty
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
public bool ShowGridButtons { get; set; }Show grid/snapping controls. Hiding them does not reset ShowGrid, SnappingEnabled or SnappingDistance.
ShowMenuProperty
public bool ShowMenu { get; set; }Show the built-in toolbar. false hides the panel rather than prohibiting programmatic operations, panning or graph actions.
ShowMinimapButtonProperty
public bool ShowMinimapButton { get; set; }Show the minimap toggle button. Does not change MinimapEnabled.
ShowZoomButtonsProperty
public bool ShowZoomButtons { get; set; }Show zoom-out/reset/zoom-in buttons. Does not prevent programmatic or wheel zoom.
ShowZoomLabelProperty
public bool ShowZoomLabel { get; set; }Show the current zoom label. Text visibility rather than a Zoom value setting.
SnapDistanceProperty
public int SnapDistance { get; set; }Legacy name for SnappingDistance. Use SnappingDistance; it has the same spacing and constraints.
SnappingDistanceProperty
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
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
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
public bool UseSnap { get; set; }Legacy name for SnappingEnabled. Use SnappingEnabled in new code; both share the same flag and behavior.
ZoomProperty
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
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
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
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
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.
| Name | Type | Default |
|---|---|---|
fromType | int | — |
toType | int | — |
fromTypeInteger output type.
toTypeInteger input type.
AddValidLeftDisconnectTypevoid
public void AddValidLeftDisconnectType(int type);Allows UI reconnection for a port type from the output side. Does not call DisconnectNode or change existing records.
| Name | Type | Default |
|---|---|---|
type | int | — |
typeInteger port category for the UI policy.
AddValidRightDisconnectTypevoid
public void AddValidRightDisconnectType(int type);Allows UI reconnection for a port type from the input side. Does not call DisconnectNode or change existing records.
| Name | Type | Default |
|---|---|---|
type | int | — |
typeInteger port category for the UI policy.
ArrangeNodesvoid
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
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.
| Name | Type | Default |
|---|---|---|
element | StringName | — |
frame | StringName | — |
elementDirect GraphElement Name rather than Title or child index.
frameDirect GraphFrame Name; for FrameRectChanged, the shared graph-owned frame object.
ClearConnectionsvoid
public void ClearConnections();Removes all connection records/lines while retaining GraphNode objects. Emits no per-edge disconnection request.
ConnectNode2 overloads
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.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
fromNodeSource GraphNode Name: an identifier separate from Title.
fromPortDense source output index rather than row slotIndex.
toNodeDestination GraphNode Name: an identifier separate from Title.
toPortDense destination input index rather than row slotIndex.
ErrorError.Ok when stored or already present; not a model-validation result.
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.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
keepAlive | bool | false |
fromNodeSource GraphNode Name: an identifier separate from Title.
fromPortDense source output index rather than row slotIndex.
toNodeDestination GraphNode Name: an identifier separate from Title.
toPortDense destination input index rather than row slotIndex.
keepAliveRetain the record when a GraphNode is temporarily missing. Does not retain Entity memory or permit invalid ports.
ErrorError.Ok when stored or already present; not a model-validation result.
DetachGraphElementFromFramevoid
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.
| Name | Type | Default |
|---|---|---|
element | StringName | — |
elementDirect GraphElement Name rather than Title or child index.
DisconnectNodevoid
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.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
fromNodeSource GraphNode Name: an identifier separate from Title.
fromPortDense source output index rather than row slotIndex.
toNodeDestination GraphNode Name: an identifier separate from Title.
toPortDense destination input index rather than row slotIndex.
ForceConnectionDragEndvoid
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>
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.
| Name | Type | Default |
|---|---|---|
frame | StringName | — |
frameDirect GraphFrame Name; for FrameRectChanged, the shared graph-owned frame object.
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
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.
| Name | Type | Default |
|---|---|---|
point | Vector2 | — |
maxDistance | float | 4f |
pointGraphEdit-local position rather than PositionOffset or OS coordinates.
maxDistanceNonnegative line-search tolerance in local UI units.
Reckfell.Collections.DictionaryFinds 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
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.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
fromNodeElement Name to match on either endpoint.
fromPortPort number matched on both endpoints; input and output with the same number are not separated.
intCount of incident name/port-number matches.
GetConnectionLineVector2[]
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.
| Name | Type | Default |
|---|---|---|
fromNode | Vector2 | — |
toNode | Vector2 | — |
fromNodeSource GraphNode Name; only in GetConnectionLine this is a Vector2 position rather than a name.
toNodeDestination GraphNode Name; only in GetConnectionLine this is a Vector2 position rather than a name.
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
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.
floatConnection-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
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.
floatLine 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>
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.
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>
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.
| Name | Type | Default |
|---|---|---|
node | StringName | — |
nodeElement Name with a connection-map entry; results include both directions.
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>
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.
| Name | Type | Default |
|---|---|---|
rect | Rect2 | — |
rectGraphEdit-local rectangle for line-geometry intersection.
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
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.
| Name | Type | Default |
|---|---|---|
element | StringName | — |
elementDirect GraphElement Name rather than Title or child index.
GraphFrameReturns the element’s shared frame object, or null. Ownership is unchanged; do not free the frame as a temporary getter result.
GetGridPatternGraphEdit.GridPatternEnum
public GraphEdit.GridPatternEnum GetGridPattern();Grid presentation: Lines or Dots, default Lines. Changes the background rather than connection rules or snap spacing.
GraphEdit.GridPatternEnumGrid presentation: Lines or Dots, default Lines. Changes the background rather than connection rules or snap spacing.
GetMenuHBoxHBoxContainer
public HBoxContainer GetMenuHBox();Returns the shared internal toolbar HBoxContainer. Add your buttons without freeing or reparenting the container itself; GraphEdit owns its lifetime.
HBoxContainerReturns the shared internal toolbar HBoxContainer. Add your buttons without freeing or reparenting the container itself; GraphEdit owns its lifetime.
GetMinimapOpacityfloat
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.
floatMinimap 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
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.
Vector2Minimap 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
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.
GraphEdit.PanningSchemeEnumWheel 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
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.
Vector2View 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
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.
intSnap 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
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.
Reckfell.Collections.DictionaryShared 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
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.
floatScale 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
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.
HBoxContainerLegacy 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
public float GetZoomMax();Upper Zoom bound. Use a positive value no smaller than ZoomMin; setter reclamps current Zoom. Not the maximum graph coordinate.
floatUpper Zoom bound. Use a positive value no smaller than ZoomMin; setter reclamps current Zoom. Not the maximum graph coordinate.
GetZoomMinfloat
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.
floatLower 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
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.
floatMultiplier 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.
public bool IsArrangeNodesButtonHidden();Legacy inverted property: true means ShowArrangeButton = false. Use ShowArrangeButton in new code to avoid double negatives.
boolLegacy inverted property: true means ShowArrangeButton = false. Use ShowArrangeButton in new code to avoid double negatives.
IsConnectionLinesAntialiasedbool
public bool IsConnectionLinesAntialiased();Requests antialiasing for GraphEdit lines. Not global MSAA/TAA and does not guarantee antialiasing of text, grid or unrelated elements.
boolRequests antialiasing for GraphEdit lines. Not global MSAA/TAA and does not guarantee antialiasing of text, grid or unrelated elements.
IsMinimapEnabledbool
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.
boolEnables the minimap display. Independent of ShowMinimapButton: a hidden button does not imply a disabled minimap. Does not create a second graph model.
IsNodeConnectedbool
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.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
fromNodeSource GraphNode Name: an identifier separate from Title.
fromPortDense source output index rather than row slotIndex.
toNodeDestination GraphNode Name: an identifier separate from Title.
toPortDense destination input index rather than row slotIndex.
boolWhether the exact directed tuple exists.
IsRightDisconnectsEnabledbool
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.
boolAllows UI reconnection from an input port, default false. Does not mean the right mouse button or remove the record without application request handling.
IsShowingArrangeButtonbool
public bool IsShowingArrangeButton();Show the automatic arrangement button. Does not invoke ArrangeNodes or block programmatic calls.
boolShow the automatic arrangement button. Does not invoke ArrangeNodes or block programmatic calls.
IsShowingGridbool
public bool IsShowingGrid();Show background grid lines/dots, default true. Independent of SnappingEnabled: snapping can remain active while the grid is hidden.
boolShow background grid lines/dots, default true. Independent of SnappingEnabled: snapping can remain active while the grid is hidden.
IsShowingGridButtonsbool
public bool IsShowingGridButtons();Show grid/snapping controls. Hiding them does not reset ShowGrid, SnappingEnabled or SnappingDistance.
boolShow grid/snapping controls. Hiding them does not reset ShowGrid, SnappingEnabled or SnappingDistance.
IsShowingMenubool
public bool IsShowingMenu();Show the built-in toolbar. false hides the panel rather than prohibiting programmatic operations, panning or graph actions.
boolShow the built-in toolbar. false hides the panel rather than prohibiting programmatic operations, panning or graph actions.
IsShowingMinimapButtonbool
public bool IsShowingMinimapButton();Show the minimap toggle button. Does not change MinimapEnabled.
boolShow the minimap toggle button. Does not change MinimapEnabled.
IsShowingZoomButtonsbool
public bool IsShowingZoomButtons();Show zoom-out/reset/zoom-in buttons. Does not prevent programmatic or wheel zoom.
boolShow zoom-out/reset/zoom-in buttons. Does not prevent programmatic or wheel zoom.
IsShowingZoomLabelbool
public bool IsShowingZoomLabel();Show the current zoom label. Text visibility rather than a Zoom value setting.
boolShow the current zoom label. Text visibility rather than a Zoom value setting.
IsSnappingEnabledbool
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.
boolSnap 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
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.
| Name | Type | Default |
|---|---|---|
fromType | int | — |
toType | int | — |
fromTypeInteger output type.
toTypeInteger input type.
boolWhether this exact directed type pair is registered.
RemoveValidConnectionTypevoid
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.
| Name | Type | Default |
|---|---|---|
fromType | int | — |
toType | int | — |
fromTypeInteger output type.
toTypeInteger input type.
RemoveValidLeftDisconnectTypevoid
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.
| Name | Type | Default |
|---|---|---|
type | int | — |
typeInteger port category for the UI policy.
RemoveValidRightDisconnectTypevoid
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.
| Name | Type | Default |
|---|---|---|
type | int | — |
typeInteger port category for the UI policy.
public void SetArrangeNodesButtonHidden(bool enable);Legacy inverted property: true means ShowArrangeButton = false. Use ShowArrangeButton in new code to avoid double negatives.
| Name | Type | Default |
|---|---|---|
enable | bool | — |
enabletrue hides the arrange button; inverse of ShowArrangeButton.
SetConnectionActivityvoid
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.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
amount | float | — |
fromNodeSource GraphNode Name: an identifier separate from Title.
fromPortDense source output index rather than row slotIndex.
toNodeDestination GraphNode Name: an identifier separate from Title.
toPortDense destination input index rather than row slotIndex.
amountVisual activity amount, normally 0…1.
SetConnectionLinesAntialiasedvoid
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.
| Name | Type | Default |
|---|---|---|
pixels | bool | — |
pixelsEnable antialiasing; the historical pixels parameter name denotes a bool.
SetConnectionLinesCurvaturevoid
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.
| Name | Type | Default |
|---|---|---|
curvature | float | — |
curvatureCurvature factor, normally nonnegative.
SetConnectionLinesThicknessvoid
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.
| Name | Type | Default |
|---|---|---|
pixels | float | — |
pixelsLine thickness, 0 or greater.
SetConnectionsvoid
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.
| Name | Type | Default |
|---|---|---|
connections | Reckfell.Collections.Array<Reckfell.Collections.Dictionary> | — |
connectionsValidated Dictionary list with all five connection fields; replaces the entire previous list.
SetGridPatternvoid
public void SetGridPattern(GraphEdit.GridPatternEnum pattern);Grid presentation: Lines or Dots, default Lines. Changes the background rather than connection rules or snap spacing.
| Name | Type | Default |
|---|---|---|
pattern | GraphEdit.GridPatternEnum | — |
patternLines or Dots.
SetMinimapEnabledvoid
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.
| Name | Type | Default |
|---|---|---|
enable | bool | — |
enableEnable the specified feature/visibility.
SetMinimapOpacityvoid
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.
| Name | Type | Default |
|---|---|---|
opacity | float | — |
opacityAlpha, normally 0…1; out-of-range input is not normalized.
SetMinimapSizevoid
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.
| Name | Type | Default |
|---|---|---|
size | Vector2 | — |
sizeRequested minimap UI size, constrained by its minimum.
SetPanningSchemevoid
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.
| Name | Type | Default |
|---|---|---|
scheme | GraphEdit.PanningSchemeEnum | — |
schemeZooms or Pans wheel behavior.
SetRightDisconnectsvoid
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.
| Name | Type | Default |
|---|---|---|
enable | bool | — |
enableAllow UI reconnection from the input side.
SetScrollOffsetvoid
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.
| Name | Type | Default |
|---|---|---|
offset | Vector2 | — |
offsetView offset after zoom rather than element PositionOffset. Read back the actual constrained value.
SetSelectedvoid
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.
| Name | Type | Default |
|---|---|---|
node | Entity | — |
nodeDirect graph GraphElement/Entity; null clears selection for SetSelected. Does not transfer ownership.
SetShowArrangeButtonvoid
public void SetShowArrangeButton(bool hidden);Show the automatic arrangement button. Does not invoke ArrangeNodes or block programmatic calls.
| Name | Type | Default |
|---|---|---|
hidden | bool | — |
hiddenDespite the historical hidden parameter name, true shows the UI and false hides it.
SetShowGridvoid
public void SetShowGrid(bool enable);Show background grid lines/dots, default true. Independent of SnappingEnabled: snapping can remain active while the grid is hidden.
| Name | Type | Default |
|---|---|---|
enable | bool | — |
enableEnable the specified feature/visibility.
SetShowGridButtonsvoid
public void SetShowGridButtons(bool hidden);Show grid/snapping controls. Hiding them does not reset ShowGrid, SnappingEnabled or SnappingDistance.
| Name | Type | Default |
|---|---|---|
hidden | bool | — |
hiddenDespite the historical hidden parameter name, true shows the UI and false hides it.
SetShowMenuvoid
public void SetShowMenu(bool hidden);Show the built-in toolbar. false hides the panel rather than prohibiting programmatic operations, panning or graph actions.
| Name | Type | Default |
|---|---|---|
hidden | bool | — |
hiddenDespite the historical hidden parameter name, true shows the UI and false hides it.
SetShowMinimapButtonvoid
public void SetShowMinimapButton(bool hidden);Show the minimap toggle button. Does not change MinimapEnabled.
| Name | Type | Default |
|---|---|---|
hidden | bool | — |
hiddenDespite the historical hidden parameter name, true shows the UI and false hides it.
SetShowZoomButtonsvoid
public void SetShowZoomButtons(bool hidden);Show zoom-out/reset/zoom-in buttons. Does not prevent programmatic or wheel zoom.
| Name | Type | Default |
|---|---|---|
hidden | bool | — |
hiddenDespite the historical hidden parameter name, true shows the UI and false hides it.
SetShowZoomLabelvoid
public void SetShowZoomLabel(bool enable);Show the current zoom label. Text visibility rather than a Zoom value setting.
| Name | Type | Default |
|---|---|---|
enable | bool | — |
enableEnable the specified feature/visibility.
SetSnappingDistancevoid
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.
| Name | Type | Default |
|---|---|---|
pixels | int | — |
pixelsSnap spacing before zoom, 2…100 at the standard grid scale.
SetSnappingEnabledvoid
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.
| Name | Type | Default |
|---|---|---|
enable | bool | — |
enableEnable the specified feature/visibility.
SetTypeNamesvoid
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.
| Name | Type | Default |
|---|---|---|
typeNames | Reckfell.Collections.Dictionary | — |
typeNamesShared integer-type → label Dictionary; connection compatibility is separate.
SetZoomvoid
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.
| Name | Type | Default |
|---|---|---|
zoom | float | — |
zoomRequested scale multiplier; clamped by current ZoomMin/ZoomMax.
SetZoomMaxvoid
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.
| Name | Type | Default |
|---|---|---|
zoomMax | float | — |
zoomMaxPositive upper bound no smaller than ZoomMin.
SetZoomMinvoid
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.
| Name | Type | Default |
|---|---|---|
zoomMin | float | — |
zoomMinPositive lower bound no greater than ZoomMax.
SetZoomStepvoid
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.
| Name | Type | Default |
|---|---|---|
zoomStep | float | — |
zoomStepFinite step multiplier, normally > 1; negative values become absolute.
_GetConnectionLineVector2[]
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.
| Name | Type | Default |
|---|---|---|
fromPosition | Vector2 | — |
toPosition | Vector2 | — |
fromPositionLine start in the chosen coordinate space.
toPositionLine end in the same coordinate space.
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
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.
| Name | Type | Default |
|---|---|---|
inNode | ReckfellObject | — |
inPort | int | — |
mousePosition | Vector2 | — |
inNodeShared GraphNode passed as ReckfellObject; do not free it in the callback.
inPortDense port index on the relevant side rather than slotIndex.
mousePositionGraphEdit-local position / Zoom rather than GraphNode-local position.
boolOverrides 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
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.
| Name | Type | Default |
|---|---|---|
inNode | ReckfellObject | — |
inPort | int | — |
mousePosition | Vector2 | — |
inNodeShared GraphNode passed as ReckfellObject; do not free it in the callback.
inPortDense port index on the relevant side rather than slotIndex.
mousePositionGraphEdit-local position / Zoom rather than GraphNode-local position.
boolOverrides 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
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.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | int | — |
toNode | StringName | — |
toPort | int | — |
fromNodeSource GraphNode Name; only in GetConnectionLine this is a Vector2 position rather than a name.
fromPortDense output index rather than row slotIndex.
toNodeDestination GraphNode Name; only in GetConnectionLine this is a Vector2 position rather than a name.
toPortDense input index rather than row slotIndex.
boolAdditional 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
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
public event Action ConnectionDragEnded;Connection gesture ended, including cancellation. Does not guarantee an edge was created; the ConnectionRequest handler determines acceptance.
ConnectionDragStartedEvent
public event GraphEdit.ConnectionDragStartedEventHandler ConnectionDragStarted;A connection/reconnection gesture started. isOutput identifies the starting port side. Not a stored edge or successful ConnectionRequest commit.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | long | — |
isOutput | bool | — |
fromNodeName of the element whose port started the gesture.
fromPortDense starting-port index; isOutput determines its side.
isOutputStarting port is an output rather than input.
ConnectionFromEmptyEvent
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.
| Name | Type | Default |
|---|---|---|
toNode | StringName | — |
toPort | long | — |
releasePosition | Vector2 | — |
toNodeDestination GraphNode Name: an identifier separate from Title.
toPortDense destination input index rather than row slotIndex.
releasePositionGraphEdit-local position rather than PositionOffset; can be zero for keyboard completion.
ConnectionRequestEvent
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.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | long | — |
toNode | StringName | — |
toPort | long | — |
fromNodeSource GraphNode Name: an identifier separate from Title.
fromPortDense source output index rather than row slotIndex.
toNodeDestination GraphNode Name: an identifier separate from Title.
toPortDense destination input index rather than row slotIndex.
ConnectionToEmptyEvent
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.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | long | — |
releasePosition | Vector2 | — |
fromNodeSource GraphNode Name: an identifier separate from Title.
fromPortDense source output index rather than row slotIndex.
releasePositionGraphEdit-local position rather than PositionOffset; can be zero for keyboard completion.
CopyNodesRequestEvent
public event Action CopyNodesRequest;Copy request without arguments. Gather selected GraphElements and serialize your model yourself; the signal does not write clipboard contents.
CutNodesRequestEvent
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
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.
| Name | Type | Default |
|---|---|---|
nodes | Reckfell.Collections.Array<StringName> | — |
nodesSelected GraphElement Name snapshot rather than objects to free automatically.
DisconnectionRequestEvent
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.
| Name | Type | Default |
|---|---|---|
fromNode | StringName | — |
fromPort | long | — |
toNode | StringName | — |
toPort | long | — |
fromNodeSource GraphNode Name: an identifier separate from Title.
fromPortDense source output index rather than row slotIndex.
toNodeDestination GraphNode Name: an identifier separate from Title.
toPortDense destination input index rather than row slotIndex.
DuplicateNodesRequestEvent
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
public event Action EndNodeMove;End of a movement group, including ArrangeNodes. Read final coordinates and record one undo action; the application manages history.
FrameRectChangedEvent
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.
| Name | Type | Default |
|---|---|---|
frame | GraphFrame | — |
newRect | Rect2 | — |
frameDirect GraphFrame Name; for FrameRectChanged, the shared graph-owned frame object.
newRectCurrent frame Control.GetRect in parent space; read PositionOffset and Size for your model.
GraphElementsLinkedToFrameRequestEvent
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.
| Name | Type | Default |
|---|---|---|
elements | Reckfell.Collections.Array | — |
frame | StringName | — |
elementsNames of elements proposed for frame attachment.
frameDirect GraphFrame Name; for FrameRectChanged, the shared graph-owned frame object.
NodeDeselectedEvent
public event GraphEdit.NodeDeselectedEventHandler NodeDeselected;A GraphElement was deselected, including by programmatic operations. Does not delete the object or revert model changes.
| Name | Type | Default |
|---|---|---|
node | Entity | — |
nodeDirect graph GraphElement/Entity; null clears selection for SetSelected. Does not transfer ownership.
NodeSelectedEvent
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.
| Name | Type | Default |
|---|---|---|
node | Entity | — |
nodeDirect graph GraphElement/Entity; null clears selection for SetSelected. Does not transfer ownership.
PasteNodesRequestEvent
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
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.
| Name | Type | Default |
|---|---|---|
atPosition | Vector2 | — |
atPositionGraphEdit-local position; convert separately for screen or graph coordinates.
ScrollOffsetChangedEvent
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.
| Name | Type | Default |
|---|---|---|
offset | Vector2 | — |
offsetView offset after zoom rather than element PositionOffset. Read back the actual constrained value.
GraphEdit.GridPatternEnum
GraphEdit.PanningSchemeEnum
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 type | Description |
|---|---|
activityColor | Color the connection line is interpolated to based on the activity value of a connection (see Color(1, 1, 1, 1) |
connection_hover_tint_colorColor | Color which is blended with the connection line when the mouse is hovering over it. Default:Color(0, 0, 0, 0.3) |
connection_rim_colorColor | 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_colorColor | 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_majorColor | Color of major grid lines/dots. Default:Color(1, 1, 1, 0.2) |
grid_minorColor | Color of minor grid lines/dots. Default:Color(1, 1, 1, 0.05) |
selection_fillColor | The fill color of the selection rectangle. Default:Color(1, 1, 1, 0.3) |
selection_strokeColor | The outline color of the selection rectangle. Default:Color(1, 1, 1, 0.8) |
connection_hover_thicknessint | Widens the line of a connection when the mouse is hovering over it by a percentage factor. A value of 0 |
port_hotzone_inner_extentint | The horizontal range within which a port can be grabbed (inner side). Default:22 |
port_hotzone_outer_extentint | The horizontal range within which a port can be grabbed (outer side). Default:26 |
grid_toggleTexture2D | The icon for the grid toggle button. |
layoutTexture2D | The icon for the layout button for auto-arranging the graph. |
minimap_toggleTexture2D | The icon for the minimap toggle button. |
snapping_toggleTexture2D | The icon for the snapping toggle button. |
zoom_inTexture2D | The icon for the zoom in button. |
zoom_outTexture2D | The icon for the zoom out button. |
zoom_resetTexture2D | The icon for the zoom reset button. |
menu_panelStyleBox | |
panelStyleBox | The background drawn under the grid. |
panel_focusStyleBox |
|