Ejemplo n.º 1
0
 private void _OnUpdateTimeLinkTrackItemActiveShow(TimeLineTrackItem item)
 {
     if (OnUpdateTimeLinkTrackItemActiveShow != null)
     {
         OnUpdateTimeLinkTrackItemActiveShow(item);
     }
 }
Ejemplo n.º 2
0
        //  移动后的帧起始时间是否合法,合法条件:移动后的帧开始时间
        //  不在前面帧之前或与之一致,不在后面帧之后或与之一致
        //  此方法逻辑严谨性依赖于不能在同一时间重复添加关键帧
        public bool MovedFrameStartIsLegitimate(Int64 originalStartTime, Int64 frameDelta)
        {
            int keyFrameIndex = 0;

            for (int i = 0; i < mTrackItems.Count; ++i)
            {
                if (mTrackItems[i].FrameStart == originalStartTime)
                {
                    keyFrameIndex = i;
                    break;
                }
            }

            if (keyFrameIndex > 0)
            {
                TimeLineTrackItem previousKeyFrameItem = mTrackItems[keyFrameIndex - 1];

                if (originalStartTime + frameDelta <= previousKeyFrameItem.FrameStart)
                {
                    return(false);
                }
            }

            if (keyFrameIndex < mTrackItems.Count - 1)
            {
                TimeLineTrackItem nextKeyFrameItem = mTrackItems[keyFrameIndex + 1];

                if (originalStartTime + frameDelta >= nextKeyFrameItem.FrameStart)
                {
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 3
0
 private void _OnTimeLineTrackItemSelected(TimeLineTrackItem item)
 {
     if (OnTimeLineTrackItemSelected != null)
     {
         OnTimeLineTrackItemSelected(item);
     }
 }
Ejemplo n.º 4
0
        private void _OnRemoveTimeLineTrackItem(TimeLineTrackItem item)
        {
            Canvas_Track.Children.Remove(item);
            mTrackItems.Remove(item);

            if (OnRemoveTimeLineTrackItem != null)
            {
                OnRemoveTimeLineTrackItem(item);
            }
        }
Ejemplo n.º 5
0
        public void RemoveTrackItem(Int64 currertFrameTime)
        {
            TimeLineTrackItem trackItem = null;

            for (int i = 0; i < mTrackItems.Count; ++i)
            {
                if (mTrackItems[i].FrameStart == currertFrameTime)
                {
                    trackItem = mTrackItems[i];
                    break;
                }
            }

            Canvas_Track.Children.Remove(trackItem);
            mTrackItems.Remove(trackItem);
        }
Ejemplo n.º 6
0
        public void AddTrackItem(TimeLineKeyFrameObjectInterface keyFrameItem)
        {
            var item = new TimeLineTrackItem(this, keyFrameItem);

            BindingOperations.SetBinding(item, UserControl.HeightProperty, new Binding("ActualHeight")
            {
                Source = this
            });
            item.OnRemoveTimeLineTrackItem           = new TimeLineTrackItem.Delegate_RemoveTimeLineTrackItem(_OnRemoveTimeLineTrackItem);
            item.OnUpdateTimeLineTrackItemActiveShow = new TimeLineTrackItem.Delegate_OnUpdateTimeLinkTrackItemActiveShow(_OnUpdateTimeLinkTrackItemActiveShow);
            item.OnSelected = new TimeLineTrackItem.Delegate_OnSelected(_OnTimeLineTrackItemSelected);
            mTrackItems.Add(item);
            Canvas_Track.Children.Add(item);

            mTrackItems.Sort(CompareTimeLineTrackItem);

            UpdateTrackShow();

            mHostControl?.OnCreateTimeLineTrackItem?.Invoke(item);
        }
Ejemplo n.º 7
0
        private void _OnTimeLineTrackItemSelected(TimeLineTrackItem item)
        {
            if (mSelectedItem == item)
            {
                return;
            }

            if (mSelectedItem != null)
            {
                mSelectedItem.IsSelected = false;
                OnTimeLineTrackItemUnSelected?.Invoke(mSelectedItem);
            }

            if (OnTimeLineTrackItemSelected != null)
            {
                OnTimeLineTrackItemSelected(item);
            }

            mSelectedItem = item;
        }
Ejemplo n.º 8
0
        private static int CompareTimeLineTrackItem(TimeLineTrackItem item0, TimeLineTrackItem item1)
        {
            if (item0 == item1)
            {
                return(0);
            }

            if (item0 == null)
            {
                if (item1 == null)
                {
                    return(0);
                }
                else
                {
                    return(-1);
                }
            }
            else
            {
                if (item1 == null)
                {
                    return(1);
                }
                else
                {
                    if (item0.FrameStart > item1.FrameStart)
                    {
                        return(1);
                    }
                    else if (item0.FrameStart < item1.FrameStart)
                    {
                        return(-1);
                    }
                    else
                    {
                        return(0);
                    }
                }
            }
        }
Ejemplo n.º 9
0
 private void _OnCreateTimeLineTrackItem(TimeLineTrackItem item)
 {
     OnCreateTimeLineTrackItem?.Invoke(item);
 }
Ejemplo n.º 10
0
        private void _OnRemoveTimeLineTrackItem(TimeLineTrackItem item)
        {
            item.HostTimeLineTrack.ListItem.TLObject.RemoveKeyFrameObject(item.KeyFrameItem);

            OnRemoveTimeLineTrackItem?.Invoke(item);
        }