BsScriptGUIContent.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 "Wrappers/BsScriptSpriteTexture.h"
  11. #include "2D/BsSpriteTexture.h"
  12. #include "Wrappers/BsScriptGUIContentImages.h"
  13. namespace bs
  14. {
  15. MonoField* ScriptGUIContent::mTextField;
  16. MonoField* ScriptGUIContent::mTooltipField;
  17. MonoField* ScriptGUIContent::mImagesField;
  18. ScriptGUIContent::ScriptGUIContent(MonoObject* instance)
  19. :ScriptObject(instance)
  20. { }
  21. void ScriptGUIContent::initRuntimeData()
  22. {
  23. mTextField = metaData.scriptClass->getField("text");
  24. mTooltipField = metaData.scriptClass->getField("tooltip");
  25. mImagesField = metaData.scriptClass->getField("images");
  26. }
  27. const HString& ScriptGUIContent::getText(MonoObject* instance)
  28. {
  29. MonoObject* textManaged = nullptr;
  30. mTextField->get(instance, &textManaged);
  31. if(textManaged == nullptr)
  32. return HString::dummy();
  33. ScriptHString* textScript = ScriptHString::toNative(textManaged);
  34. return textScript->getInternalValue();
  35. }
  36. const HString& ScriptGUIContent::getTooltip(MonoObject* instance)
  37. {
  38. MonoObject* tooltipManaged = nullptr;
  39. mTooltipField->get(instance, &tooltipManaged);
  40. if(tooltipManaged == nullptr)
  41. return HString::dummy();
  42. ScriptHString* tooltipScript = ScriptHString::toNative(tooltipManaged);
  43. return tooltipScript->getInternalValue();
  44. }
  45. GUIContentImages ScriptGUIContent::getImage(MonoObject* instance)
  46. {
  47. MonoObject* imagesManaged = nullptr;
  48. mImagesField->get(instance, &imagesManaged);
  49. if(imagesManaged == nullptr)
  50. return GUIContentImages();
  51. return ScriptGUIContentImages::getNative(imagesManaged);
  52. }
  53. }