diff options
Diffstat (limited to 'editor/editor_node.h')
-rw-r--r-- | editor/editor_node.h | 77 |
1 files changed, 17 insertions, 60 deletions
diff --git a/editor/editor_node.h b/editor/editor_node.h index c72a8f9324..7d6123d04b 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); @@ -695,6 +654,7 @@ private: void _immediate_dialog_confirmed(); void _select_default_main_screen_plugin(); + void _bottom_panel_switch_by_control(bool p_enable, Control *p_control); void _bottom_panel_switch(bool p_enable, int p_idx); void _bottom_panel_raise_toggled(bool); @@ -772,15 +732,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; @@ -805,6 +759,8 @@ public: bool is_resource_read_only(Ref<Resource> p_resource, bool p_foreign_resources_are_writable = false); + String get_multiwindow_support_tooltip_text() const; + bool is_changing_scene() const; VBoxContainer *get_main_screen_control(); @@ -854,6 +810,7 @@ public: List<AdditiveNodeEntry> &p_addition_list); bool is_scene_open(const String &p_path); + bool is_multi_window_enabled() const; void setup_color_picker(ColorPicker *p_picker); @@ -910,7 +867,7 @@ public: bool is_exiting() const { return exiting; } - Button *add_bottom_panel_item(String p_text, Control *p_item); + Button *add_bottom_panel_item(String p_text, Control *p_item, bool p_at_front = false); void make_bottom_panel_item_visible(Control *p_item); void raise_bottom_panel_item(Control *p_item); void hide_bottom_panel(); |