aboutsummaryrefslogtreecommitdiff
path: root/source/EditorCore.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/EditorCore.hpp')
-rw-r--r--source/EditorCore.hpp64
1 files changed, 50 insertions, 14 deletions
diff --git a/source/EditorCore.hpp b/source/EditorCore.hpp
index c604f36..2216de5 100644
--- a/source/EditorCore.hpp
+++ b/source/EditorCore.hpp
@@ -1,7 +1,6 @@
#pragma once
#include "EditorAttachment.hpp"
-#include "EditorResources.hpp"
#include "GameObject.hpp"
#include "Ires.hpp"
#include "RcPtr.hpp"
@@ -11,10 +10,8 @@
#include <memory>
#include <string>
-class App;
-class EditorInstance {
-public:
- enum InspectorTargetType {
+struct EditorInspector {
+ enum TargetType {
ITT_GameObject,
ITT_Shader,
ITT_Material,
@@ -22,14 +19,54 @@ public:
ITT_None,
};
+ std::string renamingScratchBuffer;
+ void* selectedItPtr = nullptr;
+ TargetType selectedItt = ITT_None;
+ bool renaming = false;
+
+ void SelectTarget(TargetType type, void* object);
+};
+
+class EditorContentBrowser {
+private:
+ enum Pane {
+ P_Settings,
+ P_Shader,
+ P_Material,
+ P_Ires,
+ };
+
+ static constexpr float kSplitterThickness = 3.0f;
+ static constexpr float kPadding = 4.0f;
+
+ // <root>
+ static constexpr float kLeftPaneMinWidth = 200.0f;
+ static constexpr float kRightPaneMinWidth = 200.0f;
+
+ EditorInspector* mInspector;
+ Pane mPane = P_Settings;
+ float mBrowserHeight = 0.5f;
+ float mSplitterLeft = kLeftPaneMinWidth;
+ float mSplitterRight = 0.0f;
+ bool mDocked = true;
+
+public:
+ EditorContentBrowser(EditorInspector* inspector);
+ ~EditorContentBrowser();
+
+ void Show(bool* open = nullptr);
+};
+
+class App;
+class EditorInstance {
private:
App* mApp;
GameWorld* mWorld;
- // TODO store more fields for ITT
- void* mSelectedItPtr = nullptr;
RcPtr<Sprite> mSpriteView_Instance;
+ EditorInspector mEdInspector;
EditorContentBrowser mEdContentBrowser;
- InspectorTargetType mSelectedItt = ITT_None;
+ int mSpriteView_Frame;
+ bool mSpriteView_OpenNextFrame = false;
bool mEdContentBrowserVisible = false;
public:
@@ -38,21 +75,20 @@ public:
void Show();
- void* GetSelectedItPtr() const { return mSelectedItPtr; }
- InspectorTargetType GetSelectedItt() const { return mSelectedItt; }
- void SelectIt(void* ptr, InspectorTargetType itt);
+ EditorInspector& GetInspector() { return mEdInspector; }
+ EditorContentBrowser& GetContentBrowser() { return mEdContentBrowser; }
+
+ void OpenSpriteViewer(Sprite* sprite);
private:
void ShowWorldProperties();
void ShowInspector(Shader* shader);
void ShowInspector(Material* material);
- void ShowInspector(const std::string& path, IresObject* ires);
+ void ShowInspector(IresObject* ires);
void ShowInspector(GameObject* object);
- void ShowGameObjecetFields(GameObject* object);
void ShowGameObjectInTree(GameObject* object);
- void OpenSpriteViewer(Sprite* sprite);
void ShowSpriteViewer();
};