2
0

BsScriptPlainText.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "Wrappers/BsScriptPlainText.h"
  4. #include "BsScriptResourceManager.h"
  5. #include "BsScriptMeta.h"
  6. #include "BsMonoField.h"
  7. #include "BsMonoClass.h"
  8. #include "BsMonoManager.h"
  9. #include "BsMonoUtil.h"
  10. #include "Resources/BsPlainText.h"
  11. using namespace std::placeholders;
  12. namespace bs
  13. {
  14. ScriptPlainText::ScriptPlainText(MonoObject* instance, const HPlainText& plainText)
  15. :TScriptResource(instance, plainText)
  16. {
  17. }
  18. void ScriptPlainText::initRuntimeData()
  19. {
  20. metaData.scriptClass->addInternalCall("Internal_CreateInstance", (void*)&ScriptPlainText::internal_createInstance);
  21. metaData.scriptClass->addInternalCall("Internal_GetText", (void*)&ScriptPlainText::internal_getText);
  22. metaData.scriptClass->addInternalCall("Internal_SetText", (void*)&ScriptPlainText::internal_setText);
  23. }
  24. void ScriptPlainText::internal_createInstance(MonoObject* instance, MonoString* text)
  25. {
  26. WString strText = MonoUtil::monoToWString(text);
  27. HPlainText plainText = PlainText::create(strText);
  28. ScriptResourceManager::instance().createBuiltinScriptResource(plainText, instance);
  29. }
  30. MonoString* ScriptPlainText::internal_getText(ScriptPlainText* thisPtr)
  31. {
  32. HPlainText plainText = thisPtr->getHandle();
  33. return MonoUtil::wstringToMono(plainText->getString());
  34. }
  35. void ScriptPlainText::internal_setText(ScriptPlainText* thisPtr, MonoString* text)
  36. {
  37. HPlainText plainText = thisPtr->getHandle();
  38. plainText->setString(MonoUtil::monoToWString(text));
  39. }
  40. MonoObject* ScriptPlainText::createInstance()
  41. {
  42. return metaData.scriptClass->createInstance();
  43. }
  44. }