EditorDock

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

Наследует: MarginContainer < Container < Control < CanvasItem < Node < Object

Наследуется от: FileSystemDock

Встраиваемый контейнер для редактора.

Описание

EditorDock — это узел Container, который можно закрепить в одном из слотов док-панели редактора. Док-панели добавляются плагинами, чтобы предоставить место для элементов управления, связанных с EditorPlugin. Редактор поставляется с несколькими встроенными док-панелями, такими как док-панель сцены, док-панель файловой системы и т. д.

Вы можете добавить док-панель, используя EditorPlugin.add_dock(). Док-панель можно настроить, изменив её свойства.

@tool
extends EditorPlugin

# Ссылка на док
var dock

# Инициализация плагина.
func _enter_tree():
    dock = EditorDock.new()
    dock.title = "My Dock"
    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

Обучающие материалы

Свойства

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() 🔗

Событие возникает при закрытии панели Dock с помощью кнопки «Закрыть» во всплывающем окне контекста, до того, как панель будет удалена из родительского элемента. См. closable.


Перечисления

flags DockLayout: 🔗

DockLayout DOCK_LAYOUT_VERTICAL = 1

Позволяет размещать панель Dock в вертикальных слотах Dock по обеим сторонам редактора.

DockLayout DOCK_LAYOUT_HORIZONTAL = 2

Позволяет разместить панель Dock в нижней панели редактора.

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_MAX = 9

Представляет размер перечисления DockSlot.


Описания свойств

BitField[DockLayout] available_layouts = 5 🔗

  • void set_available_layouts(value: BitField[DockLayout])

  • BitField[DockLayout] get_available_layouts()

Доступные варианты расположения элементов для этой панели Dock представлены в виде битовой маски. По умолчанию панель Dock поддерживает вертикальное и плавающее расположение элементов.


bool closable = false 🔗

  • void set_closable(value: bool)

  • bool is_closable()

Если true, панель Dock можно закрыть с помощью кнопки «Закрыть» во всплывающем окне. Панели Dock с включенной опцией global всегда можно закрыть.


DockSlot default_slot = -1 🔗

Слот док-панели по умолчанию, используемый при добавлении док-панели с помощью EditorPlugin.add_dock().

После добавления док-панели её можно переместить в другой слот, и редактор автоматически запомнит её положение между сессиями. Если вы удалите и снова добавите док-панель, её положение будет сброшено до значения по умолчанию.


Texture2D dock_icon 🔗

Иконка для панели Dock в виде текстуры. Если указано, она переопределит icon_name.


Shortcut dock_shortcut 🔗

Быстрая клавиша для открытия док-станции.


bool force_show_icon = false 🔗

  • void set_force_show_icon(value: bool)

  • bool get_force_show_icon()

Если true, то на панели Dock всегда будет отображаться значок, независимо от EditorSettings.interface/editor/dock_tab_style или EditorSettings.interface/editor/bottom_dock_tab_style.


bool global = true 🔗

  • void set_global(value: bool)

  • bool is_global()

Если true, панель отображается в меню Редактор > Панели редактора и может быть закрыта. Панели, не являющиеся глобальными, также могут быть закрыты с помощью close() или когда closable имеет значение true.


StringName icon_name = &"" 🔗

Значок для панели Dock, название которого взято из типа темы EditorIcons в теме редактора. Список доступных значков можно найти здесь.


String layout_key = "" 🔗

  • void set_layout_key(value: String)

  • String get_layout_key()

Ключ, представляющий эту панель в файле макета редактора. Если поле пустое, будет использоваться отображаемое имя панели.


String title = "" 🔗

Заголовок вкладки панели Dock. Если поле пустое, будет использовано имя Node.name панели Dock. Если имя генерируется автоматически (содержит @), вместо него будет использовано имя первого дочернего элемента.


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

  • void set_title_color(value: Color)

  • Color get_title_color()

Цвет заголовка вкладки в доке. Если его прозрачность равна 0.0, будет использоваться цвет шрифта по умолчанию.


bool transient = false 🔗

  • void set_transient(value: bool)

  • bool is_transient()

Если true, панель Dock не открывается и не закрывается автоматически при загрузке макета редактора, а только перемещается. Её также нельзя открыть с помощью сочетания клавиш. Это относится к панелям Dock, которые открываются и закрываются в определённых случаях, например, при выборе узла TileMap или AnimationTree.


Описания метода

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

Реализуйте этот метод для обработки загрузки макета этой панели Dock. Он эквивалентен методу 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 🔗

Реализуйте этот метод для обработки переключения макета для этой панели DockLayout. layout — одна из констант DockLayout.

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

void close() 🔗

Закрывает панель Dock, скрывая соответствующую вкладку.


void make_visible() 🔗

Фокусирует вкладку (или окно, если оно плавающее) док-панели. Если док-панель была закрыта, она откроется. Если это нижняя док-панель, делает видимой нижнюю панель.


void open() 🔗

Открывает док-панель. Она появится в последнем использованном слоте док-панели. Если у док-панели нет слота по умолчанию, она будет открыта в плавающем режиме.

Примечание: Этот метод не фокусирует док-панель. Если вы хотите открыть и сфокусировать док-панель, используйте make_visible().