BsScriptGUIContent.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "BsScriptGUIContent.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoField.h"
  4. #include "BsMonoClass.h"
  5. #include "BsMonoManager.h"
  6. #include "BsMonoUtil.h"
  7. #include "BsScriptHString.h"
  8. #include "BsScriptSpriteTexture.h"
  9. #include "BsSpriteTexture.h"
  10. namespace BansheeEngine
  11. {
  12. MonoField* ScriptGUIContent::mTextField;
  13. MonoField* ScriptGUIContent::mTooltipField;
  14. MonoField* ScriptGUIContent::mImageField;
  15. ScriptGUIContent::ScriptGUIContent(MonoObject* instance)
  16. :ScriptObject(instance)
  17. { }
  18. void ScriptGUIContent::initRuntimeData()
  19. {
  20. mTextField = metaData.scriptClass->getField("_text");
  21. mTooltipField = metaData.scriptClass->getField("_tooltip");
  22. mImageField = metaData.scriptClass->getField("_image");
  23. }
  24. const HString& ScriptGUIContent::getText(MonoObject* instance)
  25. {
  26. MonoObject* textManaged = nullptr;
  27. mTextField->getValue(instance, &textManaged);
  28. if(textManaged == nullptr)
  29. return HString::dummy();
  30. ScriptHString* textScript = ScriptHString::toNative(textManaged);
  31. return textScript->getInternalValue();
  32. }
  33. const HString& ScriptGUIContent::getTooltip(MonoObject* instance)
  34. {
  35. MonoObject* tooltipManaged = nullptr;
  36. mTooltipField->getValue(instance, &tooltipManaged);
  37. if(tooltipManaged == nullptr)
  38. return HString::dummy();
  39. ScriptHString* tooltipScript = ScriptHString::toNative(tooltipManaged);
  40. return tooltipScript->getInternalValue();
  41. }
  42. HSpriteTexture ScriptGUIContent::getImage(MonoObject* instance)
  43. {
  44. MonoObject* imageManaged = nullptr;
  45. mImageField->getValue(instance, &imageManaged);
  46. if(imageManaged == nullptr)
  47. return HSpriteTexture();
  48. ScriptSpriteTexture* imageScript = ScriptSpriteTexture::toNative(imageManaged);
  49. return imageScript->getInternalValue();
  50. }
  51. }