BsScriptSelection.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #pragma once
  2. #include "BsScriptEditorPrerequisites.h"
  3. #include "BsScriptObject.h"
  4. namespace BansheeEngine
  5. {
  6. class BS_SCR_BED_EXPORT ScriptSelection : public ScriptObject<ScriptSelection>
  7. {
  8. public:
  9. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "Selection");
  10. static void startUp();
  11. static void shutDown();
  12. private:
  13. ScriptSelection(MonoObject* instance);
  14. static void onSelectionChanged(const Vector<HSceneObject>& sceneObjects, const Vector<Path>& resPaths);
  15. static void onResourcePing(const Path& resPath);
  16. static void onSceneObjectPing(const HSceneObject& sceneObject);
  17. static void internal_GetSceneObjectSelection(MonoArray** selection);
  18. static void internal_SetSceneObjectSelection(MonoArray* selection);
  19. static void internal_GetResourceUUIDSelection(MonoArray** selection);
  20. static void internal_SetResourceUUIDSelection(MonoArray* selection);
  21. static void internal_GetResourcePathSelection(MonoArray** selection);
  22. static void internal_SetResourcePathSelection(MonoArray* selection);
  23. static void internal_PingResource(MonoString* resourcePath);
  24. static void internal_PingSceneObject(MonoObject* so);
  25. typedef void(__stdcall *OnSelectionChangedThunkDef) (MonoArray*, MonoArray*, MonoException**);
  26. typedef void(__stdcall *OnPingResourceThunkDef) (MonoString*, MonoException**);
  27. typedef void(__stdcall *OnPingSceneObjectThunkDef) (MonoObject*, MonoException**);
  28. static OnSelectionChangedThunkDef OnSelectionChangedThunk;
  29. static OnPingResourceThunkDef OnPingResourceThunk;
  30. static OnPingSceneObjectThunkDef OnPingSceneObjectThunk;
  31. static HEvent OnSelectionChangedConn;
  32. static HEvent OnPingResourceConn;
  33. static HEvent OnPingSceneObjectConn;
  34. };
  35. }