BsScriptPlainText.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "BsScriptPlainText.h"
  2. #include "BsScriptResourceManager.h"
  3. #include "BsScriptMeta.h"
  4. #include "BsMonoField.h"
  5. #include "BsMonoClass.h"
  6. #include "BsMonoManager.h"
  7. #include "BsMonoUtil.h"
  8. #include "BsPlainText.h"
  9. using namespace std::placeholders;
  10. namespace BansheeEngine
  11. {
  12. ScriptPlainText::ScriptPlainText(MonoObject* instance, const HPlainText& plainText)
  13. :TScriptResource(instance, plainText)
  14. {
  15. }
  16. void ScriptPlainText::initRuntimeData()
  17. {
  18. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptPlainText::internal_createInstance);
  19. metaData.scriptClass->addInternalCall("Internal_GetText", &ScriptPlainText::internal_getText);
  20. metaData.scriptClass->addInternalCall("Internal_SetText", &ScriptPlainText::internal_setText);
  21. }
  22. void ScriptPlainText::internal_createInstance(MonoObject* instance, MonoString* text)
  23. {
  24. WString strText = MonoUtil::monoToWString(text);
  25. HPlainText plainText = PlainText::create(strText);
  26. ScriptPlainText* scriptInstance;
  27. ScriptResourceManager::instance().createScriptResource(instance, plainText, &scriptInstance);
  28. }
  29. MonoString* ScriptPlainText::internal_getText(ScriptPlainText* thisPtr)
  30. {
  31. HPlainText plainText = thisPtr->getHandle();
  32. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), plainText->getString());
  33. }
  34. void ScriptPlainText::internal_setText(ScriptPlainText* thisPtr, MonoString* text)
  35. {
  36. HPlainText plainText = thisPtr->getHandle();
  37. plainText->setString(MonoUtil::monoToWString(text));
  38. }
  39. MonoObject* ScriptPlainText::createInstance()
  40. {
  41. return metaData.scriptClass->createInstance();
  42. }
  43. }