Up to date
This page is up to date for Godot 4.0
.
If you still find outdated information, please open an issue.
GraphNode¶
Inherits: Container < Control < CanvasItem < Node < Object
A container with connection ports, representing a node in a GraphEdit.
Description¶
GraphNode allows to create nodes for a GraphEdit graph with customizable content based on its child controls. GraphNode is derived from Container and it is responsible for placing its children on screen. This works similar to VBoxContainer. Children, in turn, provide GraphNode with so-called slots, each of which can have a connection port on either side.
Each GraphNode slot is defined by its index and can provide the node with up to two ports: one on the left, and one on the right. By convention the left port is also referred to as the input port and the right port is referred to as the output port. Each port can be enabled and configured individually, using different type and color. The type is an arbitrary value that you can define using your own considerations. The parent GraphEdit will receive this information on each connect and disconnect request.
Slots can be configured in the Inspector dock once you add at least one child Control. The properties are grouped by each slot's index in the "Slot" section.
Note: While GraphNode is set up using slots and slot indices, connections are made between the ports which are enabled. Because of that, GraphEdit uses the port's index and not the slot's index. You can use get_connection_input_slot and get_connection_output_slot to get the slot index from the port index.
Properties¶
|
||
|
||
|
||
mouse_filter |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Methods¶
Theme Properties¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Signals¶
close_request ( )
Emitted when the GraphNode is requested to be closed. Happens on clicking the close button (see show_close).
dragged ( Vector2 from, Vector2 to )
Emitted when the GraphNode is dragged.
node_deselected ( )
Emitted when the GraphNode is deselected.
node_selected ( )
Emitted when the GraphNode is selected.
position_offset_changed ( )
Emitted when the GraphNode is moved.
raise_request ( )
Emitted when the GraphNode is requested to be displayed over other ones. Happens on focusing (clicking into) the GraphNode.
resize_request ( Vector2 new_minsize )
Emitted when the GraphNode is requested to be resized. Happens on dragging the resizer handle (see resizable).
slot_updated ( int idx )
Emitted when any GraphNode's slot is updated.
Enumerations¶
enum Overlay:
Overlay OVERLAY_DISABLED = 0
No overlay is shown.
Overlay OVERLAY_BREAKPOINT = 1
Show overlay set in the breakpoint theme property.
Overlay OVERLAY_POSITION = 2
Show overlay set in the position theme property.
Property Descriptions¶
bool comment = false
If true
, the GraphNode is a comment node.
bool draggable = true
If true
, the user can drag the GraphNode.
String language = ""
Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead.
Overlay overlay = 0
Sets the overlay shown above the GraphNode. See Overlay.
Vector2 position_offset = Vector2(0, 0)
The offset of the GraphNode, relative to the scroll offset of the GraphEdit.
Note: You cannot use position offset directly, as GraphEdit is a Container.
bool resizable = false
If true
, the user can resize the GraphNode.
Note: Dragging the handle will only emit the resize_request signal, the GraphNode needs to be resized manually.
bool selectable = true
If true
, the user can select the GraphNode.
bool selected = false
If true
, the GraphNode is selected.
bool show_close = false
If true
, the close button will be visible.
Note: Pressing it will only emit the close_request signal, the GraphNode needs to be removed manually.
TextDirection text_direction = 0
void set_text_direction ( TextDirection value )
TextDirection get_text_direction ( )
Base text writing direction.
String title = ""
The text displayed in the GraphNode's title bar.
Method Descriptions¶
void clear_all_slots ( )
Disables all input and output slots of the GraphNode.
void clear_slot ( int slot_index )
Disables input and output slot whose index is slot_index
.
Color get_connection_input_color ( int port )
Returns the Color of the input connection port
.
int get_connection_input_count ( )
Returns the number of enabled input slots (connections) to the GraphNode.
int get_connection_input_height ( int port )
Returns the height of the input connection port
.
Vector2 get_connection_input_position ( int port )
Returns the position of the input connection port
.
int get_connection_input_slot ( int port )
Returns the corresponding slot index of the input connection port
.
int get_connection_input_type ( int port )
Returns the type of the input connection port
.
Color get_connection_output_color ( int port )
Returns the Color of the output connection port
.
int get_connection_output_count ( )
Returns the number of enabled output slots (connections) of the GraphNode.
int get_connection_output_height ( int port )
Returns the height of the output connection port
.
Vector2 get_connection_output_position ( int port )
Returns the position of the output connection port
.
int get_connection_output_slot ( int port )
Returns the corresponding slot index of the output connection port
.
int get_connection_output_type ( int port )
Returns the type of the output connection port
.
Color get_slot_color_left ( int slot_index ) const
Returns the left (input) Color of the slot slot_index
.
Color get_slot_color_right ( int slot_index ) const
Returns the right (output) Color of the slot slot_index
.
int get_slot_type_left ( int slot_index ) const
Returns the left (input) type of the slot slot_index
.
int get_slot_type_right ( int slot_index ) const
Returns the right (output) type of the slot slot_index
.
bool is_slot_draw_stylebox ( int slot_index ) const
Returns true if the background StyleBox of the slot slot_index
is drawn.
bool is_slot_enabled_left ( int slot_index ) const
Returns true
if left (input) side of the slot slot_index
is enabled.
bool is_slot_enabled_right ( int slot_index ) const
Returns true
if right (output) side of the slot slot_index
is enabled.