BsDropDownWindowManager.h 614 B

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include "BsEditorPrerequisites.h"
  3. #include "BsModule.h"
  4. namespace BansheeEngine
  5. {
  6. class BS_ED_EXPORT DropDownWindowManager : public Module <DropDownWindowManager>
  7. {
  8. public:
  9. DropDownWindowManager();
  10. ~DropDownWindowManager();
  11. template<class T, class... Args>
  12. T* open(const RenderWindowPtr& parent, Viewport* target,
  13. const Vector2I& position, Args &&...args)
  14. {
  15. close();
  16. mOpenWindow = bs_new<T>(parent, target, position, std::forward<Args>(args)...);
  17. return static_cast<T*>(mOpenWindow);
  18. }
  19. void close();
  20. void update();
  21. protected:
  22. DropDownWindow* mOpenWindow;
  23. };
  24. }