Files
XCEngine/editor/src/Layers/EditorLayer.h

50 lines
1.1 KiB
C
Raw Normal View History

#pragma once
#include <XCEngine/Core/Layer.h>
#include <XCEngine/Core/LayerStack.h>
#include <memory>
#include <string>
namespace XCEngine {
namespace Editor {
class IEditorContext;
class MenuBar;
class HierarchyPanel;
class SceneViewPanel;
class GameViewPanel;
class InspectorPanel;
class ConsolePanel;
class ProjectPanel;
class EditorLayer : public Core::Layer {
public:
EditorLayer();
~EditorLayer() override = default;
void onAttach() override;
void onDetach() override;
void onUpdate(float dt) override;
void onEvent(void* event) override;
void onImGuiRender() override;
void SetContext(std::shared_ptr<IEditorContext> context);
private:
void setupDockspace();
void renderAllPanels();
std::shared_ptr<IEditorContext> m_context;
std::unique_ptr<MenuBar> m_menuBar;
std::unique_ptr<HierarchyPanel> m_hierarchyPanel;
std::unique_ptr<SceneViewPanel> m_sceneViewPanel;
std::unique_ptr<GameViewPanel> m_gameViewPanel;
std::unique_ptr<InspectorPanel> m_inspectorPanel;
std::unique_ptr<ConsolePanel> m_consolePanel;
std::unique_ptr<ProjectPanel> m_projectPanel;
};
}
}