BsScriptGUIContent.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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(BansheeEngineAssemblyName, "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 = nullptr;
  31. mTextField->getValue(instance, &textManaged);
  32. if(textManaged == nullptr)
  33. return HString::dummy();
  34. ScriptHString* textScript = ScriptHString::toNative(textManaged);
  35. return textScript->getInternalValue();
  36. }
  37. const CM::HString& ScriptGUIContent::getTooltip(MonoObject* instance)
  38. {
  39. MonoObject* tooltipManaged = nullptr;
  40. mTooltipField->getValue(instance, &tooltipManaged);
  41. if(tooltipManaged == nullptr)
  42. return HString::dummy();
  43. ScriptHString* tooltipScript = ScriptHString::toNative(tooltipManaged);
  44. return tooltipScript->getInternalValue();
  45. }
  46. HSpriteTexture ScriptGUIContent::getImage(MonoObject* instance)
  47. {
  48. MonoObject* imageManaged = nullptr;
  49. mImageField->getValue(instance, &imageManaged);
  50. if(imageManaged == nullptr)
  51. return HSpriteTexture();
  52. ScriptSpriteTexture* imageScript = ScriptSpriteTexture::toNative(imageManaged);
  53. return imageScript->getInternalValue();
  54. }
  55. }