2
0

BsScriptGUIContent.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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 "BsScriptGUIContent.h"
  9. #include "BsScriptSpriteTexture.h"
  10. #include "BsSpriteTexture.h"
  11. using namespace CamelotFramework;
  12. namespace BansheeEngine
  13. {
  14. MonoField* ScriptGUIContent::mTextField;
  15. MonoField* ScriptGUIContent::mTooltipField;
  16. MonoField* ScriptGUIContent::mImageField;
  17. void ScriptGUIContent::initMetaData()
  18. {
  19. metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "GUIContent", &ScriptGUIContent::initRuntimeData);
  20. MonoManager::registerScriptType(&metaData);
  21. }
  22. void ScriptGUIContent::initRuntimeData()
  23. {
  24. mTextField = &metaData.scriptClass->getField("_text");
  25. mTooltipField = &metaData.scriptClass->getField("_tooltip");
  26. mImageField = &metaData.scriptClass->getField("_image");
  27. }
  28. const CM::HString& ScriptGUIContent::getText(MonoObject* instance)
  29. {
  30. MonoObject* textManaged = (MonoObject*)mTextField->getValue(instance);
  31. if(textManaged == nullptr)
  32. return HString::dummy();
  33. ScriptHString* textScript = ScriptHString::toNative(textManaged);
  34. return textScript->getInternalValue();
  35. }
  36. const CM::HString& ScriptGUIContent::getTooltip(MonoObject* instance)
  37. {
  38. MonoObject* tooltipManaged = (MonoObject*)mTooltipField->getValue(instance);
  39. if(tooltipManaged == nullptr)
  40. return HString::dummy();
  41. ScriptHString* tooltipScript = ScriptHString::toNative(tooltipManaged);
  42. return tooltipScript->getInternalValue();
  43. }
  44. HSpriteTexture ScriptGUIContent::getImage(MonoObject* instance)
  45. {
  46. MonoObject* imageManaged = (MonoObject*)mImageField->getValue(instance);
  47. if(imageManaged == nullptr)
  48. return HSpriteTexture();
  49. ScriptSpriteTexture* imageScript = ScriptSpriteTexture::toNative(imageManaged);
  50. return imageScript->getInternalValue();
  51. }
  52. }