summaryrefslogtreecommitdiffstats
path: root/editor/editor_node.h
diff options
context:
space:
mode:
Diffstat (limited to 'editor/editor_node.h')
-rw-r--r--editor/editor_node.h71
1 files changed, 12 insertions, 59 deletions
diff --git a/editor/editor_node.h b/editor/editor_node.h
index c72a8f9324..f1dea0c11e 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -73,10 +73,12 @@ class AudioStreamPreviewGenerator;
class BackgroundProgress;
class DependencyEditor;
class DependencyErrorDialog;
+class DockSplitContainer;
class DynamicFontImportSettingsDialog;
class EditorAbout;
class EditorBuildProfileManager;
class EditorCommandPalette;
+class EditorDockManager;
class EditorExport;
class EditorExtensionManager;
class EditorFeatureProfileManager;
@@ -121,18 +123,6 @@ class EditorNode : public Node {
GDCLASS(EditorNode, Node);
public:
- enum DockSlot {
- 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_MAX
- };
-
enum EditorTable {
EDITOR_2D = 0,
EDITOR_3D,
@@ -310,18 +300,15 @@ private:
String renderer_request;
// Split containers.
- HSplitContainer *left_l_hsplit = nullptr;
- VSplitContainer *left_l_vsplit = nullptr;
- HSplitContainer *left_r_hsplit = nullptr;
- VSplitContainer *left_r_vsplit = nullptr;
- HSplitContainer *main_hsplit = nullptr;
- HSplitContainer *right_hsplit = nullptr;
- VSplitContainer *right_l_vsplit = nullptr;
- VSplitContainer *right_r_vsplit = nullptr;
- VSplitContainer *center_split = nullptr;
- // To access those easily by index.
- Vector<VSplitContainer *> vsplits;
- Vector<HSplitContainer *> hsplits;
+ DockSplitContainer *left_l_hsplit = nullptr;
+ DockSplitContainer *left_l_vsplit = nullptr;
+ DockSplitContainer *left_r_hsplit = nullptr;
+ DockSplitContainer *left_r_vsplit = nullptr;
+ DockSplitContainer *main_hsplit = nullptr;
+ DockSplitContainer *right_hsplit = nullptr;
+ DockSplitContainer *right_l_vsplit = nullptr;
+ DockSplitContainer *right_r_vsplit = nullptr;
+ DockSplitContainer *center_split = nullptr;
// Main tabs.
EditorSceneTabs *scene_tabs = nullptr;
@@ -426,20 +413,8 @@ private:
Button *new_inherited_button = nullptr;
String open_import_request;
- Vector<WindowWrapper *> floating_docks;
-
- Button *dock_float = nullptr;
- Button *dock_tab_move_left = nullptr;
- Button *dock_tab_move_right = nullptr;
- Control *dock_select = nullptr;
- PopupPanel *dock_select_popup = nullptr;
- Rect2 dock_select_rect[DOCK_SLOT_MAX];
- TabContainer *dock_slot[DOCK_SLOT_MAX];
+ EditorDockManager *editor_dock_manager = nullptr;
Timer *editor_layout_save_delay_timer = nullptr;
- bool docks_visible = true;
- int dock_popup_selected_idx = -1;
- int dock_select_rect_over_idx = -1;
-
Button *distraction_free = nullptr;
Vector<BottomPanelItem> bottom_panel_items;
@@ -634,17 +609,6 @@ private:
bool _find_scene_in_use(Node *p_node, const String &p_path) const;
- void _dock_select_input(const Ref<InputEvent> &p_input);
- void _dock_move_left();
- void _dock_move_right();
- void _dock_select_draw();
- void _dock_pre_popup(int p_which);
- void _dock_split_dragged(int ofs);
- void _dock_popup_exit();
- void _dock_floating_close_request(WindowWrapper *p_wrapper);
- void _dock_make_selected_float();
- void _dock_make_float(Control *p_control, int p_slot_index, bool p_show_window = true);
-
void _proceed_closing_scene_tabs();
bool _is_closing_editor() const;
@@ -655,11 +619,6 @@ private:
void _save_editor_layout();
void _load_editor_layout();
- void _save_docks_to_config(Ref<ConfigFile> p_layout, const String &p_section);
- void _restore_floating_dock(const Dictionary &p_dock_dump, Control *p_wrapper, int p_slot_index);
- void _load_docks_from_config(Ref<ConfigFile> p_layout, const String &p_section);
- void _update_dock_slots_visibility(bool p_keep_selected_tabs = false);
- void _dock_tab_changed(int p_tab);
void _save_central_editor_layout_to_config(Ref<ConfigFile> p_config_file);
void _load_central_editor_layout_from_config(Ref<ConfigFile> p_config_file);
@@ -772,15 +731,9 @@ public:
void new_inherited_scene() { _menu_option_confirm(FILE_NEW_INHERITED_SCENE, false); }
- void set_docks_visible(bool p_show);
- bool get_docks_visible() const;
-
void set_distraction_free_mode(bool p_enter);
bool is_distraction_free_mode_enabled() const;
- void add_control_to_dock(DockSlot p_slot, Control *p_control);
- void remove_control_from_dock(Control *p_control);
-
void set_addon_plugin_enabled(const String &p_addon, bool p_enabled, bool p_config_changed = false);
bool is_addon_plugin_enabled(const String &p_addon) const;