summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.timeline@1.2.13/Editor/treeview/Manipulator.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/treeview/Manipulator.cs')
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Editor/treeview/Manipulator.cs91
1 files changed, 91 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/treeview/Manipulator.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/treeview/Manipulator.cs
new file mode 100644
index 0000000..d0aac15
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/treeview/Manipulator.cs
@@ -0,0 +1,91 @@
+using UnityEngine;
+
+namespace UnityEditor.Timeline
+{
+ abstract class Manipulator
+ {
+ int m_Id;
+
+ protected virtual bool MouseDown(Event evt, WindowState state) { return false; }
+ protected virtual bool MouseDrag(Event evt, WindowState state) { return false; }
+ protected virtual bool MouseWheel(Event evt, WindowState state) { return false; }
+ protected virtual bool MouseUp(Event evt, WindowState state) { return false; }
+ protected virtual bool DoubleClick(Event evt, WindowState state) { return false; }
+ protected virtual bool KeyDown(Event evt, WindowState state) { return false; }
+ protected virtual bool KeyUp(Event evt, WindowState state) { return false; }
+ protected virtual bool ContextClick(Event evt, WindowState state) { return false; }
+ protected virtual bool ValidateCommand(Event evt, WindowState state) { return false; }
+ protected virtual bool ExecuteCommand(Event evt, WindowState state) { return false; }
+
+ public virtual void Overlay(Event evt, WindowState state) {}
+
+ public bool HandleEvent(WindowState state)
+ {
+ if (m_Id == 0)
+ m_Id = GUIUtility.GetPermanentControlID();
+
+ bool isHandled = false;
+ var evt = Event.current;
+
+ switch (evt.GetTypeForControl(m_Id))
+ {
+ case EventType.ScrollWheel:
+ isHandled = MouseWheel(evt, state);
+ break;
+
+ case EventType.MouseUp:
+ {
+ if (GUIUtility.hotControl == m_Id)
+ {
+ isHandled = MouseUp(evt, state);
+
+ GUIUtility.hotControl = 0;
+ evt.Use();
+ }
+ }
+ break;
+
+ case EventType.MouseDown:
+ {
+ isHandled = evt.clickCount < 2 ? MouseDown(evt, state) : DoubleClick(evt, state);
+
+ if (isHandled)
+ GUIUtility.hotControl = m_Id;
+ }
+ break;
+
+ case EventType.MouseDrag:
+ {
+ if (GUIUtility.hotControl == m_Id)
+ isHandled = MouseDrag(evt, state);
+ }
+ break;
+
+ case EventType.KeyDown:
+ isHandled = KeyDown(evt, state);
+ break;
+
+ case EventType.KeyUp:
+ isHandled = KeyUp(evt, state);
+ break;
+
+ case EventType.ContextClick:
+ isHandled = ContextClick(evt, state);
+ break;
+
+ case EventType.ValidateCommand:
+ isHandled = ValidateCommand(evt, state);
+ break;
+
+ case EventType.ExecuteCommand:
+ isHandled = ExecuteCommand(evt, state);
+ break;
+ }
+
+ if (isHandled)
+ evt.Use();
+
+ return isHandled;
+ }
+ }
+}