Project.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include <Atomic/Core/Object.h>
  2. #include <Atomic/IO/FileSystem.h>
  3. using namespace Atomic;
  4. namespace ToolCore
  5. {
  6. class Project : public Object
  7. {
  8. OBJECT(Project);
  9. public:
  10. /// Construct.
  11. Project(Context* context);
  12. /// Destruct.
  13. virtual ~Project();
  14. const String GetResourcePath() { return resourcePath_; }
  15. void SetResourcePath(const String& resourcePath)
  16. {
  17. resourcePath_ = AddTrailingSlash(resourcePath);
  18. componentsPath_ = resourcePath_ + "Components";
  19. scriptsPath_ = resourcePath_ + "Scripts";
  20. modulesPath_ = resourcePath_ + "Modules";
  21. }
  22. void Load(const String& fullpath);
  23. void Save(const String& fullpath = "");
  24. const String& GetComponentsPath() { return componentsPath_; }
  25. const String& GetScriptsPath() { return scriptsPath_; }
  26. const String& GetModulesPath() { return modulesPath_; }
  27. const String& GetProjectFilePath() { return projectFilePath_; }
  28. bool IsComponentsDirOrFile(const String& fullPath);
  29. bool IsScriptsDirOrFile(const String& fullPath);
  30. bool IsModulesDirOrFile(const String& fullPath);
  31. const String& GetLastBuildPath() { return lastBuildPath_; }
  32. void SetLastBuildPath(const String& path) { lastBuildPath_ = path; }
  33. private:
  34. void LoadUserPrefs(const String& fullpath);
  35. void SaveUserPrefs(const String& fullpath);
  36. String GetUserPrefsFullPath(const String& projectPath);
  37. String projectFilePath_;
  38. String resourcePath_;
  39. String componentsPath_;
  40. String scriptsPath_;
  41. String modulesPath_;
  42. String lastBuildPath_;
  43. };
  44. }