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); } } }