diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
| commit | c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 (patch) | |
| tree | ee4d51c7c1d633e11f46453ef1edd3c77c4ef9f7 /Library/PackageCache/com.unity.timeline@1.2.13/Editor/treeview/Manipulator.cs | |
| download | Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.gz Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.bz2 Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.zip | |
Inital commit
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.cs | 91 |
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; + } + } +} |
