BsScriptGUIToggleGroup.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "BsScriptGUIToggleGroup.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoField.h"
  4. #include "BsMonoClass.h"
  5. #include "BsMonoManager.h"
  6. #include "BsSpriteTexture.h"
  7. #include "BsMonoUtil.h"
  8. #include "BsGUIToggle.h"
  9. namespace BansheeEngine
  10. {
  11. ScriptGUIToggleGroup::ScriptGUIToggleGroup(const std::shared_ptr<GUIToggleGroup>& toggleGroup)
  12. :mToggleGroup(toggleGroup)
  13. {
  14. }
  15. void ScriptGUIToggleGroup::initMetaData()
  16. {
  17. metaData = ScriptMeta(BansheeEngineAssemblyName, "BansheeEngine", "GUIToggleGroup", &ScriptGUIToggleGroup::initRuntimeData);
  18. MonoManager::registerScriptType(&metaData);
  19. }
  20. void ScriptGUIToggleGroup::initRuntimeData()
  21. {
  22. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGUIToggleGroup::internal_createInstance);
  23. metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUIToggleGroup::internal_destroyInstance);
  24. }
  25. void ScriptGUIToggleGroup::internal_createInstance(MonoObject* instance)
  26. {
  27. std::shared_ptr<GUIToggleGroup> toggleGroup = GUIToggle::createToggleGroup();
  28. ScriptGUIToggleGroup* nativeInstance = new (cm_alloc<ScriptGUIToggleGroup>()) ScriptGUIToggleGroup(toggleGroup);
  29. nativeInstance->createInstance(instance);
  30. metaData.thisPtrField->setValue(instance, &nativeInstance);
  31. }
  32. void ScriptGUIToggleGroup::internal_destroyInstance(ScriptGUIToggleGroup* nativeInstance)
  33. {
  34. cm_delete(nativeInstance);
  35. }
  36. }