BsScriptGUIContent.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "Wrappers/GUI/BsScriptGUIContent.h"
  4. #include "BsScriptMeta.h"
  5. #include "BsMonoField.h"
  6. #include "BsMonoClass.h"
  7. #include "BsMonoManager.h"
  8. #include "BsMonoUtil.h"
  9. #include "Wrappers/BsScriptHString.h"
  10. #include "Image/BsSpriteTexture.h"
  11. #include "Wrappers/BsScriptGUIContentImages.h"
  12. namespace bs
  13. {
  14. MonoField* ScriptGUIContent::mTextField;
  15. MonoField* ScriptGUIContent::mTooltipField;
  16. MonoField* ScriptGUIContent::mImagesField;
  17. ScriptGUIContent::ScriptGUIContent(MonoObject* instance)
  18. :ScriptObject(instance)
  19. { }
  20. void ScriptGUIContent::initRuntimeData()
  21. {
  22. mTextField = metaData.scriptClass->getField("text");
  23. mTooltipField = metaData.scriptClass->getField("tooltip");
  24. mImagesField = metaData.scriptClass->getField("images");
  25. }
  26. const HString& ScriptGUIContent::getText(MonoObject* instance)
  27. {
  28. MonoObject* textManaged = nullptr;
  29. mTextField->get(instance, &textManaged);
  30. if(textManaged == nullptr)
  31. return HString::dummy();
  32. ScriptHString* textScript = ScriptHString::toNative(textManaged);
  33. return textScript->getInternalValue();
  34. }
  35. const HString& ScriptGUIContent::getTooltip(MonoObject* instance)
  36. {
  37. MonoObject* tooltipManaged = nullptr;
  38. mTooltipField->get(instance, &tooltipManaged);
  39. if(tooltipManaged == nullptr)
  40. return HString::dummy();
  41. ScriptHString* tooltipScript = ScriptHString::toNative(tooltipManaged);
  42. return tooltipScript->getInternalValue();
  43. }
  44. GUIContentImages ScriptGUIContent::getImage(MonoObject* instance)
  45. {
  46. MonoObject* imagesManaged = nullptr;
  47. mImagesField->get(instance, &imagesManaged);
  48. if(imagesManaged == nullptr)
  49. return GUIContentImages();
  50. return ScriptGUIContentImages::getNative(imagesManaged);
  51. }
  52. }