CProject.h 894 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include <irrlicht/irrlicht.h>
  3. #include "CWallpaper.h"
  4. #include "WallpaperEngine/Core/Core.h"
  5. #include "WallpaperEngine/Core/Projects/CProperty.h"
  6. namespace WallpaperEngine::Core
  7. {
  8. using json = nlohmann::json;
  9. class CWallpaper;
  10. class CProject
  11. {
  12. public:
  13. static CProject* fromFile (const irr::io::path& filename);
  14. CWallpaper* getWallpaper () const;
  15. const std::string& getTitle () const;
  16. const std::string& getType () const;
  17. const std::vector<Projects::CProperty*>& getProperties () const;
  18. protected:
  19. CProject (std::string title, std::string type, CWallpaper* wallpaper);
  20. void insertProperty (Projects::CProperty* property);
  21. private:
  22. std::vector<Projects::CProperty*> m_properties;
  23. std::string m_title;
  24. std::string m_type;
  25. CWallpaper* m_wallpaper;
  26. };
  27. };