BsEditorWindowManager.h 769 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "BsEditorPrerequisites.h"
  3. #include "BsModule.h"
  4. #include "BsEvent.h"
  5. namespace BansheeEngine
  6. {
  7. class BS_ED_EXPORT EditorWindowManager : public Module<EditorWindowManager>
  8. {
  9. public:
  10. EditorWindowManager();
  11. ~EditorWindowManager();
  12. MainEditorWindow* createMain(const RenderWindowPtr& parentRenderWindow);
  13. EditorWindow* create();
  14. void registerWindow(EditorWindowBase* window);
  15. void destroy(EditorWindowBase* window);
  16. MainEditorWindow* getMainWindow() const { return mMainWindow; }
  17. void update();
  18. protected:
  19. MainEditorWindow* mMainWindow;
  20. Vector<EditorWindowBase*> mEditorWindows;
  21. Vector<EditorWindowBase*> mScheduledForDestruction;
  22. Vector<EditorWindowBase*> mEditorWindowsSnapshot;
  23. };
  24. }