BsScriptUndoRedo.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include "BsScriptEditorPrerequisites.h"
  3. #include "BsScriptObject.h"
  4. namespace BansheeEngine
  5. {
  6. /**
  7. * @brief Interop class between C++ & CLR for UndoRedo.
  8. */
  9. class BS_SCR_BED_EXPORT ScriptUndoRedo : public ScriptObject <ScriptUndoRedo>
  10. {
  11. public:
  12. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "UndoRedo");
  13. private:
  14. ScriptUndoRedo(MonoObject* instance);
  15. /************************************************************************/
  16. /* CLR HOOKS */
  17. /************************************************************************/
  18. static void internal_Undo();
  19. static void internal_Redo();
  20. static void internal_PushGroup(MonoString* name);
  21. static void internal_PopGroup(MonoString* name);
  22. static UINT32 internal_GetTopCommandId();
  23. static void internal_PopCommand(UINT32 id);
  24. static void internal_RecordSO(ScriptSceneObject* soPtr, MonoString* description);
  25. static MonoObject* internal_CloneSO(ScriptSceneObject* soPtr, MonoString* description);
  26. static MonoArray* internal_CloneSOMulti(MonoArray* soPtrs, MonoString* description);
  27. static MonoObject* internal_Instantiate(ScriptPrefab* prefabPtr, MonoString* description);
  28. static MonoObject* internal_CreateSO(MonoString* name, MonoString* description);
  29. static void internal_DeleteSO(ScriptSceneObject* soPtr, MonoString* description);
  30. static void internal_ReparentSO(ScriptSceneObject* soPtr, ScriptSceneObject* parentSOPtr, MonoString* description);
  31. static void internal_ReparentSOMulti(MonoArray* soPtrs, ScriptSceneObject* parentSOPtr, MonoString* description);
  32. };
  33. }