BsScriptGUIBase.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "BsScriptGUIBase.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoField.h"
  4. #include "BsMonoClass.h"
  5. #include "BsMonoManager.h"
  6. #include "BsScriptGUIArea.h"
  7. #include "BsGUIArea.h"
  8. #include "BsGUILayout.h"
  9. using namespace CamelotFramework;
  10. namespace BansheeEngine
  11. {
  12. ScriptGUIBase::ScriptGUIBase(GUIWidget& widget)
  13. :mWidget(widget)
  14. {
  15. }
  16. void ScriptGUIBase::initMetaData()
  17. {
  18. metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "GUIBase", &ScriptGUIBase::initRuntimeData);
  19. MonoManager::registerScriptType(&metaData);
  20. }
  21. void ScriptGUIBase::initRuntimeData()
  22. {
  23. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGUIBase::internal_createInstance);
  24. metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUIBase::internal_destroyInstance);
  25. }
  26. void ScriptGUIBase::internal_createInstance(MonoObject* instance)
  27. {
  28. //ScriptGUIArea* scriptArea = ScriptGUIArea::toNative(parentArea);
  29. //GUIArea* nativeArea = scriptArea->getInternalValue();
  30. //ScriptGUILayout* nativeInstance = new (cm_alloc<ScriptGUILayout>()) ScriptGUILayout(nativeArea->getLayout(), scriptArea);
  31. //nativeInstance->createInstance(instance);
  32. //metaData.thisPtrField->setValue(instance, nativeInstance);
  33. }
  34. void ScriptGUIBase::internal_destroyInstance(ScriptGUIBase* nativeInstance)
  35. {
  36. nativeInstance->destroyInstance();
  37. cm_delete(nativeInstance);
  38. }
  39. }