Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,63 @@
|
|||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Timeline;
|
||||
|
||||
namespace UnityEditor.Timeline
|
||||
{
|
||||
class ClipsLayer : ItemsLayer<TimelineClipGUI>
|
||||
{
|
||||
static readonly GUIStyle k_ConnectorIcon = DirectorStyles.Instance.connector;
|
||||
|
||||
public ClipsLayer(Layer layerOrder, IRowGUI parent) : base(layerOrder)
|
||||
{
|
||||
var track = parent.asset;
|
||||
track.SortClips();
|
||||
TimelineClipGUI previousClipGUI = null;
|
||||
|
||||
foreach (var clip in track.clips)
|
||||
{
|
||||
var oldClipGUI = ItemToItemGui.GetGuiForClip(clip);
|
||||
var isInvalid = oldClipGUI != null && oldClipGUI.isInvalid; // HACK Make sure to carry invalidy state when refereshing the cache.
|
||||
|
||||
var currentClipGUI = new TimelineClipGUI(clip, parent, this) {isInvalid = isInvalid};
|
||||
if (previousClipGUI != null) previousClipGUI.nextClip = currentClipGUI;
|
||||
currentClipGUI.previousClip = previousClipGUI;
|
||||
AddItem(currentClipGUI);
|
||||
previousClipGUI = currentClipGUI;
|
||||
}
|
||||
|
||||
//adjust zOrder based on current clip selection
|
||||
foreach (var clipGUI in items)
|
||||
{
|
||||
if(clipGUI.IsSelected())
|
||||
clipGUI.MoveToTop();
|
||||
}
|
||||
}
|
||||
|
||||
public override void Draw(Rect rect, WindowState state)
|
||||
{
|
||||
base.Draw(rect, state); //draw clips
|
||||
DrawConnector(items);
|
||||
}
|
||||
|
||||
static void DrawConnector(List<TimelineClipGUI> clips)
|
||||
{
|
||||
if (Event.current.type != EventType.Repaint)
|
||||
return;
|
||||
|
||||
foreach (var clip in clips)
|
||||
{
|
||||
if (clip.previousClip != null && clip.visible && clip.treeViewRect.width > 14 &&
|
||||
(DiscreteTime)clip.start == (DiscreteTime)clip.previousClip.end)
|
||||
{
|
||||
// draw little connector widget
|
||||
var localRect = clip.treeViewRect;
|
||||
localRect.x -= Mathf.Floor(k_ConnectorIcon.fixedWidth / 2.0f);
|
||||
localRect.width = k_ConnectorIcon.fixedWidth;
|
||||
localRect.height = k_ConnectorIcon.fixedHeight;
|
||||
GUI.Label(localRect, GUIContent.none, k_ConnectorIcon);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue