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