BsScriptGUILayoutUtility.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsScriptGUILayoutUtility.h"
  4. #include "BsScriptMeta.h"
  5. #include "BsMonoField.h"
  6. #include "BsMonoClass.h"
  7. #include "BsMonoManager.h"
  8. #include "BsMonoUtil.h"
  9. #include "BsScriptGUIElement.h"
  10. #include "BsGUIPanel.h"
  11. #include "BsGUIElementBase.h"
  12. #include "BsScriptGUILayout.h"
  13. #include "BsGUILayoutUtility.h"
  14. namespace BansheeEngine
  15. {
  16. ScriptGUILayoutUtility::ScriptGUILayoutUtility()
  17. :ScriptObject(nullptr)
  18. { }
  19. void ScriptGUILayoutUtility::initRuntimeData()
  20. {
  21. metaData.scriptClass->addInternalCall("Internal_CalculateOptimalSize", &ScriptGUILayoutUtility::internal_CalculateOptimalSize);
  22. metaData.scriptClass->addInternalCall("Internal_CalculateBounds", &ScriptGUILayoutUtility::internal_CalculateBounds);
  23. }
  24. void ScriptGUILayoutUtility::internal_CalculateOptimalSize(ScriptGUIElementBaseTBase* guiElement, Vector2I* output)
  25. {
  26. *output = GUILayoutUtility::calcOptimalSize(guiElement->getGUIElement());;
  27. }
  28. void ScriptGUILayoutUtility::internal_CalculateBounds(ScriptGUIElementBaseTBase* guiElement, ScriptGUILayout* relativeTo, Rect2I* output)
  29. {
  30. GUIPanel* relativeToPanel = nullptr;
  31. if (relativeTo != nullptr)
  32. relativeToPanel = static_cast<GUIPanel*>(relativeTo->getGUIElement());
  33. *output = guiElement->getGUIElement()->getBounds(relativeToPanel);
  34. }
  35. }