2
0

BsScriptPlainText.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "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 "BsPlainText.h"
  11. using namespace std::placeholders;
  12. namespace BansheeEngine
  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", &ScriptPlainText::internal_createInstance);
  21. metaData.scriptClass->addInternalCall("Internal_GetText", &ScriptPlainText::internal_getText);
  22. metaData.scriptClass->addInternalCall("Internal_SetText", &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. ScriptPlainText* scriptInstance;
  29. ScriptResourceManager::instance().createScriptResource(instance, plainText, &scriptInstance);
  30. }
  31. MonoString* ScriptPlainText::internal_getText(ScriptPlainText* thisPtr)
  32. {
  33. HPlainText plainText = thisPtr->getHandle();
  34. return MonoUtil::wstringToMono(plainText->getString());
  35. }
  36. void ScriptPlainText::internal_setText(ScriptPlainText* thisPtr, MonoString* text)
  37. {
  38. HPlainText plainText = thisPtr->getHandle();
  39. plainText->setString(MonoUtil::monoToWString(text));
  40. }
  41. MonoObject* ScriptPlainText::createInstance()
  42. {
  43. return metaData.scriptClass->createInstance();
  44. }
  45. }