2
0

BsScriptGUILayoutUtility.cpp 1.3 KB

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