Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,103 @@
|
|||
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)
|
||||
{
|
||||
Event currentEvent = Event.current;
|
||||
var type = currentEvent.GetTypeForControl(m_Id);
|
||||
return HandleEvent(type, currentEvent, state);
|
||||
}
|
||||
|
||||
public bool HandleEvent(EventType type, WindowState state)
|
||||
{
|
||||
Event currentEvent = Event.current;
|
||||
return HandleEvent(type, currentEvent, state);
|
||||
}
|
||||
|
||||
bool HandleEvent(EventType type, Event evt, WindowState state)
|
||||
{
|
||||
if (m_Id == 0)
|
||||
m_Id = GUIUtility.GetPermanentControlID();
|
||||
|
||||
bool isHandled = false;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue