2
0

BsScriptDropTarget.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #pragma once
  2. #include "BsScriptEditorPrerequisites.h"
  3. #include "BsScriptObject.h"
  4. #include "BsScriptDropTarget.h"
  5. #include "BsRect2I.h"
  6. namespace BansheeEngine
  7. {
  8. class BS_SCR_BED_EXPORT ScriptDropTarget : public ScriptObject <ScriptDropTarget>
  9. {
  10. public:
  11. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "DropTarget")
  12. private:
  13. OSDropTarget* mDropTarget;
  14. Rect2I mParentArea;
  15. Rect2I mArea;
  16. bool mIsDestroyed;
  17. HEvent mDropTargetEnterConn;
  18. HEvent mDropTargetMoveConn;
  19. HEvent mDropTargetLeaveConn;
  20. HEvent mDropTargetDroppedConn;
  21. HEvent mWidgetParentChangedConn;
  22. HEvent mWidgetResizedConn;
  23. ScriptDropTarget(MonoObject* instance, EditorWidgetBase* parent);
  24. ~ScriptDropTarget();
  25. void destroy();
  26. void setDropTarget(const RenderWindowPtr& parentWindow, INT32 x, INT32 y, UINT32 width, UINT32 height);
  27. void setBounds(const Rect2I& bounds);
  28. void widgetParentChanged(EditorWidgetContainer* parent);
  29. void widgetResized(UINT32 width, UINT32 height);
  30. typedef void(__stdcall *OnEnterThunkDef) (MonoObject*, INT32, INT32, MonoException**);
  31. typedef void(__stdcall *OnMoveDef) (MonoObject*, INT32, INT32, MonoException**);
  32. typedef void(__stdcall *OnLeaveDef) (MonoObject*, MonoException**);
  33. typedef void(__stdcall *OnDropThunkDef) (MonoObject*, INT32, INT32, MonoException**);
  34. static void internal_CreateInstance(MonoObject* instance, ScriptEditorWindow* editorWindow);
  35. static void internal_Destroy(ScriptDropTarget* nativeInstance);
  36. static void internal_SetBounds(ScriptDropTarget* nativeInstance, Rect2I bounds);
  37. static MonoArray* internal_GetFilePaths(ScriptDropTarget* nativeInstance);
  38. static void dropTargetDragEnter(MonoObject* instance, INT32 x, INT32 y);
  39. static void dropTargetDragMove(MonoObject* instance, INT32 x, INT32 y);
  40. static void dropTargetDragLeave(MonoObject* instance);
  41. static void dropTargetDragDropped(MonoObject* instance, INT32 x, INT32 y);
  42. static OnEnterThunkDef onEnterThunk;
  43. static OnMoveDef onMoveThunk;
  44. static OnLeaveDef onLeaveThunk;
  45. static OnDropThunkDef onDropThunk;
  46. };
  47. }