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