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.

EditorDock

Експериментальний: This class may be changed or removed in future versions.

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

Успадковано від: FileSystemDock

Закріплюваний контейнер для редактора.

Опис

EditorDock — це вузол Container, який можна закріпити в одному зі слотів док-станції редактора. Доки додаються плагінами, щоб забезпечити місце для елементів керування, пов'язаних з EditorPlugin. Редактор постачається з кількома вбудованими доками, такими як док-станція Scene, док-станція FileSystem тощо.

Ви можете додати док-станцію за допомогою методу EditorPlugin.add_dock(). Док-станцію можна налаштувати, змінивши її властивості.

@tool
extends EditorPlugin

# Посилання на док-станцію.
var dock

# Ініціалізація плагіна.
 func _enter_tree():
dock = EditorDock.new()
dock.title = "Мій Док"
dock.dock_icon = preload("./dock_icon.png")
dock.default_slot = EditorDock.DOCK_SLOT_RIGHT_UL
var dock_content = preload("./dock_content.tscn").instantiate()
dock.add_child(dock_content)
add_dock(dock)

# Очищення плагіна.
func _exit_tree():
remove_dock(dock)
dock.queue_free()
dock = null

Посібники

Властивості

bool

accessibility_region

true (overrides Container)

BitField[DockLayout]

available_layouts

5

bool

closable

false

DockSlot

default_slot

-1

Texture2D

dock_icon

Shortcut

dock_shortcut

bool

force_show_icon

false

bool

global

true

StringName

icon_name

&""

String

layout_key

""

String

title

""

Color

title_color

Color(0, 0, 0, 0)

bool

transient

false

Методи

void

_load_layout_from_config(config: ConfigFile, section: String) virtual

void

_save_layout_to_config(config: ConfigFile, section: String) virtual const

void

_update_layout(layout: int) virtual

void

close()

void

make_visible()

void

open()


Сигнали

closed() 🔗

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


opened() 🔗

Emitted when the dock is opened via the Editor > Editor Docks menu, before it's made visible.


Переліки

flags DockLayout: 🔗

DockLayout DOCK_LAYOUT_VERTICAL = 1

Дозволяє розмістити док у вертикальних слотах док-станції з обох боків редактора.

DockLayout DOCK_LAYOUT_HORIZONTAL = 2

Allows placing the dock in the horizontal dock slots at the bottom.

DockLayout DOCK_LAYOUT_FLOATING = 4

Дозволяє зробити док плаваючим (відкритим як окреме вікно).

DockLayout DOCK_LAYOUT_ALL = 7

Дозволяє розмістити док-станцію у всіх доступних слотах.


enum DockSlot: 🔗

DockSlot DOCK_SLOT_NONE = -1

Док закритий.

DockSlot DOCK_SLOT_LEFT_UL = 0

Дак слот, ліва сторона, верхній лівий (порожня в макеті за замовчуванням).

DockSlot DOCK_SLOT_LEFT_BL = 1

Дак слот, ліва сторона, низ-ліва (порожня в макеті за замовчуванням).

DockSlot DOCK_SLOT_LEFT_UR = 2

Дак слот, ліва сторона, верхній правий (в розкладі за замовчуванням включає сцену і імпорт доки).

DockSlot DOCK_SLOT_LEFT_BR = 3

Слот для док-станції, ліворуч, внизу праворуч (у стандартній розкладці включає доки файлової системи та історії).

DockSlot DOCK_SLOT_RIGHT_UL = 4

Слот для застикання, справа, угорі ліворуч (у стандартній розкладці включає застикання Інспектора, Сигнала та Групи).

DockSlot DOCK_SLOT_RIGHT_BL = 5

Дак слот, права сторона, низ-ліва (порожня в макеті за замовчуванням).

DockSlot DOCK_SLOT_RIGHT_UR = 6

Дак слот, права сторона, верхній правий (порожня в макеті за замовчуванням).

DockSlot DOCK_SLOT_RIGHT_BR = 7

Дак слот, права сторона, нижня права (порожня в макеті за замовчуванням).

DockSlot DOCK_SLOT_BOTTOM = 8

Нижня панель.

DockSlot DOCK_SLOT_BOTTOM_L = 9

Dock slot at the bottom, below bottom panel, on the left side.

DockSlot DOCK_SLOT_BOTTOM_R = 10

Dock slot at the bottom, below bottom panel, on the right side.

DockSlot DOCK_SLOT_MAX = 11

Представляє розмір DockSlot enum.


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

BitField[DockLayout] available_layouts = 5 🔗

  • void set_available_layouts(value: BitField[DockLayout])

  • BitField[DockLayout] get_available_layouts()

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


bool closable = false 🔗

  • void set_closable(value: bool)

  • bool is_closable()

Якщо true, док можна закрити кнопкою «Закрити» у контекстному вікні. Доки з увімкненим global завжди можна закрити..


DockSlot default_slot = -1 🔗

Стандартний слот дока, який використовується під час додавання дока за допомогою EditorPlugin.add_dock().

Після додавання дока його можна перемістити в інший слот, і редактор автоматично запам'ятає його положення між сеансами. Якщо видалити та знову додати док, його значення буде скинуто до стандартного.


Texture2D dock_icon 🔗

  • void set_dock_icon(value: Texture2D)

  • Texture2D get_dock_icon()

Піктограма для дока, як текстура. Якщо вказано, вона замінить icon_name.


Shortcut dock_shortcut 🔗

  • void set_dock_shortcut(value: Shortcut)

  • Shortcut get_dock_shortcut()

Ярлик, який використовується для відкриття дока.


bool force_show_icon = false 🔗

  • void set_force_show_icon(value: bool)

  • bool get_force_show_icon()

If true, the dock will always display an icon, regardless of EditorSettings.interface/editor/docks/dock_tab_style or EditorSettings.interface/editor/docks/bottom_dock_tab_style.


bool global = true 🔗

  • void set_global(value: bool)

  • bool is_global()

Якщо true, док відображається в меню Редактор > Доки редактора і його можна закрити. Неглобальні доки все ще можна закрити за допомогою методу close або коли closable true.


StringName icon_name = &"" 🔗

  • void set_icon_name(value: StringName)

  • StringName get_icon_name()

Піктограма для дока, як назва з типу теми EditorIcons у темі редактора. Список доступних піктограм можна знайти тут.


String layout_key = "" 🔗

  • void set_layout_key(value: String)

  • String get_layout_key()

Ключ, що представляє цей док у файлі макета редактора. Якщо порожній, буде використано відображену назву дока.


String title = "" 🔗

  • void set_title(value: String)

  • String get_title()

Назва вкладки дока. Якщо порожня, буде використано Node.name дока. Якщо назва згенерована автоматично (містить @), буде використано назву першого дочірнього елемента.


Color title_color = Color(0, 0, 0, 0) 🔗

  • void set_title_color(value: Color)

  • Color get_title_color()

Колір заголовка вкладки Dock. Якщо його альфа-кадр дорівнює 0.0, буде використано колір шрифту за замовчуванням.


bool transient = false 🔗

  • void set_transient(value: bool)

  • bool is_transient()

Якщо значення true, док не відкривається та не закривається автоматично під час завантаження макета редактора, а лише переміщується. Його також не можна відкрити за допомогою комбінації клавіш. Це призначено для доків, які відкриваються та закриваються в певних випадках, наприклад, під час вибору вузла TileMap або AnimationTree.


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

void _load_layout_from_config(config: ConfigFile, section: String) virtual 🔗

Реалізуйте цей метод для обробки завантаження макета цього дока. Він еквівалентний EditorPlugin._set_window_layout(). section – це унікальна секція, що базується на layout_key.


void _save_layout_to_config(config: ConfigFile, section: String) virtual const 🔗

Реалізуйте цей метод для збереження макета цього дока. Він еквівалентний методу EditorPlugin._get_window_layout(). section – це унікальна секція, що базується на layout_key.


void _update_layout(layout: int) virtual 🔗

Реалізуйте цей метод для обробки перемикання макета для цього доку. layout є однією з констант DockLayout.

func _update_layout(layout):
    box_container.vertical = (layout == DOCK_LAYOUT_VERTICAL)

void close() 🔗

Закриває док, приховуючи його вкладку.


void make_visible() 🔗

Фокусує вкладку дока (або вікно, якщо воно плаваюче). Якщо док був закритий, він буде відкритий. Якщо це нижній док, робить нижню панель видимою.


void open() 🔗

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

Примітка: Це не переводить док у фокус. Якщо ви хочете відкрити та перевести док у фокус, використовуйте make_visible().