#pragma once #include "Nuake/Core/Core.h" #include "Nuake/Resource/Project.h" class ProjectSettingsCategoryWindow { public: std::string Name = "NO_NAME"; virtual void Draw() = 0; }; class ProjectSettingsCategoryWindowGeneral : public ProjectSettingsCategoryWindow { private: Ref m_Project; public: ProjectSettingsCategoryWindowGeneral(Ref project); void Draw() override; }; class ProjectSettingsCategoryWindowViewport : public ProjectSettingsCategoryWindow { private: Ref m_Project; public: ProjectSettingsCategoryWindowViewport(Ref project); void Draw() override; }; class ProjectSettingsCategoryWindowRendering : public ProjectSettingsCategoryWindow { private: Ref m_Project; public: ProjectSettingsCategoryWindowRendering(Ref project); void Draw() override; }; class ProjectSettingsCategoryScripting : public ProjectSettingsCategoryWindow { private: Ref m_Project; public: ProjectSettingsCategoryScripting(Ref project); void Draw() override; }; class ProjectSettingsCategoryPhysics : public ProjectSettingsCategoryWindow { private: Ref m_Project; public: ProjectSettingsCategoryPhysics(Ref project); void Draw() override; }; class ProjectSettingsCategoryAudio : public ProjectSettingsCategoryWindow { private: Ref m_Project; public: ProjectSettingsCategoryAudio(Ref project); void Draw() override; }; class ProjectSettingsWindow { private: std::vector> m_CategoryWindows; uint32_t m_CurrentTab = 0; Ref m_Project; public: bool m_DisplayWindow = false; ProjectSettingsWindow(); ~ProjectSettingsWindow() = default; void Init(Ref project); void Draw(); };