54 lines
1.4 KiB
C#
54 lines
1.4 KiB
C#
|
using UnityEngine;
|
||
|
|
||
|
namespace UnityEditor.Timeline
|
||
|
{
|
||
|
class TimelineClipHandle : ILayerable
|
||
|
{
|
||
|
Rect m_Rect;
|
||
|
readonly TimelineClipGUI m_ClipGUI;
|
||
|
readonly TrimEdge m_TrimDirection;
|
||
|
readonly LayerZOrder m_ZOrder;
|
||
|
|
||
|
public Rect boundingRect
|
||
|
{
|
||
|
get { return m_ClipGUI.parent.ToWindowSpace(m_Rect); }
|
||
|
}
|
||
|
|
||
|
public TrimEdge trimDirection
|
||
|
{
|
||
|
get { return m_TrimDirection; }
|
||
|
}
|
||
|
|
||
|
public TimelineClipGUI clipGUI
|
||
|
{
|
||
|
get { return m_ClipGUI; }
|
||
|
}
|
||
|
|
||
|
public LayerZOrder zOrder
|
||
|
{
|
||
|
get { return m_ZOrder; }
|
||
|
}
|
||
|
|
||
|
public TimelineClipHandle(TimelineClipGUI theClipGUI, TrimEdge trimDirection)
|
||
|
{
|
||
|
m_TrimDirection = trimDirection;
|
||
|
m_ClipGUI = theClipGUI;
|
||
|
m_ZOrder = theClipGUI.zOrder.ChangeLayer(Layer.ClipHandles);
|
||
|
}
|
||
|
|
||
|
public void Draw(Rect clientRect, float width, WindowState state)
|
||
|
{
|
||
|
var handleRect = clientRect;
|
||
|
handleRect.width = width;
|
||
|
|
||
|
if (m_TrimDirection == TrimEdge.End)
|
||
|
handleRect.x = clientRect.xMax - width;
|
||
|
|
||
|
m_Rect = handleRect;
|
||
|
if (!TimelineWindow.instance.state.editSequence.isReadOnly)
|
||
|
EditorGUIUtility.AddCursorRect(handleRect, MouseCursor.SplitResizeLeftRight);
|
||
|
state.spacePartitioner.AddBounds(this, boundingRect);
|
||
|
}
|
||
|
}
|
||
|
}
|