Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

GraphEdit

Успадковує: Control < CanvasItem < Node < Object

Редактор графоподібних структур із використанням GraphNode.

Опис

GraphEdit надає інструменти для створення, обробки та відображення різноманітних графіків. Його основне призначення в движку — підтримка систем візуального програмування, таких як візуальні шейдери, але він також доступний для використання в проектах користувачів.

GraphEdit сам по собі є лише порожнім контейнером, що представляє нескінченну сітку, де можна розмістити GraphNode. Кожен GraphNode представляє вузол у графі, окрему одиницю даних у підключеній схемі. GraphEdit, у свою чергу, допомагає контролювати різні взаємодії з вузлами та між вузлами. Коли користувач намагається підключити, відключити або видалити GraphNode, у GraphEdit видається сигнал, але за замовчуванням не виконується жодна дія. Програміст, який використовує цей елемент керування, відповідає за реалізацію необхідної логіки, щоб визначити, як слід обробляти кожен запит.

Продуктивність: настійно рекомендується ввімкнути режим використання низького процесора (див. OS.low_processor_usage_mode) під час використання GraphEdits.

Примітка: Майте на увазі, що Node.get_children() також повертатиме вузол рівня підключення під назвою _connection_layer через технічні обмеження. Така поведінка може змінитися в наступних випусках.

Властивості

bool

clip_contents

true (overrides Control)

bool

connection_lines_antialiased

true

float

connection_lines_curvature

0.5

float

connection_lines_thickness

4.0

Array[Dictionary]

connections

[]

FocusMode

focus_mode

2 (overrides Control)

GridPattern

grid_pattern

0

bool

minimap_enabled

true

float

minimap_opacity

0.65

Vector2

minimap_size

Vector2(240, 160)

PanningScheme

panning_scheme

0

bool

right_disconnects

false

Vector2

scroll_offset

Vector2(0, 0)

bool

show_arrange_button

true

bool

show_grid

true

bool

show_grid_buttons

true

bool

show_menu

true

bool

show_minimap_button

true

bool

show_zoom_buttons

true

bool

show_zoom_label

false

int

snapping_distance

20

bool

snapping_enabled

true

Dictionary

type_names

{}

float

zoom

1.0

float

zoom_max

2.0736003

float

zoom_min

0.23256795

float

zoom_step

1.2

Методи

PackedVector2Array

_get_connection_line(from_position: Vector2, to_position: Vector2) virtual const

bool

_is_in_input_hotzone(in_node: Object, in_port: int, mouse_position: Vector2) virtual

bool

_is_in_output_hotzone(in_node: Object, in_port: int, mouse_position: Vector2) virtual

bool

_is_node_hover_valid(from_node: StringName, from_port: int, to_node: StringName, to_port: int) virtual

void

add_valid_connection_type(from_type: int, to_type: int)

void

add_valid_left_disconnect_type(type: int)

void

add_valid_right_disconnect_type(type: int)

void

arrange_nodes()

void

attach_graph_element_to_frame(element: StringName, frame: StringName)

void

clear_connections()

Error

connect_node(from_node: StringName, from_port: int, to_node: StringName, to_port: int, keep_alive: bool = false)

void

detach_graph_element_from_frame(element: StringName)

void

disconnect_node(from_node: StringName, from_port: int, to_node: StringName, to_port: int)

void

force_connection_drag_end()

Array[StringName]

get_attached_nodes_of_frame(frame: StringName)

Dictionary

get_closest_connection_at_point(point: Vector2, max_distance: float = 4.0) const

int

get_connection_count(from_node: StringName, from_port: int)

PackedVector2Array

get_connection_line(from_node: Vector2, to_node: Vector2) const

Array[Dictionary]

get_connection_list_from_node(node: StringName) const

Array[Dictionary]

get_connections_intersecting_with_rect(rect: Rect2) const

GraphFrame

get_element_frame(element: StringName)

HBoxContainer

get_menu_hbox()

bool

is_node_connected(from_node: StringName, from_port: int, to_node: StringName, to_port: int)

bool

is_valid_connection_type(from_type: int, to_type: int) const

void

remove_valid_connection_type(from_type: int, to_type: int)

void

remove_valid_left_disconnect_type(type: int)

void

remove_valid_right_disconnect_type(type: int)

void

set_connection_activity(from_node: StringName, from_port: int, to_node: StringName, to_port: int, amount: float)

void

set_selected(node: Node)

Властивості теми

Color

activity

Color(1, 1, 1, 1)

Color

connection_hover_tint_color

Color(0, 0, 0, 0.3)

Color

connection_rim_color

Color(0.1, 0.1, 0.1, 0.6)

Color

connection_valid_target_tint_color

Color(1, 1, 1, 0.4)

Color

grid_major

Color(1, 1, 1, 0.2)

Color

grid_minor

Color(1, 1, 1, 0.05)

Color

selection_fill

Color(1, 1, 1, 0.3)

Color

selection_stroke

Color(1, 1, 1, 0.8)

int

connection_hover_thickness

0

int

port_hotzone_inner_extent

22

int

port_hotzone_outer_extent

26

Texture2D

grid_toggle

Texture2D

layout

Texture2D

minimap_toggle

Texture2D

snapping_toggle

Texture2D

zoom_in

Texture2D

zoom_out

Texture2D

zoom_reset

StyleBox

menu_panel

StyleBox

panel

StyleBox

panel_focus


Сигнали

begin_node_move() 🔗

На початку руху GraphElement.


connection_drag_ended() 🔗

Видається в кінці перетягування з’єднання.


connection_drag_started(from_node: StringName, from_port: int, is_output: bool) 🔗

Видається на початку перетягування з’єднання.


connection_from_empty(to_node: StringName, to_port: int, release_position: Vector2) 🔗

Видається, коли користувач перетягує з’єднання з вхідного порту в порожній простір графіка.


connection_request(from_node: StringName, from_port: int, to_node: StringName, to_port: int) 🔗

Надсилається до GraphEdit, коли намагається створити з’єднання між from_port from_node GraphNode і to_port to_node GraphNode.


connection_to_empty(from_node: StringName, from_port: int, release_position: Vector2) 🔗

Видається, коли користувач перетягує з’єднання з вихідного порту в порожній простір графіка.


copy_nodes_request() 🔗

Видається, коли цей GraphEdit фіксує дію ui_copy (Ctrl + C за замовчуванням). Загалом цей сигнал вказує на те, що вибрані елементи GraphElement слід скопіювати.


cut_nodes_request() 🔗

Видається, коли цей GraphEdit фіксує дію ui_cut (Ctrl + X за замовчуванням). Загалом, цей сигнал вказує на те, що вибрані елементи GraphElement слід вирізати.


delete_nodes_request(nodes: Array[StringName]) 🔗

Видається, коли цей GraphEdit фіксує дію ui_graph_delete (Видалити за замовчуванням).

nodes — це масив імен вузлів, які слід видалити. Зазвичай вони включають усі вибрані вузли.


disconnection_request(from_node: StringName, from_port: int, to_node: StringName, to_port: int) 🔗

Надсилається до GraphEdit, коли з’єднання між from_port from_node GraphNode і to_port to_node GraphNode намагається видалити.


duplicate_nodes_request() 🔗

Видається, коли цей GraphEdit фіксує дію ui_graph_duplicate (Ctrl + D за замовчуванням). Загалом цей сигнал вказує на те, що вибрані елементи GraphElement слід дублювати.


end_node_move() 🔗

Випробувано в кінці руху GraphElement.


frame_rect_changed(frame: GraphFrame, new_rect: Rect2) 🔗

Увімкнено, коли GraphFrame frame має значення new_rect.


graph_elements_linked_to_frame_request(elements: Array, frame: StringName) 🔗

Випускається, коли один або кілька елементів GraphElement опускаються на GraphFrame під назвою frame, якщо вони раніше не були приєднані до жодного іншого.

elements – це масив GraphElement, який потрібно приєднати.


node_deselected(node: Node) 🔗

Увімкнено, коли надана GraphElement вершина знезаражується.


node_selected(node: Node) 🔗

Увімкнено, коли вибрано даний вузол GraphElement.


paste_nodes_request() 🔗

Видається, коли цей GraphEdit фіксує дію ui_paste (Ctrl + V за замовчуванням). Загалом цей сигнал вказує на те, що попередньо скопійовані елементи GraphElement слід вставити.


popup_request(at_position: Vector2) 🔗

Видається, коли запитується спливаюче вікно. Відбувається після клацання правою кнопкою миші в GraphEdit. at_position — це положення вказівника миші під час надсилання сигналу.


scroll_offset_changed(offset: Vector2) 🔗

Видається, коли користувач змінює зсув прокручування. Він не буде виданий при зміні коду.


Переліки

enum PanningScheme: 🔗

PanningScheme SCROLL_ZOOMS = 0

Колесо миші збільшить масштаб, Ctrl + Колесо миші перемістить перегляд.

PanningScheme SCROLL_PANS = 1

Коліщатко миші пересуне перегляд, Ctrl + Коліщатко миші збільшить масштаб.


enum GridPattern: 🔗

GridPattern GRID_PATTERN_LINES = 0

Намалюйте сітку суцільними лініями.

GridPattern GRID_PATTERN_DOTS = 1

Намалюйте сітку за допомогою точок.


Описи властивостей

bool connection_lines_antialiased = true 🔗

  • void set_connection_lines_antialiased(value: bool)

  • bool is_connection_lines_antialiased()

Якщо true, лінії між вузлами використовуватимуть згладжування.


float connection_lines_curvature = 0.5 🔗

  • void set_connection_lines_curvature(value: float)

  • float get_connection_lines_curvature()

Кривизна ліній між вузлами. 0 призводить до прямих ліній.


float connection_lines_thickness = 4.0 🔗

  • void set_connection_lines_thickness(value: float)

  • float get_connection_lines_thickness()

Товщина ліній між вузлами.


Array[Dictionary] connections = [] 🔗

Зв’язки між GraphNode.

З’єднання представлено як Dictionary у формі:

{
    from_node: StringName,
    from_port: int,
    to_node: StringName,
    to_port: int,
    keep_alive: bool
}

З’єднання з keep_alive, встановленим на false, можуть автоматично видалятися, якщо під час перемальовування є недійсними.


GridPattern grid_pattern = 0 🔗

Шаблон, який використовується для малювання сітки.


bool minimap_enabled = true 🔗

  • void set_minimap_enabled(value: bool)

  • bool is_minimap_enabled()

Якщо true, міні-карта видима.


float minimap_opacity = 0.65 🔗

  • void set_minimap_opacity(value: float)

  • float get_minimap_opacity()

Непрозорість прямокутника мінікарти.


Vector2 minimap_size = Vector2(240, 160) 🔗

  • void set_minimap_size(value: Vector2)

  • Vector2 get_minimap_size()

Розмір прямокутника мінікарти. Сама карта базується на розмірі сітки та масштабується відповідно до цього прямокутника.


PanningScheme panning_scheme = 0 🔗

Визначає схему керування панорамуванням за допомогою колеса миші.


bool right_disconnects = false 🔗

  • void set_right_disconnects(value: bool)

  • bool is_right_disconnects_enabled()

Якщо true, увімкнено роз’єднання існуючих з’єднань у GraphEdit шляхом перетягування правого кінця.


Vector2 scroll_offset = Vector2(0, 0) 🔗

  • void set_scroll_offset(value: Vector2)

  • Vector2 get_scroll_offset()

Зсув прокручування.


bool show_arrange_button = true 🔗

  • void set_show_arrange_button(value: bool)

  • bool is_showing_arrange_button()

Якщо true, відображається кнопка для автоматичного впорядкування вузлів графа.


bool show_grid = true 🔗

  • void set_show_grid(value: bool)

  • bool is_showing_grid()

Якщо true, сітку видно.


bool show_grid_buttons = true 🔗

  • void set_show_grid_buttons(value: bool)

  • bool is_showing_grid_buttons()

Якщо true, відображаються кнопки, які дозволяють налаштувати сітку та параметри прив’язки.


bool show_menu = true 🔗

  • void set_show_menu(value: bool)

  • bool is_showing_menu()

Якщо true, панель інструментів меню буде видимою.


bool show_minimap_button = true 🔗

  • void set_show_minimap_button(value: bool)

  • bool is_showing_minimap_button()

Якщо true, кнопка для перемикання міні-карти відображається.


bool show_zoom_buttons = true 🔗

  • void set_show_zoom_buttons(value: bool)

  • bool is_showing_zoom_buttons()

Якщо true, відображаються кнопки, які дозволяють змінювати та скидати рівень масштабування.


bool show_zoom_label = false 🔗

  • void set_show_zoom_label(value: bool)

  • bool is_showing_zoom_label()

Якщо true, буде видно мітку з поточним рівнем масштабування. Рівень масштабування відображається у відсотках.


int snapping_distance = 20 🔗

  • void set_snapping_distance(value: int)

  • int get_snapping_distance()

Відстань прив’язки в пікселях також визначає відстань між лініями сітки.


bool snapping_enabled = true 🔗

  • void set_snapping_enabled(value: bool)

  • bool is_snapping_enabled()

Якщо true, вмикає прив’язку.


Dictionary type_names = {} 🔗

Dictionary назв типів портів, зрозумілих для людини.


float zoom = 1.0 🔗

Поточне значення масштабу.


float zoom_max = 2.0736003 🔗

  • void set_zoom_max(value: float)

  • float get_zoom_max()

Верхня межа масштабування.


float zoom_min = 0.23256795 🔗

  • void set_zoom_min(value: float)

  • float get_zoom_min()

Нижня межа масштабування.


float zoom_step = 1.2 🔗

  • void set_zoom_step(value: float)

  • float get_zoom_step()

Крок кожного рівня масштабування.


Описи методів

PackedVector2Array _get_connection_line(from_position: Vector2, to_position: Vector2) virtual const 🔗

Віртуальний метод, який можна змінити, щоб налаштувати спосіб малювання з’єднань.


bool _is_in_input_hotzone(in_node: Object, in_port: int, mouse_position: Vector2) virtual 🔗

Повертає, чи знаходиться mouse_position у гарячій зоні введення.

За замовчуванням гаряча зона — це Rect2, розташована таким чином, що її центр знаходиться в in_node.GraphNode.get_input_port_position()(in_port) (Для випадку виведення замість цього викличте GraphNode.get_output_port_position()). Ширина гарячої зони вдвічі перевищує властивість теми port_grab_distance_horizontal, а її висота вдвічі перевищує port_grab_distance_vertical.

Нижче наведено зразок коду, який допоможе почати:

func _is_in_input_hotzone(in_node, in_port, mouse_position):
    var port_size = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical"))
    var port_pos = in_node.get_position() + in_node.get_input_port_position(in_port) - port_size / 2
    var rect = Rect2(port_pos, port_size)

    return rect.has_point(mouse_position)

bool _is_in_output_hotzone(in_node: Object, in_port: int, mouse_position: Vector2) virtual 🔗

Повертає, чи знаходиться mouse_position у гарячій зоні виведення. Для отримання додаткової інформації про гарячі зони див. _is_in_input_hotzone().

Нижче наведено зразок коду, який допоможе почати:

func _is_in_output_hotzone(in_node, in_port, mouse_position):
    var port_size = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical"))
    var port_pos = in_node.get_position() + in_node.get_output_port_position(in_port) - port_size / 2
    var rect = Rect2(port_pos, port_size)

    return rect.has_point(mouse_position)

bool _is_node_hover_valid(from_node: StringName, from_port: int, to_node: StringName, to_port: int) virtual 🔗

Цей віртуальний метод можна використовувати для введення додаткового виявлення помилок, коли користувач перетягує з’єднання через дійсний порт.

Поверніть true, якщо з’єднання справді дійсне, або false, якщо з’єднання неможливе. Якщо підключення неможливе, прив’язка до порту і, отже, запит на підключення до цього порту не відбудеться.

У цьому прикладі з’єднання з тим самим вузлом пригнічено:

func _is_node_hover_valid(from, from_port, to, to_port):
    return from != to

void add_valid_connection_type(from_type: int, to_type: int) 🔗

Дозволяє підключення між двома різними типами портів. Тип порту визначається окремо для лівого та правого портів кожного слота за допомогою методу GraphNode.set_slot().

Дивіться також is_valid_connection_type() і remove_valid_connection_type().


void add_valid_left_disconnect_type(type: int) 🔗

Дозволяє відключати вузли під час перетягування з лівого порту слота GraphNode, якщо він має вказаний тип. Дивіться також remove_valid_left_disconnect_type().


void add_valid_right_disconnect_type(type: int) 🔗

Дозволяє відключати вузли під час перетягування з правого порту слота GraphNode, якщо він має вказаний тип. Дивіться також remove_valid_right_disconnect_type().


void arrange_nodes() 🔗

Змінює розташування вибраних вузлів у макеті з мінімальними перетинами між з’єднаннями та рівномірним горизонтальним і вертикальним проміжками між вузлами.


void attach_graph_element_to_frame(element: StringName, frame: StringName) 🔗

Приєднує element GraphElement до frame GraphFrame.


void clear_connections() 🔗

Видаляє всі зв'язки між вузлами.


Error connect_node(from_node: StringName, from_port: int, to_node: StringName, to_port: int, keep_alive: bool = false) 🔗

Створіть з’єднання між from_port from_node GraphNode і to_port to_node GraphNode. Якщо підключення вже існує, підключення не створюється.

З’єднання з keep_alive, встановленим на false, можуть автоматично видалятися, якщо під час перемальовування є недійсними.


void detach_graph_element_from_frame(element: StringName) 🔗

Від’єднує element GraphElement від GraphFrame, до якого він зараз прикріплений.


void disconnect_node(from_node: StringName, from_port: int, to_node: StringName, to_port: int) 🔗

Видаляє з’єднання між from_port from_node GraphNode і to_port to_node GraphNode. Якщо з’єднання не існує, жодне з’єднання не видаляється.


void force_connection_drag_end() 🔗

Завершує створення поточного підключення. Іншими словами, якщо ви перетягуєте з’єднання, ви можете використати цей метод, щоб перервати процес і видалити рядок, який слідує за курсором.

Це найкраще використовувати разом із connection_drag_started і connection_drag_ended, щоб додати спеціальну поведінку, як-от додавання вузлів за допомогою ярликів.

Примітка. Цей метод пригнічує будь-які інші сигнали запиту на з’єднання, крім connection_drag_ended.


Array[StringName] get_attached_nodes_of_frame(frame: StringName) 🔗

Повертає масив імен вузлів, які приєднані до GraphFrame із заданим іменем.


Dictionary get_closest_connection_at_point(point: Vector2, max_distance: float = 4.0) const 🔗

Повертає найближче з’єднання з заданою точкою простору екрана. Якщо з’єднання не знайдено в межах max_distance пікселів, повертається порожній Dictionary.

З’єднання представлено як Dictionary у формі:

{
    from_node: StringName,
    from_port: int,
    to_node: StringName,
    to_port: int,
    keep_alive: bool
}

Наприклад, отримати з’єднання в заданому положенні миші можна таким чином:

var connection = get_closest_connection_at_point(mouse_event.get_position())

int get_connection_count(from_node: StringName, from_port: int) 🔗

Повертає кількість підключень від from_port до from_node.


PackedVector2Array get_connection_line(from_node: Vector2, to_node: Vector2) const 🔗

Повертає точки, які створюють з’єднання між from_node і to_node.


Array[Dictionary] get_connection_list_from_node(node: StringName) const 🔗

Повертає Array, що містить список усіх з'єднань для node.

З'єднання представлено як Dictionary у вигляді:

{
    from_node: StringName,
    from_port: int,
    to_node: StringName,
    to_port: int,
    keep_alive: bool
}

Приклад: Отримати всі з’єднання на певному порту:

func get_connection_list_from_port(node, port):
    var connections = get_connection_list_from_node(node)
    var result = []
    for connection in connections:
        var dict = {}
        if connection["from_node"] == node and connection["from_port"] == port:
            dict["node"] = connection["to_node"]
            dict["port"] = connection["to_port"]
            dict["type"] = "left"
            result.push_back(dict)
        elif connection["to_node"] == node and connection["to_port"] == port:
            dict["node"] = connection["from_node"]
            dict["port"] = connection["from_port"]
            dict["type"] = "right"
            result.push_back(dict)
    return result

Array[Dictionary] get_connections_intersecting_with_rect(rect: Rect2) const 🔗

Повертає Array, що містить список з’єднань, які перетинаються з заданим Rect2.

З’єднання представлено як Dictionary у формі:

{
    from_node: StringName,
    from_port: int,
    to_node: StringName,
    to_port: int,
    keep_alive: bool
}

GraphFrame get_element_frame(element: StringName) 🔗

Повертаємо GraphFrame, що містить GraphElement з вказаною назвою.


HBoxContainer get_menu_hbox() 🔗

Отримує HBoxContainer, який містить елементи керування масштабуванням і прив’язкою сітки у верхньому лівому куті графіка. Ви можете використовувати цей метод, щоб змінити розташування панелі інструментів або додати до неї власні елементи керування.

Попередження: Це обов’язковий внутрішній вузол, його видалення та звільнення може призвести до збою. Якщо ви бажаєте приховати його чи будь-який із його дочірніх елементів, скористайтеся властивістю CanvasItem.visible.


bool is_node_connected(from_node: StringName, from_port: int, to_node: StringName, to_port: int) 🔗

Повертає true, якщо from_port from_node GraphNode підключено до to_port to_node GraphNode.


bool is_valid_connection_type(from_type: int, to_type: int) const 🔗

Повертає, чи можливо встановити з’єднання між двома різними типами портів. Тип порту визначається окремо для лівого та правого портів кожного слота за допомогою методу GraphNode.set_slot().

Дивіться також add_valid_connection_type() і remove_valid_connection_type().


void remove_valid_connection_type(from_type: int, to_type: int) 🔗

Забороняє з’єднання між двома різними типами портів, раніше дозволене add_valid_connection_type(). Тип порту визначається окремо для лівого та правого портів кожного слота за допомогою методу GraphNode.set_slot().

Дивіться також is_valid_connection_type().


void remove_valid_left_disconnect_type(type: int) 🔗

Забороняє відключення вузлів під час перетягування з лівого порту слота GraphNode, якщо він має вказаний тип. Використовуйте це, щоб вимкнути відключення, яке раніше було дозволено за допомогою методу add_valid_left_disconnect_type().


void remove_valid_right_disconnect_type(type: int) 🔗

Забороняє відключення вузлів під час перетягування з правого порту слота GraphNode, якщо він має вказаний тип. Використовуйте це, щоб вимкнути відключення, яке раніше було дозволено за допомогою методу add_valid_right_disconnect_type().


void set_connection_activity(from_node: StringName, from_port: int, to_node: StringName, to_port: int, amount: float) 🔗

Встановлює колір з’єднання між from_node from_port і to_node to_port кольором, наданим у властивості теми activity. Колір лінійно інтерполюється між кольором з’єднання та кольором активності, використовуючи amount як вагу.


void set_selected(node: Node) 🔗

Встановлює вказаний node як обраний.


Описи тематичної нерухомості

Color activity = Color(1, 1, 1, 1) 🔗

Колір, до якого інтерполюється лінія з’єднання на основі значення активності з’єднання (див. set_connection_activity()).


Color connection_hover_tint_color = Color(0, 0, 0, 0.3) 🔗

Колір, який зливається з лінією з’єднання, коли миша наводиться на неї.


Color connection_rim_color = Color(0.1, 0.1, 0.1, 0.6) 🔗

Колір обідка навколо кожної лінії з’єднання, який використовується для того, щоб лінії, що перетинаються, були більш помітними.


Color connection_valid_target_tint_color = Color(1, 1, 1, 0.4) 🔗

Колір, який змішується з лінією з’єднання, коли поточне перетягнуте з’єднання наводиться на дійсний цільовий порт.


Color grid_major = Color(1, 1, 1, 0.2) 🔗

Колір основних ліній/точок сітки.


Color grid_minor = Color(1, 1, 1, 0.05) 🔗

Колір другорядних ліній/точок сітки.


Color selection_fill = Color(1, 1, 1, 0.3) 🔗

Колір заливки прямокутника виділення.


Color selection_stroke = Color(1, 1, 1, 0.8) 🔗

Колір контуру виділеного прямокутника.


int connection_hover_thickness = 0 🔗

Розширює лінію з'єднання на певний відсоток, коли на неї наведено курсор миші. Значення 0 вимикає підсвічування. Значення 100 подвоює ширину лінії.


int port_hotzone_inner_extent = 22 🔗

Горизонтальний діапазон, у межах якого можна захопити порт (внутрішня сторона).


int port_hotzone_outer_extent = 26 🔗

Горизонтальний діапазон, у межах якого можна захопити порт (зовнішня сторона).


Texture2D grid_toggle 🔗

Піктограма кнопки перемикання сітки.


Texture2D layout 🔗

Піктограма кнопки макета для автоматичного впорядкування графіка.


Texture2D minimap_toggle 🔗

Піктограма кнопки перемикання міні-карти.


Texture2D snapping_toggle 🔗

Значок кнопки перемикання прив’язки.


Texture2D zoom_in 🔗

Піктограма для кнопки збільшення.


Texture2D zoom_out 🔗

Піктограма для кнопки зменшення.


Texture2D zoom_reset 🔗

Значок кнопки скидання масштабу.


StyleBox menu_panel 🔗

There is currently no description for this theme property. Please help us by contributing one!


StyleBox panel 🔗

Фон, намальований під сіткою.


StyleBox panel_focus 🔗

StyleBox використовується, коли фокусовано GraphEdit (при використанні з допоміжними програмами).