diff options
Diffstat (limited to 'source/EditorCore.hpp')
-rw-r--r-- | source/EditorCore.hpp | 64 |
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(); }; |