#pragma once

/*
	GameEngine and Editor
	by John Ryland
	Copyright (c) 2023
*/

////////////////////////////////////////////////////////////////////////////////////
//	Component Type Editor View

#include "IView.h"
#include "EcsSystem.h"
#include "IApplication.h"

namespace GameEngine {

class ComponentTypeEditorView : public IView
{
public:
    ComponentTypeEditorView(const ApplicationFramework::IApplication& app,
                            const EcsSystem& entityComponentSystem);

    void AddShowMenuItem() override;

    void Initialize() override;
    void Shutdown() override;
    void Update() override;

    void Show();

private:
    bool m_open = true;
    const EcsSystem& m_entityComponentSystem;
    const ApplicationFramework::IApplication& m_application;
};

} // GameEngine namespace
