ToolSystem.h 716 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include <Atomic/Core/Object.h>
  3. #include "Platform/Platform.h"
  4. using namespace Atomic;
  5. namespace ToolCore
  6. {
  7. class Platform;
  8. class Project;
  9. class ToolSystem : public Object
  10. {
  11. OBJECT(ToolSystem);
  12. public:
  13. ToolSystem(Context* context);
  14. virtual ~ToolSystem();
  15. bool LoadProject(const String& fullpath);
  16. Project* GetProject() { return project_; }
  17. // Platforms
  18. void RegisterPlatform(Platform* platform);
  19. void SetCurrentPlatform(PlatformID platform);
  20. PlatformID GetCurrentPlatform();
  21. private:
  22. SharedPtr<Platform> currentPlatform_;
  23. // PlatformID -> platform
  24. HashMap<unsigned, SharedPtr<Platform> > platforms_;
  25. SharedPtr<Project> project_;
  26. };
  27. }