aboutsummaryrefslogtreecommitdiff
path: root/editor/plugins/spatial_editor_plugin.h
diff options
context:
space:
mode:
authorJuan Linietsky2017-06-11 11:29:27 -0300
committerJuan Linietsky2017-06-11 11:29:51 -0300
commitec015a32ae4fed154ed6d0bd002c1e653d74a2c3 (patch)
treeaa9d4196688ff16930f21e287033a2bfcf64dbf4 /editor/plugins/spatial_editor_plugin.h
parentd4e64e0e60ee9377bedb1c3324bd346abc129aae (diff)
downloadgodot-ec015a32ae4fed154ed6d0bd002c1e653d74a2c3.tar.gz
godot-ec015a32ae4fed154ed6d0bd002c1e653d74a2c3.tar.zst
godot-ec015a32ae4fed154ed6d0bd002c1e653d74a2c3.zip
Multiple 3D viewports are not operational.
Diffstat (limited to 'editor/plugins/spatial_editor_plugin.h')
-rw-r--r--editor/plugins/spatial_editor_plugin.h39
1 files changed, 38 insertions, 1 deletions
diff --git a/editor/plugins/spatial_editor_plugin.h b/editor/plugins/spatial_editor_plugin.h
index 394002db3..d96e6090f 100644
--- a/editor/plugins/spatial_editor_plugin.h
+++ b/editor/plugins/spatial_editor_plugin.h
@@ -287,6 +287,43 @@ public:
~SpatialEditorSelectedItem();
};
+class SpatialEditorViewportContainer : public Container {
+
+ GDCLASS(SpatialEditorViewportContainer, Container)
+public:
+ enum View {
+ VIEW_USE_1_VIEWPORT,
+ VIEW_USE_2_VIEWPORTS,
+ VIEW_USE_2_VIEWPORTS_ALT,
+ VIEW_USE_3_VIEWPORTS,
+ VIEW_USE_3_VIEWPORTS_ALT,
+ VIEW_USE_4_VIEWPORTS,
+ };
+
+private:
+ View view;
+ bool mouseover;
+ float ratio_h;
+ float ratio_v;
+
+ bool dragging_v;
+ bool dragging_h;
+ Vector2 drag_begin_pos;
+ Vector2 drag_begin_ratio;
+
+ void _gui_input(const Ref<InputEvent> &p_event);
+
+protected:
+ void _notification(int p_what);
+ static void _bind_methods();
+
+public:
+ void set_view(View p_view);
+ View get_view();
+
+ SpatialEditorViewportContainer();
+};
+
class SpatialEditor : public VBoxContainer {
GDCLASS(SpatialEditor, VBoxContainer);
@@ -309,7 +346,7 @@ private:
EditorNode *editor;
EditorSelection *editor_selection;
- Control *viewport_base;
+ SpatialEditorViewportContainer *viewport_base;
SpatialEditorViewport *viewports[VIEWPORTS_COUNT];
VSplitContainer *shader_split;
HSplitContainer *palette_split;