Exemplo n.º 1
0
            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;
            }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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();
        }