#pragma once #include #include class EditorWindow { public: EditorWindow (const std::string& name, ImGuiWindowFlags_ flags = ImGuiWindowFlags_None ) : name(name) , flags(flags) {} void Update() { ImGui::Begin(name.c_str(), nullptr, flags); Draw(); ImGui::End(); } ~EditorWindow() = default; protected: std::string name; private: ImGuiWindowFlags_ flags; virtual void Draw() = 0; };