#pragma once

#include "IGUIElement.hpp"
#include "Types.hpp"
#include "Vector2.hpp"
#include "imgui/imgui.h"

namespace TSE::EDITOR
{
    class GuiWindow : public IGUIElement
    {
    public:
        Vector2 pos = Vector2::zero;
        Vector2 size = Vector2(100,100);
        ImGuiWindowFlags flags = ImGuiWindowFlags_None;
        string title = "Title";

        GuiWindow(const string& title, const ImGuiWindowFlags& flags = ImGuiWindowFlags_None);
        GuiWindow(const string& title, const Vector2 pos, const Vector2 size, const ImGuiWindowFlags& flags = ImGuiWindowFlags_None);
        void Render() override;
        virtual void Define() = 0;

    private:
        void Begin();
        void End();
    };
} // namespace TSE::EDITOR
