#pragma once #include class App; class SpriteDefinition; class IEditorInspector { public: enum TargetType { ITT_GameObject, ITT_Ires, ITT_Level, ITT_None, }; public: virtual ~IEditorInspector() = default; virtual void SelectTarget(TargetType type, void* object) = 0; }; class IEditorContentBrowser { public: virtual ~IEditorContentBrowser() = default; }; class IEditor { public: static std::unique_ptr CreateInstance(App* app); virtual ~IEditor() = default; virtual void OnGameStateChanged(bool running) = 0; virtual void Show() = 0; virtual IEditorInspector& GetInspector() = 0; virtual IEditorContentBrowser& GetContentBrowser() = 0; virtual void OpenSpriteViewer(SpriteDefinition* sprite) = 0; };