public void OnEnterDrag(IEnumerable <ITimelineItem> items, WindowState state) { grabbedItems = items.OfType <ITrimmable>().ToArray(); foreach (var item in grabbedItems) { EditMode.BeginTrim(item, TrimEdge.End); } isDragging = true; }
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); }
protected override bool MouseDown(Event evt, WindowState state) { var handle = PickerUtils.PickedLayerableOfType <TimelineClipHandle>(); if (handle == null) { return(false); } if (handle.clipGUI.clip.parentTrack != null && handle.clipGUI.clip.parentTrack.lockedInHierarchy) { return(false); } if (ItemSelection.CanClearSelection(evt)) { SelectionManager.Clear(); } if (!SelectionManager.Contains(handle.clipGUI.clip)) { SelectionManager.Add(handle.clipGUI.clip); } m_TrimClipHandler = handle; m_IsCaptured = true; state.AddCaptured(this); m_UndoSaved = false; var clip = m_TrimClipHandler.clipGUI.clip; m_OriginalDuration = clip.duration; m_OriginalTimeScale = clip.timeScale; m_OriginalEaseInDuration = clip.easeInDuration; m_OriginalEaseOutDuration = clip.easeOutDuration; RefreshOverlayStrings(m_TrimClipHandler, state); // in ripple trim, the right edge moves and needs to snap var edges = ManipulateEdges.Right; if (EditMode.editType != EditMode.EditType.Ripple && m_TrimClipHandler.trimDirection == TrimEdge.Start) { edges = ManipulateEdges.Left; } m_SnapEngine = new SnapEngine(m_TrimClipHandler.clipGUI, new TrimClipAttractionHandler(), edges, state, evt.mousePosition); EditMode.BeginTrim(ItemsUtils.ToItem(clip), m_TrimClipHandler.trimDirection); return(true); }
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(); }