BsGUIDropDownBoxManager.cpp 951 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "BsGUIDropDownBoxManager.h"
  2. #include "BsSceneObject.h"
  3. namespace BansheeEngine
  4. {
  5. GUIDropDownBoxManager::~GUIDropDownBoxManager()
  6. {
  7. closeDropDownBox();
  8. }
  9. GameObjectHandle<GUIDropDownBox> GUIDropDownBoxManager::openDropDownBox(Viewport* target, const GUIDropDownAreaPlacement& placement,
  10. const GUIDropDownData& dropDownData, const GUISkin& skin, GUIDropDownType type, std::function<void()> onClosedCallback)
  11. {
  12. closeDropDownBox();
  13. mDropDownSO = SceneObject::create("DropDownBox");
  14. mDropDownBox = mDropDownSO->addComponent<GUIDropDownBox>(target, placement, dropDownData, skin, type);
  15. mOnClosedCallback = onClosedCallback;
  16. return mDropDownBox;
  17. }
  18. void GUIDropDownBoxManager::closeDropDownBox()
  19. {
  20. if(mDropDownSO != nullptr)
  21. {
  22. mDropDownSO->destroy();
  23. mDropDownSO = nullptr;
  24. if(mOnClosedCallback != nullptr)
  25. mOnClosedCallback();
  26. mOnClosedCallback = nullptr;
  27. }
  28. }
  29. }