Remove DockConstants
This commit is contained in:
parent
a4bbad2ba8
commit
4e34dc0b4d
8 changed files with 110 additions and 157 deletions
|
|
@ -1,55 +0,0 @@
|
|||
/**************************************************************************/
|
||||
/* dock_constants.h */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace DockConstants {
|
||||
|
||||
enum DockSlot {
|
||||
DOCK_SLOT_NONE = -1,
|
||||
DOCK_SLOT_LEFT_UL,
|
||||
DOCK_SLOT_LEFT_BL,
|
||||
DOCK_SLOT_LEFT_UR,
|
||||
DOCK_SLOT_LEFT_BR,
|
||||
DOCK_SLOT_RIGHT_UL,
|
||||
DOCK_SLOT_RIGHT_BL,
|
||||
DOCK_SLOT_RIGHT_UR,
|
||||
DOCK_SLOT_RIGHT_BR,
|
||||
DOCK_SLOT_BOTTOM,
|
||||
DOCK_SLOT_MAX
|
||||
};
|
||||
|
||||
enum DockLayout {
|
||||
DOCK_LAYOUT_VERTICAL = 1,
|
||||
DOCK_LAYOUT_HORIZONTAL = 2,
|
||||
DOCK_LAYOUT_FLOATING = 4,
|
||||
};
|
||||
|
||||
}; //namespace DockConstants
|
||||
|
|
@ -203,6 +203,10 @@ void EditorDock::set_dock_shortcut(const Ref<Shortcut> &p_shortcut) {
|
|||
_emit_changed();
|
||||
}
|
||||
|
||||
Ref<Shortcut> EditorDock::get_dock_shortcut() const {
|
||||
return shortcut;
|
||||
}
|
||||
|
||||
void EditorDock::set_default_slot(DockSlot p_slot) {
|
||||
ERR_FAIL_INDEX(p_slot, DOCK_SLOT_MAX);
|
||||
default_slot = p_slot;
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
#pragma once
|
||||
|
||||
#include "core/io/config_file.h"
|
||||
#include "editor/docks/dock_constants.h"
|
||||
#include "scene/gui/margin_container.h"
|
||||
|
||||
class Shortcut;
|
||||
|
|
@ -42,24 +41,24 @@ class EditorDock : public MarginContainer {
|
|||
|
||||
public:
|
||||
enum DockLayout {
|
||||
DOCK_LAYOUT_VERTICAL = DockConstants::DOCK_LAYOUT_VERTICAL,
|
||||
DOCK_LAYOUT_HORIZONTAL = DockConstants::DOCK_LAYOUT_HORIZONTAL,
|
||||
DOCK_LAYOUT_FLOATING = DockConstants::DOCK_LAYOUT_FLOATING,
|
||||
DOCK_LAYOUT_VERTICAL = 1,
|
||||
DOCK_LAYOUT_HORIZONTAL = 2,
|
||||
DOCK_LAYOUT_FLOATING = 4,
|
||||
DOCK_LAYOUT_ALL = DOCK_LAYOUT_VERTICAL | DOCK_LAYOUT_HORIZONTAL | DOCK_LAYOUT_FLOATING,
|
||||
};
|
||||
|
||||
enum DockSlot {
|
||||
DOCK_SLOT_NONE = DockConstants::DOCK_SLOT_NONE,
|
||||
DOCK_SLOT_LEFT_UL = DockConstants::DOCK_SLOT_LEFT_UL,
|
||||
DOCK_SLOT_LEFT_BL = DockConstants::DOCK_SLOT_LEFT_BL,
|
||||
DOCK_SLOT_LEFT_UR = DockConstants::DOCK_SLOT_LEFT_UR,
|
||||
DOCK_SLOT_LEFT_BR = DockConstants::DOCK_SLOT_LEFT_BR,
|
||||
DOCK_SLOT_RIGHT_UL = DockConstants::DOCK_SLOT_RIGHT_UL,
|
||||
DOCK_SLOT_RIGHT_BL = DockConstants::DOCK_SLOT_RIGHT_BL,
|
||||
DOCK_SLOT_RIGHT_UR = DockConstants::DOCK_SLOT_RIGHT_UR,
|
||||
DOCK_SLOT_RIGHT_BR = DockConstants::DOCK_SLOT_RIGHT_BR,
|
||||
DOCK_SLOT_BOTTOM = DockConstants::DOCK_SLOT_BOTTOM,
|
||||
DOCK_SLOT_MAX = DockConstants::DOCK_SLOT_MAX
|
||||
DOCK_SLOT_NONE = -1,
|
||||
DOCK_SLOT_LEFT_UL,
|
||||
DOCK_SLOT_LEFT_BL,
|
||||
DOCK_SLOT_LEFT_UR,
|
||||
DOCK_SLOT_LEFT_BR,
|
||||
DOCK_SLOT_RIGHT_UL,
|
||||
DOCK_SLOT_RIGHT_BL,
|
||||
DOCK_SLOT_RIGHT_UR,
|
||||
DOCK_SLOT_RIGHT_BR,
|
||||
DOCK_SLOT_BOTTOM,
|
||||
DOCK_SLOT_MAX
|
||||
};
|
||||
|
||||
private:
|
||||
|
|
@ -86,7 +85,7 @@ private:
|
|||
bool enabled = true;
|
||||
int previous_tab_index = -1;
|
||||
WindowWrapper *dock_window = nullptr;
|
||||
int dock_slot_index = DockConstants::DOCK_SLOT_NONE;
|
||||
int dock_slot_index = DOCK_SLOT_NONE;
|
||||
|
||||
void _set_default_slot_bind(DockSlot p_slot);
|
||||
DockSlot _get_default_slot_bind() const { return default_slot; }
|
||||
|
|
@ -133,7 +132,7 @@ public:
|
|||
Color get_title_color() const { return title_color; }
|
||||
|
||||
void set_dock_shortcut(const Ref<Shortcut> &p_shortcut);
|
||||
Ref<Shortcut> get_dock_shortcut() const { return shortcut; }
|
||||
Ref<Shortcut> get_dock_shortcut() const;
|
||||
|
||||
void set_default_slot(DockSlot p_slot);
|
||||
DockSlot get_default_slot() const { return default_slot; }
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ void EditorDockDragHint::gui_input(const Ref<InputEvent> &p_event) {
|
|||
}
|
||||
}
|
||||
|
||||
void EditorDockDragHint::set_slot(DockConstants::DockSlot p_slot) {
|
||||
void EditorDockDragHint::set_slot(EditorDock::DockSlot p_slot) {
|
||||
occupied_slot = p_slot;
|
||||
drop_tabbar = dock_manager->dock_slots[occupied_slot].container->get_tab_bar();
|
||||
}
|
||||
|
|
@ -128,7 +128,7 @@ void EditorDockDragHint::_notification(int p_what) {
|
|||
return;
|
||||
}
|
||||
|
||||
can_drop_dock = dragged_dock->get_available_layouts() & (EditorDock::DockLayout)EditorDockManager::get_singleton()->dock_slots[occupied_slot].layout;
|
||||
can_drop_dock = dragged_dock->get_available_layouts() & EditorDockManager::get_singleton()->dock_slots[occupied_slot].layout;
|
||||
|
||||
dock_drop_highlight->set_border_color(valid_drop_color);
|
||||
dock_drop_highlight->set_bg_color(valid_drop_color * Color(1, 1, 1, 0.1));
|
||||
|
|
@ -246,7 +246,7 @@ EditorDock *EditorDockManager::_get_dock_tab_dragged() {
|
|||
return dock_tab_dragged;
|
||||
}
|
||||
|
||||
Dictionary dock_drop_data = dock_slots[DockConstants::DOCK_SLOT_LEFT_BL].container->get_viewport()->gui_get_drag_data();
|
||||
Dictionary dock_drop_data = dock_slots[EditorDock::DOCK_SLOT_LEFT_BL].container->get_viewport()->gui_get_drag_data();
|
||||
|
||||
// Check if we are dragging a dock.
|
||||
if (dock_drop_data.get("type", "").operator String() != "tab") {
|
||||
|
|
@ -270,7 +270,7 @@ EditorDock *EditorDockManager::_get_dock_tab_dragged() {
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
for (int i = 0; i < DockConstants::DOCK_SLOT_MAX; i++) {
|
||||
for (int i = 0; i < EditorDock::DOCK_SLOT_MAX; i++) {
|
||||
if (dock_slots[i].container->is_visible_in_tree()) {
|
||||
dock_slots[i].drag_hint->set_rect(dock_slots[i].container->get_global_rect());
|
||||
dock_slots[i].drag_hint->show();
|
||||
|
|
@ -376,7 +376,7 @@ void EditorDockManager::_window_close_request(WindowWrapper *p_wrapper) {
|
|||
EditorDock *dock = _close_window(p_wrapper);
|
||||
ERR_FAIL_COND(!all_docks.has(dock));
|
||||
|
||||
if (dock->dock_slot_index != DockConstants::DOCK_SLOT_NONE) {
|
||||
if (dock->dock_slot_index != EditorDock::DOCK_SLOT_NONE) {
|
||||
dock->is_open = false;
|
||||
open_dock(dock);
|
||||
focus_dock(dock);
|
||||
|
|
@ -597,7 +597,7 @@ void EditorDockManager::_update_tab_style(EditorDock *p_dock) {
|
|||
|
||||
void EditorDockManager::save_docks_to_config(Ref<ConfigFile> p_layout, const String &p_section) const {
|
||||
// Save docks by dock slot.
|
||||
for (int i = 0; i < DockConstants::DOCK_SLOT_MAX; i++) {
|
||||
for (int i = 0; i < EditorDock::DOCK_SLOT_MAX; i++) {
|
||||
const DockSlot &dock_slot = dock_slots[i];
|
||||
|
||||
PackedStringArray names;
|
||||
|
|
@ -724,7 +724,7 @@ void EditorDockManager::load_docks_from_config(Ref<ConfigFile> p_layout, const S
|
|||
}
|
||||
|
||||
// Load docks by slot. Index -1 is for docks that have no slot.
|
||||
for (int i = -1; i < DockConstants::DOCK_SLOT_MAX; i++) {
|
||||
for (int i = -1; i < EditorDock::DOCK_SLOT_MAX; i++) {
|
||||
if (!p_layout->has_section_key(p_section, "dock_" + itos(i + 1))) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -767,12 +767,12 @@ void EditorDockManager::load_docks_from_config(Ref<ConfigFile> p_layout, const S
|
|||
}
|
||||
|
||||
// Set the selected tabs.
|
||||
for (int i = 0; i < DockConstants::DOCK_SLOT_MAX; i++) {
|
||||
for (int i = 0; i < EditorDock::DOCK_SLOT_MAX; i++) {
|
||||
const DockSlot &dock_slot = dock_slots[i];
|
||||
|
||||
int selected_tab_idx = p_layout->get_value(p_section, "dock_" + itos(i + 1) + "_selected_tab_idx", -1);
|
||||
if (selected_tab_idx <= 0 || selected_tab_idx >= dock_slot.container->get_tab_count()) {
|
||||
if (i == DockConstants::DOCK_SLOT_BOTTOM) {
|
||||
if (i == EditorDock::DOCK_SLOT_BOTTOM) {
|
||||
dock_slot.container->set_current_tab(-1);
|
||||
}
|
||||
continue;
|
||||
|
|
@ -859,7 +859,7 @@ void EditorDockManager::open_dock(EditorDock *p_dock, bool p_set_current) {
|
|||
p_dock->is_open = true;
|
||||
|
||||
// Open dock to its previous location.
|
||||
if (p_dock->dock_slot_index != DockConstants::DOCK_SLOT_NONE) {
|
||||
if (p_dock->dock_slot_index != EditorDock::DOCK_SLOT_NONE) {
|
||||
TabContainer *slot = dock_slots[p_dock->dock_slot_index].container;
|
||||
int tab_index = p_dock->previous_tab_index;
|
||||
if (tab_index < 0) {
|
||||
|
|
@ -964,9 +964,9 @@ void EditorDockManager::set_docks_visible(bool p_show) {
|
|||
return;
|
||||
}
|
||||
docks_visible = p_show;
|
||||
for (int i = 0; i < DockConstants::DOCK_SLOT_BOTTOM; i++) {
|
||||
for (int i = 0; i < EditorDock::DOCK_SLOT_BOTTOM; i++) {
|
||||
// Show and hide in reverse order due to the SplitContainer prioritizing the last split offset.
|
||||
TabContainer *container = dock_slots[docks_visible ? i : DockConstants::DOCK_SLOT_BOTTOM - i - 1].container;
|
||||
TabContainer *container = dock_slots[docks_visible ? i : EditorDock::DOCK_SLOT_BOTTOM - i - 1].container;
|
||||
container->set_visible(docks_visible && container->get_tab_count() > 0);
|
||||
}
|
||||
_update_layout();
|
||||
|
|
@ -983,7 +983,7 @@ void EditorDockManager::update_tab_styles() {
|
|||
}
|
||||
|
||||
void EditorDockManager::set_tab_icon_max_width(int p_max_width) {
|
||||
for (int i = 0; i < DockConstants::DOCK_SLOT_MAX; i++) {
|
||||
for (int i = 0; i < EditorDock::DOCK_SLOT_MAX; i++) {
|
||||
TabContainer *tab_container = dock_slots[i].container;
|
||||
tab_container->add_theme_constant_override(SNAME("icon_max_width"), p_max_width);
|
||||
}
|
||||
|
|
@ -999,9 +999,9 @@ void EditorDockManager::set_hsplit(DockSplitContainer *p_split) {
|
|||
p_split->connect("dragged", callable_mp(this, &EditorDockManager::_dock_split_dragged));
|
||||
}
|
||||
|
||||
void EditorDockManager::register_dock_slot(DockConstants::DockSlot p_dock_slot, TabContainer *p_tab_container, DockConstants::DockLayout p_layout) {
|
||||
void EditorDockManager::register_dock_slot(EditorDock::DockSlot p_dock_slot, TabContainer *p_tab_container, EditorDock::DockLayout p_layout) {
|
||||
ERR_FAIL_NULL(p_tab_container);
|
||||
ERR_FAIL_INDEX(p_dock_slot, DockConstants::DOCK_SLOT_MAX);
|
||||
ERR_FAIL_INDEX(p_dock_slot, EditorDock::DOCK_SLOT_MAX);
|
||||
|
||||
DockSlot slot;
|
||||
slot.layout = p_layout;
|
||||
|
|
@ -1020,7 +1020,7 @@ void EditorDockManager::register_dock_slot(DockConstants::DockSlot p_dock_slot,
|
|||
p_tab_container->set_meta("dock_slot", p_dock_slot);
|
||||
p_tab_container->set_meta("dock_layout", p_layout);
|
||||
|
||||
if (p_layout == DockConstants::DOCK_LAYOUT_VERTICAL) {
|
||||
if (p_layout == EditorDock::DOCK_LAYOUT_VERTICAL) {
|
||||
p_tab_container->set_custom_minimum_size(Size2(170, 0) * EDSCALE);
|
||||
p_tab_container->set_v_size_flags(Control::SIZE_EXPAND_FILL);
|
||||
p_tab_container->set_use_hidden_tabs_for_min_size(true);
|
||||
|
|
@ -1121,7 +1121,7 @@ void DockContextPopup::_float_dock() {
|
|||
}
|
||||
|
||||
bool DockContextPopup::_is_slot_available(int p_slot) const {
|
||||
return context_dock->available_layouts & (EditorDock::DockLayout)EditorDockManager::get_singleton()->dock_slots[p_slot].layout;
|
||||
return context_dock->available_layouts & EditorDockManager::get_singleton()->dock_slots[p_slot].layout;
|
||||
}
|
||||
|
||||
void DockContextPopup::_dock_select_input(const Ref<InputEvent> &p_input) {
|
||||
|
|
@ -1131,7 +1131,7 @@ void DockContextPopup::_dock_select_input(const Ref<InputEvent> &p_input) {
|
|||
Vector2 point = me->get_position();
|
||||
|
||||
int over_dock_slot = -1;
|
||||
for (int i = 0; i < DockConstants::DOCK_SLOT_MAX; i++) {
|
||||
for (int i = 0; i < EditorDock::DOCK_SLOT_MAX; i++) {
|
||||
if (dock_select_rects[i].has_point(point)) {
|
||||
over_dock_slot = i;
|
||||
break;
|
||||
|
|
@ -1184,25 +1184,25 @@ void DockContextPopup::_dock_select_draw() {
|
|||
Rect2 center_panel_rect(center_panel_width, 0, center_panel_width, dock_size.y);
|
||||
|
||||
if (dock_select->is_layout_rtl()) {
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_RIGHT_UR] = Rect2(Point2(), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_RIGHT_BR] = Rect2(Point2(0, dock_size.y), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_RIGHT_UL] = Rect2(Point2(dock_size.x, 0), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_RIGHT_BL] = Rect2(dock_size, dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_LEFT_UR] = Rect2(Point2(dock_size.x * 4, 0), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_LEFT_BR] = Rect2(Point2(dock_size.x * 4, dock_size.y), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_LEFT_UL] = Rect2(Point2(dock_size.x * 5, 0), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_LEFT_BL] = Rect2(Point2(dock_size.x * 5, dock_size.y), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_RIGHT_UR] = Rect2(Point2(), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_RIGHT_BR] = Rect2(Point2(0, dock_size.y), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_RIGHT_UL] = Rect2(Point2(dock_size.x, 0), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_RIGHT_BL] = Rect2(dock_size, dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_LEFT_UR] = Rect2(Point2(dock_size.x * 4, 0), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_LEFT_BR] = Rect2(Point2(dock_size.x * 4, dock_size.y), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_LEFT_UL] = Rect2(Point2(dock_size.x * 5, 0), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_LEFT_BL] = Rect2(Point2(dock_size.x * 5, dock_size.y), dock_size);
|
||||
} else {
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_LEFT_UL] = Rect2(Point2(), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_LEFT_BL] = Rect2(Point2(0, dock_size.y), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_LEFT_UR] = Rect2(Point2(dock_size.x, 0), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_LEFT_BR] = Rect2(dock_size, dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_RIGHT_UL] = Rect2(Point2(dock_size.x * 4, 0), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_RIGHT_BL] = Rect2(Point2(dock_size.x * 4, dock_size.y), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_RIGHT_UR] = Rect2(Point2(dock_size.x * 5, 0), dock_size);
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_RIGHT_BR] = Rect2(Point2(dock_size.x * 5, dock_size.y), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_LEFT_UL] = Rect2(Point2(), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_LEFT_BL] = Rect2(Point2(0, dock_size.y), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_LEFT_UR] = Rect2(Point2(dock_size.x, 0), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_LEFT_BR] = Rect2(dock_size, dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_RIGHT_UL] = Rect2(Point2(dock_size.x * 4, 0), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_RIGHT_BL] = Rect2(Point2(dock_size.x * 4, dock_size.y), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_RIGHT_UR] = Rect2(Point2(dock_size.x * 5, 0), dock_size);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_RIGHT_BR] = Rect2(Point2(dock_size.x * 5, dock_size.y), dock_size);
|
||||
}
|
||||
dock_select_rects[DockConstants::DOCK_SLOT_BOTTOM] = Rect2(center_panel_width, dock_size.y, center_panel_width, dock_size.y);
|
||||
dock_select_rects[EditorDock::DOCK_SLOT_BOTTOM] = Rect2(center_panel_width, dock_size.y, center_panel_width, dock_size.y);
|
||||
|
||||
int rtl_dir = dock_select->is_layout_rtl() ? -1 : 1;
|
||||
real_t tab_height = 3.0 * EDSCALE;
|
||||
|
|
@ -1221,8 +1221,8 @@ void DockContextPopup::_dock_select_draw() {
|
|||
dock_select->draw_rect(center_panel_draw_rect, unusable_dock_color);
|
||||
|
||||
// Draw all dock slots.
|
||||
for (int i = 0; i < DockConstants::DOCK_SLOT_MAX; i++) {
|
||||
int max_tabs = (i == DockConstants::DOCK_SLOT_BOTTOM) ? 6 : 3;
|
||||
for (int i = 0; i < EditorDock::DOCK_SLOT_MAX; i++) {
|
||||
int max_tabs = (i == EditorDock::DOCK_SLOT_BOTTOM) ? 6 : 3;
|
||||
const EditorDockManager::DockSlot &dock_slot = dock_manager->dock_slots[i];
|
||||
|
||||
Rect2 dock_slot_draw_rect = dock_select_rects[i].grow_individual(-dock_spacing, -dock_top_spacing, -dock_spacing, -dock_spacing);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "editor/docks/dock_constants.h"
|
||||
#include "editor/docks/editor_dock.h"
|
||||
#include "scene/gui/popup.h"
|
||||
#include "scene/gui/split_container.h"
|
||||
|
||||
|
|
@ -91,10 +91,10 @@ private:
|
|||
struct DockSlot {
|
||||
TabContainer *container = nullptr;
|
||||
EditorDockDragHint *drag_hint = nullptr;
|
||||
DockConstants::DockLayout layout = DockConstants::DOCK_LAYOUT_VERTICAL;
|
||||
EditorDock::DockLayout layout = EditorDock::DOCK_LAYOUT_VERTICAL;
|
||||
};
|
||||
|
||||
DockSlot dock_slots[DockConstants::DOCK_SLOT_MAX];
|
||||
DockSlot dock_slots[EditorDock::DOCK_SLOT_MAX];
|
||||
Vector<WindowWrapper *> dock_windows;
|
||||
LocalVector<EditorDock *> all_docks;
|
||||
HashSet<EditorDock *> dirty_docks;
|
||||
|
|
@ -138,7 +138,7 @@ public:
|
|||
|
||||
void add_vsplit(DockSplitContainer *p_split);
|
||||
void set_hsplit(DockSplitContainer *p_split);
|
||||
void register_dock_slot(DockConstants::DockSlot p_dock_slot, TabContainer *p_tab_container, DockConstants::DockLayout p_layout);
|
||||
void register_dock_slot(EditorDock::DockSlot p_dock_slot, TabContainer *p_tab_container, EditorDock::DockLayout p_layout);
|
||||
int get_vsplit_count() const;
|
||||
PopupMenu *get_docks_menu();
|
||||
|
||||
|
|
@ -167,7 +167,7 @@ class EditorDockDragHint : public Control {
|
|||
|
||||
private:
|
||||
EditorDockManager *dock_manager = nullptr;
|
||||
DockConstants::DockSlot occupied_slot = DockConstants::DOCK_SLOT_MAX;
|
||||
EditorDock::DockSlot occupied_slot = EditorDock::DOCK_SLOT_MAX;
|
||||
TabBar *drop_tabbar = nullptr;
|
||||
|
||||
Color valid_drop_color;
|
||||
|
|
@ -187,7 +187,7 @@ protected:
|
|||
void drop_data(const Point2 &p_point, const Variant &p_data) override;
|
||||
|
||||
public:
|
||||
void set_slot(DockConstants::DockSlot p_slot);
|
||||
void set_slot(EditorDock::DockSlot p_slot);
|
||||
|
||||
EditorDockDragHint();
|
||||
};
|
||||
|
|
@ -204,7 +204,7 @@ private:
|
|||
Button *close_button = nullptr;
|
||||
|
||||
Control *dock_select = nullptr;
|
||||
Rect2 dock_select_rects[DockConstants::DOCK_SLOT_MAX];
|
||||
Rect2 dock_select_rects[EditorDock::DOCK_SLOT_MAX];
|
||||
int dock_select_rect_over_idx = -1;
|
||||
|
||||
EditorDock *context_dock = nullptr;
|
||||
|
|
|
|||
|
|
@ -8518,24 +8518,24 @@ EditorNode::EditorNode() {
|
|||
left_l_vsplit->set_vertical(true);
|
||||
main_hsplit->add_child(left_l_vsplit);
|
||||
|
||||
TabContainer *dock_slot[DockConstants::DOCK_SLOT_MAX];
|
||||
dock_slot[DockConstants::DOCK_SLOT_LEFT_UL] = memnew(TabContainer);
|
||||
dock_slot[DockConstants::DOCK_SLOT_LEFT_UL]->set_name("DockSlotLeftUL");
|
||||
left_l_vsplit->add_child(dock_slot[DockConstants::DOCK_SLOT_LEFT_UL]);
|
||||
dock_slot[DockConstants::DOCK_SLOT_LEFT_BL] = memnew(TabContainer);
|
||||
dock_slot[DockConstants::DOCK_SLOT_LEFT_BL]->set_name("DockSlotLeftBL");
|
||||
left_l_vsplit->add_child(dock_slot[DockConstants::DOCK_SLOT_LEFT_BL]);
|
||||
TabContainer *dock_slot[EditorDock::DOCK_SLOT_MAX];
|
||||
dock_slot[EditorDock::DOCK_SLOT_LEFT_UL] = memnew(TabContainer);
|
||||
dock_slot[EditorDock::DOCK_SLOT_LEFT_UL]->set_name("DockSlotLeftUL");
|
||||
left_l_vsplit->add_child(dock_slot[EditorDock::DOCK_SLOT_LEFT_UL]);
|
||||
dock_slot[EditorDock::DOCK_SLOT_LEFT_BL] = memnew(TabContainer);
|
||||
dock_slot[EditorDock::DOCK_SLOT_LEFT_BL]->set_name("DockSlotLeftBL");
|
||||
left_l_vsplit->add_child(dock_slot[EditorDock::DOCK_SLOT_LEFT_BL]);
|
||||
|
||||
left_r_vsplit = memnew(DockSplitContainer);
|
||||
left_r_vsplit->set_name("DockVSplitLeftR");
|
||||
left_r_vsplit->set_vertical(true);
|
||||
main_hsplit->add_child(left_r_vsplit);
|
||||
dock_slot[DockConstants::DOCK_SLOT_LEFT_UR] = memnew(TabContainer);
|
||||
dock_slot[DockConstants::DOCK_SLOT_LEFT_UR]->set_name("DockSlotLeftUR");
|
||||
left_r_vsplit->add_child(dock_slot[DockConstants::DOCK_SLOT_LEFT_UR]);
|
||||
dock_slot[DockConstants::DOCK_SLOT_LEFT_BR] = memnew(TabContainer);
|
||||
dock_slot[DockConstants::DOCK_SLOT_LEFT_BR]->set_name("DockSlotLeftBR");
|
||||
left_r_vsplit->add_child(dock_slot[DockConstants::DOCK_SLOT_LEFT_BR]);
|
||||
dock_slot[EditorDock::DOCK_SLOT_LEFT_UR] = memnew(TabContainer);
|
||||
dock_slot[EditorDock::DOCK_SLOT_LEFT_UR]->set_name("DockSlotLeftUR");
|
||||
left_r_vsplit->add_child(dock_slot[EditorDock::DOCK_SLOT_LEFT_UR]);
|
||||
dock_slot[EditorDock::DOCK_SLOT_LEFT_BR] = memnew(TabContainer);
|
||||
dock_slot[EditorDock::DOCK_SLOT_LEFT_BR]->set_name("DockSlotLeftBR");
|
||||
left_r_vsplit->add_child(dock_slot[EditorDock::DOCK_SLOT_LEFT_BR]);
|
||||
|
||||
VBoxContainer *center_vb = memnew(VBoxContainer);
|
||||
center_vb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
||||
|
|
@ -8553,23 +8553,23 @@ EditorNode::EditorNode() {
|
|||
right_l_vsplit->set_name("DockVSplitRightL");
|
||||
right_l_vsplit->set_vertical(true);
|
||||
main_hsplit->add_child(right_l_vsplit);
|
||||
dock_slot[DockConstants::DOCK_SLOT_RIGHT_UL] = memnew(TabContainer);
|
||||
dock_slot[DockConstants::DOCK_SLOT_RIGHT_UL]->set_name("DockSlotRightUL");
|
||||
right_l_vsplit->add_child(dock_slot[DockConstants::DOCK_SLOT_RIGHT_UL]);
|
||||
dock_slot[DockConstants::DOCK_SLOT_RIGHT_BL] = memnew(TabContainer);
|
||||
dock_slot[DockConstants::DOCK_SLOT_RIGHT_BL]->set_name("DockSlotRightBL");
|
||||
right_l_vsplit->add_child(dock_slot[DockConstants::DOCK_SLOT_RIGHT_BL]);
|
||||
dock_slot[EditorDock::DOCK_SLOT_RIGHT_UL] = memnew(TabContainer);
|
||||
dock_slot[EditorDock::DOCK_SLOT_RIGHT_UL]->set_name("DockSlotRightUL");
|
||||
right_l_vsplit->add_child(dock_slot[EditorDock::DOCK_SLOT_RIGHT_UL]);
|
||||
dock_slot[EditorDock::DOCK_SLOT_RIGHT_BL] = memnew(TabContainer);
|
||||
dock_slot[EditorDock::DOCK_SLOT_RIGHT_BL]->set_name("DockSlotRightBL");
|
||||
right_l_vsplit->add_child(dock_slot[EditorDock::DOCK_SLOT_RIGHT_BL]);
|
||||
|
||||
right_r_vsplit = memnew(DockSplitContainer);
|
||||
right_r_vsplit->set_name("DockVSplitRightR");
|
||||
right_r_vsplit->set_vertical(true);
|
||||
main_hsplit->add_child(right_r_vsplit);
|
||||
dock_slot[DockConstants::DOCK_SLOT_RIGHT_UR] = memnew(TabContainer);
|
||||
dock_slot[DockConstants::DOCK_SLOT_RIGHT_UR]->set_name("DockSlotRightUR");
|
||||
right_r_vsplit->add_child(dock_slot[DockConstants::DOCK_SLOT_RIGHT_UR]);
|
||||
dock_slot[DockConstants::DOCK_SLOT_RIGHT_BR] = memnew(TabContainer);
|
||||
dock_slot[DockConstants::DOCK_SLOT_RIGHT_BR]->set_name("DockSlotRightBR");
|
||||
right_r_vsplit->add_child(dock_slot[DockConstants::DOCK_SLOT_RIGHT_BR]);
|
||||
dock_slot[EditorDock::DOCK_SLOT_RIGHT_UR] = memnew(TabContainer);
|
||||
dock_slot[EditorDock::DOCK_SLOT_RIGHT_UR]->set_name("DockSlotRightUR");
|
||||
right_r_vsplit->add_child(dock_slot[EditorDock::DOCK_SLOT_RIGHT_UR]);
|
||||
dock_slot[EditorDock::DOCK_SLOT_RIGHT_BR] = memnew(TabContainer);
|
||||
dock_slot[EditorDock::DOCK_SLOT_RIGHT_BR]->set_name("DockSlotRightBR");
|
||||
right_r_vsplit->add_child(dock_slot[EditorDock::DOCK_SLOT_RIGHT_BR]);
|
||||
|
||||
editor_dock_manager = memnew(EditorDockManager);
|
||||
|
||||
|
|
@ -8581,8 +8581,8 @@ EditorNode::EditorNode() {
|
|||
|
||||
editor_dock_manager->set_hsplit(main_hsplit);
|
||||
|
||||
for (int i = 0; i < DockConstants::DOCK_SLOT_BOTTOM; i++) {
|
||||
editor_dock_manager->register_dock_slot((DockConstants::DockSlot)i, dock_slot[i], DockConstants::DOCK_LAYOUT_VERTICAL);
|
||||
for (int i = 0; i < EditorDock::DOCK_SLOT_BOTTOM; i++) {
|
||||
editor_dock_manager->register_dock_slot((EditorDock::DockSlot)i, dock_slot[i], EditorDock::DOCK_LAYOUT_VERTICAL);
|
||||
}
|
||||
|
||||
editor_layout_save_delay_timer = memnew(Timer);
|
||||
|
|
@ -8988,7 +8988,7 @@ EditorNode::EditorNode() {
|
|||
// Bottom panels.
|
||||
|
||||
bottom_panel = memnew(EditorBottomPanel);
|
||||
editor_dock_manager->register_dock_slot(DockConstants::DOCK_SLOT_BOTTOM, bottom_panel, DockConstants::DOCK_LAYOUT_HORIZONTAL);
|
||||
editor_dock_manager->register_dock_slot(EditorDock::DOCK_SLOT_BOTTOM, bottom_panel, EditorDock::DOCK_LAYOUT_HORIZONTAL);
|
||||
bottom_panel->set_theme_type_variation("BottomPanel");
|
||||
center_split->add_child(bottom_panel);
|
||||
center_split->set_dragger_visibility(SplitContainer::DRAGGER_HIDDEN);
|
||||
|
|
|
|||
|
|
@ -725,6 +725,7 @@ void EditorPlugin::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(CONTAINER_PROJECT_SETTING_TAB_LEFT);
|
||||
BIND_ENUM_CONSTANT(CONTAINER_PROJECT_SETTING_TAB_RIGHT);
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
BIND_ENUM_CONSTANT(DOCK_SLOT_NONE);
|
||||
BIND_ENUM_CONSTANT(DOCK_SLOT_LEFT_UL);
|
||||
BIND_ENUM_CONSTANT(DOCK_SLOT_LEFT_BL);
|
||||
|
|
@ -736,6 +737,7 @@ void EditorPlugin::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(DOCK_SLOT_RIGHT_BR);
|
||||
BIND_ENUM_CONSTANT(DOCK_SLOT_BOTTOM);
|
||||
BIND_ENUM_CONSTANT(DOCK_SLOT_MAX);
|
||||
#endif
|
||||
|
||||
BIND_ENUM_CONSTANT(AFTER_GUI_INPUT_PASS);
|
||||
BIND_ENUM_CONSTANT(AFTER_GUI_INPUT_STOP);
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
#pragma once
|
||||
|
||||
#include "core/io/config_file.h"
|
||||
#include "editor/docks/dock_constants.h"
|
||||
#include "editor/inspector/editor_context_menu_plugin.h"
|
||||
#include "scene/3d/camera_3d.h"
|
||||
#include "scene/gui/control.h"
|
||||
|
|
@ -88,19 +87,21 @@ public:
|
|||
CONTAINER_PROJECT_SETTING_TAB_RIGHT,
|
||||
};
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
enum DockSlot {
|
||||
DOCK_SLOT_NONE = DockConstants::DOCK_SLOT_NONE,
|
||||
DOCK_SLOT_LEFT_UL = DockConstants::DOCK_SLOT_LEFT_UL,
|
||||
DOCK_SLOT_LEFT_BL = DockConstants::DOCK_SLOT_LEFT_BL,
|
||||
DOCK_SLOT_LEFT_UR = DockConstants::DOCK_SLOT_LEFT_UR,
|
||||
DOCK_SLOT_LEFT_BR = DockConstants::DOCK_SLOT_LEFT_BR,
|
||||
DOCK_SLOT_RIGHT_UL = DockConstants::DOCK_SLOT_RIGHT_UL,
|
||||
DOCK_SLOT_RIGHT_BL = DockConstants::DOCK_SLOT_RIGHT_BL,
|
||||
DOCK_SLOT_RIGHT_UR = DockConstants::DOCK_SLOT_RIGHT_UR,
|
||||
DOCK_SLOT_RIGHT_BR = DockConstants::DOCK_SLOT_RIGHT_BR,
|
||||
DOCK_SLOT_BOTTOM = DockConstants::DOCK_SLOT_BOTTOM,
|
||||
DOCK_SLOT_MAX = DockConstants::DOCK_SLOT_MAX
|
||||
DOCK_SLOT_NONE = -1,
|
||||
DOCK_SLOT_LEFT_UL,
|
||||
DOCK_SLOT_LEFT_BL,
|
||||
DOCK_SLOT_LEFT_UR,
|
||||
DOCK_SLOT_LEFT_BR,
|
||||
DOCK_SLOT_RIGHT_UL,
|
||||
DOCK_SLOT_RIGHT_BL,
|
||||
DOCK_SLOT_RIGHT_UR,
|
||||
DOCK_SLOT_RIGHT_BR,
|
||||
DOCK_SLOT_BOTTOM,
|
||||
DOCK_SLOT_MAX
|
||||
};
|
||||
#endif
|
||||
|
||||
enum AfterGUIInput {
|
||||
AFTER_GUI_INPUT_PASS,
|
||||
|
|
@ -268,8 +269,10 @@ public:
|
|||
void disable_plugin();
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(EditorPlugin::CustomControlContainer);
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
VARIANT_ENUM_CAST(EditorPlugin::DockSlot);
|
||||
#endif
|
||||
VARIANT_ENUM_CAST(EditorPlugin::CustomControlContainer);
|
||||
VARIANT_ENUM_CAST(EditorPlugin::AfterGUIInput);
|
||||
|
||||
typedef EditorPlugin *(*EditorPluginCreateFunc)();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue