Пример #1
0
 private DragDropEffects ComputeDropEffects(DragEventArgs e)
 {
     if (this.TargetItem != null)
     {
         TimelineDropEffects requestedEffects1 = TimelineDropEffects.None;
         if ((e.AllowedEffects & DragDropEffects.Copy) != DragDropEffects.None && (e.KeyStates & DragDropKeyStates.ControlKey) != DragDropKeyStates.None)
         {
             requestedEffects1 |= TimelineDropEffects.Copy;
         }
         if ((e.AllowedEffects & DragDropEffects.Move) != DragDropEffects.None)
         {
             requestedEffects1 |= TimelineDropEffects.Move;
         }
         if (this.ShouldTryDropInsideFirst && this.TryDrop(e, requestedEffects1))
         {
             return(this.DragDropContext.Descriptor.ResultEffects);
         }
         TimelineDropEffects requestedEffects2 = requestedEffects1 | (this.StructureView.TimelineItemManager.SortByZOrder ? TimelineDropEffects.After : TimelineDropEffects.Before);
         if (this.TryDrop(e, requestedEffects2))
         {
             return(this.DragDropContext.Descriptor.ResultEffects);
         }
     }
     if (this.DragDropContext == null)
     {
         return(DragDropEffects.None);
     }
     this.DragDropContext.Descriptor.DisableDrop();
     return(this.DragDropContext.Descriptor.ResultEffects);
 }
Пример #2
0
 public DragDropContext(IDataObject data, TimelineItem target, TimelineDropEffects allowedEffects)
 {
     this.Data           = data;
     this.Target         = target;
     this.AllowedEffects = allowedEffects;
     this.Descriptor     = new TimelineDragDescriptor(this);
 }
Пример #3
0
 private void SetFlag(TimelineDropEffects effects, bool value)
 {
     if (value)
     {
         this.ResultDropEffects |= effects;
     }
     else
     {
         this.ResultDropEffects &= ~effects;
     }
 }
Пример #4
0
        private bool TryDrop(DragEventArgs e, TimelineDropEffects requestedEffects)
        {
            this.DragDropContext = new DragDropContext(e.Data, this.TargetItem, requestedEffects);
            IDropAction instance = DropActionFactory.CreateInstance(this.DragDropContext);

            if (instance != null)
            {
                return(instance.CanDrop(this.DragDropContext.Descriptor));
            }
            return(false);
        }
        public static TimelineDropEffects FromDragDropEffects(DragDropEffects effects)
        {
            TimelineDropEffects timelineDropEffects = TimelineDropEffects.None;

            if ((effects & DragDropEffects.Copy) != DragDropEffects.None)
            {
                timelineDropEffects |= TimelineDropEffects.Copy;
            }
            else if ((effects & DragDropEffects.Move) != DragDropEffects.None)
            {
                timelineDropEffects |= TimelineDropEffects.Move;
            }
            return(timelineDropEffects);
        }
        public static DragDropEffects DragDropEffect(TimelineDropEffects effects)
        {
            DragDropEffects dragDropEffects = DragDropEffects.None;

            if ((TimelineDropEffects.Copy & effects) != TimelineDropEffects.None)
            {
                dragDropEffects |= DragDropEffects.Copy;
            }
            if ((TimelineDropEffects.Move & effects) != TimelineDropEffects.None)
            {
                dragDropEffects |= DragDropEffects.Move;
            }
            return(dragDropEffects);
        }
        protected SceneElement GetDropTargetInfo(TimelineDropEffects dropEffects, TimelineDragDescriptor descriptor)
        {
            SceneElement sceneElement1 = this.Element;

            if (sceneElement1 == null)
            {
                return((SceneElement)null);
            }
            descriptor.DropIndex = -1;
            int          num           = 0;
            SceneElement sceneElement2 = (SceneElement)null;
            bool         flag          = false;

            if ((dropEffects & TimelineDropEffects.Before) != TimelineDropEffects.None)
            {
                sceneElement1 = this.Element.VisualElementAncestor;
                sceneElement2 = this.Element.VisualElementAncestor;
                if (this.Item.IsExpanded && this.Item.HasActiveChild)
                {
                    sceneElement1            = this.Element;
                    sceneElement2            = this.Element;
                    descriptor.RelativeDepth = 1;
                }
                num  = 1;
                flag = true;
            }
            else if ((dropEffects & TimelineDropEffects.After) != TimelineDropEffects.None)
            {
                sceneElement1 = this.Element.VisualElementAncestor;
                sceneElement2 = this.Element.VisualElementAncestor;
                flag          = true;
            }
            if (flag && sceneElement2 != null)
            {
                ISceneNodeCollection <SceneNode> collectionForProperty = sceneElement2.GetCollectionForProperty((IPropertyId)this.GetContentPropertyFromDragDescriptor(descriptor));
                if (collectionForProperty != null)
                {
                    descriptor.DropIndex = collectionForProperty.IndexOf((SceneNode)this.Element) + num;
                }
            }
            if (!this.Element.ViewModel.ActiveEditingContainer.IsAncestorOf((SceneNode)sceneElement1))
            {
                sceneElement1 = (SceneElement)null;
            }
            return(sceneElement1);
        }
Пример #8
0
        private DragDropEffects ComputeDropEffects(DragEventArgs e)
        {
            TimelineDropEffects allowedEffects1 = TimelineDropEffects.None;

            if ((this.HitTestResult & DropHitTestResults.UpperHalf) != DropHitTestResults.None)
            {
                allowedEffects1 = !this.TimelineItem.TimelineItemManager.SortByZOrder ? TimelineDropEffects.After : TimelineDropEffects.Before;
            }
            else if ((this.HitTestResult & DropHitTestResults.LowerHalf) != DropHitTestResults.None)
            {
                allowedEffects1 = !this.TimelineItem.TimelineItemManager.SortByZOrder ? TimelineDropEffects.Before : TimelineDropEffects.After;
            }
            if ((e.AllowedEffects & DragDropEffects.Copy) != DragDropEffects.None && this.IsCopyKeyState(e.KeyStates))
            {
                allowedEffects1 |= TimelineDropEffects.Copy;
            }
            if ((e.AllowedEffects & DragDropEffects.Move) != DragDropEffects.None)
            {
                allowedEffects1 |= TimelineDropEffects.Move;
            }
            if ((this.HitTestResult & DropHitTestResults.CenterHalf) != DropHitTestResults.None)
            {
                TimelineDropEffects allowedEffects2 = allowedEffects1 & ~(TimelineDropEffects.Before | TimelineDropEffects.After);
                this.DragDropContext = new DragDropContext(e.Data, this.TimelineItem, allowedEffects2);
                IDropAction instance = DropActionFactory.CreateInstance(this.DragDropContext);
                if (instance != null && instance.CanDrop(this.DragDropContext.Descriptor))
                {
                    return(this.DragDropContext.Descriptor.ResultEffects);
                }
            }
            this.DragDropContext = new DragDropContext(e.Data, this.TimelineItem, allowedEffects1);
            IDropAction instance1 = DropActionFactory.CreateInstance(this.DragDropContext);

            if (instance1 != null && instance1.CanDrop(this.DragDropContext.Descriptor))
            {
                return(this.DragDropContext.Descriptor.ResultEffects);
            }
            this.DragDropContext.Descriptor.DisableDrop();
            return(this.DragDropContext.Descriptor.ResultEffects);
        }
Пример #9
0
 private bool IsAnyFlagSet(TimelineDropEffects effects)
 {
     return((this.ResultDropEffects & effects) != TimelineDropEffects.None);
 }