public void OnSetValue(IEnumerable <ITimelineItem> items, double endValue, WindowState state) { foreach (var item in items.OfType <ITrimmable>()) { EditMode.BeginTrim(item, TrimEdge.End); EditMode.TrimEnd(item, endValue, stretch); EditMode.FinishTrim(); } state.UpdateRootPlayableDuration(state.editSequence.duration); }
public void OnDrag(double endValue, WindowState state) { var trimValue = endValue; trimValue = TimelineWindow.instance.state.SnapToFrameIfRequired(trimValue); foreach (var item in grabbedItems) { EditMode.TrimEnd(item, trimValue, stretch); } state.UpdateRootPlayableDuration(state.editSequence.duration); }
public static void TrimClipWithEditMode(TimelineClip clip, TrimEdge edge, double time) { var clipItem = ItemsUtils.ToItem(clip); EditMode.BeginTrim(clipItem, edge); if (edge == TrimEdge.Start) { EditMode.TrimStart(clipItem, time); } else { EditMode.TrimEnd(clipItem, time, false); } EditMode.FinishTrim(); }
public void OnAttractedEdge(IAttractable attractable, ManipulateEdges manipulateEdges, AttractedEdge edge, double time) { var clipGUI = attractable as TimelineClipGUI; if (clipGUI == null) { return; } var clipItem = ItemsUtils.ToItem(clipGUI.clip); if (manipulateEdges == ManipulateEdges.Right) { bool affectTimeScale = Event.current.modifiers == EventModifiers.Shift; // TODO Do not use Event.current from here. EditMode.TrimEnd(clipItem, time, affectTimeScale); } else if (manipulateEdges == ManipulateEdges.Left) { EditMode.TrimStart(clipItem, time); } }
public void OnAttractedEdge(IAttractable attractable, ManipulateEdges manipulateEdges, AttractedEdge edge, double time) { var clipGUI = attractable as TimelineClipGUI; if (clipGUI == null) { return; } var clipItem = ItemsUtils.ToItem(clipGUI.clip); if (manipulateEdges == ManipulateEdges.Right) { bool affectTimeScale = IsAffectingTimeScale(clipGUI.clip); EditMode.TrimEnd(clipItem, time, affectTimeScale); } else if (manipulateEdges == ManipulateEdges.Left) { bool affectTimeScale = IsAffectingTimeScale(clipGUI.clip); EditMode.TrimStart(clipItem, time, affectTimeScale); } }