summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs')
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs47
1 files changed, 47 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs
new file mode 100644
index 00000000..2da02086
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/DragAndDropTool.cs
@@ -0,0 +1,47 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using UnityEditor;
+using UnityEngine;
+
+namespace AmplifyShaderEditor
+{
+ public class DragAndDropTool
+ {
+ public delegate void OnValidDropObject(params UnityEngine.Object[] draggedObjs );
+ public event OnValidDropObject OnValidDropObjectEvt;
+
+ public void Destroy()
+ {
+ OnValidDropObjectEvt = null;
+ }
+
+ public void TestDragAndDrop( Rect dropArea )
+ {
+ Event currentEvent = Event.current;
+ EventType currentEventType = currentEvent.type;
+
+ switch (currentEventType)
+ {
+ case EventType.DragUpdated:
+ case EventType.DragPerform:
+ {
+
+ if (!dropArea.Contains(currentEvent.mousePosition))
+ return;
+
+ DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
+ if (currentEvent.type == EventType.DragPerform)
+ {
+ DragAndDrop.AcceptDrag();
+ if (OnValidDropObjectEvt != null)
+ {
+ OnValidDropObjectEvt(DragAndDrop.objectReferences);
+ }
+ }
+ }break;
+ case EventType.DragExited:DragAndDrop.PrepareStartDrag();break;
+ }
+ }
+ }
+}