Exemplo n.º 1
0
        protected virtual void OnPreviewDropTarget(PreviewDropTargetEventArgs e)
        {
            EventHandler <PreviewDropTargetEventArgs> eh = this.Events[PreviewDropTargetEventKey] as EventHandler <PreviewDropTargetEventArgs>;

            if (eh != null)
            {
                eh(this, e);
            }
        }
Exemplo n.º 2
0
        protected virtual void OnPreviewDropTarget(PreviewDropTargetEventArgs e)
        {
            EventHandler <PreviewDropTargetEventArgs> eventHandler = this.Events[RadDragDropService.PreviewDropTargetEventKey] as EventHandler <PreviewDropTargetEventArgs>;

            if (eventHandler == null)
            {
                return;
            }
            eventHandler((object)this, e);
        }
Exemplo n.º 3
0
        private ISupportDrop HitTestElementTree(ComponentThemableElementTree elementTree, Point screenMouse, out Point resultDropLocation)
        {
            if (elementTree == null)
            {
                resultDropLocation = Point.Empty;
                return(null);
            }

            resultDropLocation = Point.Empty;
            Point        clientMouse  = elementTree.Control.PointToClient(screenMouse);
            RadElement   hitElement   = elementTree.GetElementAtPoint(clientMouse);
            ISupportDrag dragInstance = this.Context as ISupportDrag;

            ISupportDrop dropTarget = null;
            ISupportDrop hitTarget  = null;

            while (hitElement != null)
            {
                hitTarget  = hitElement as ISupportDrop;
                dropTarget = null;

                if (hitTarget != null && hitTarget.AllowDrop)
                {
                    RadElement dropTargetElement = hitTarget as RadElement;

                    if (dropTargetElement != null)
                    {
                        resultDropLocation = dropTargetElement.PointFromControl(clientMouse);
                    }
                    else
                    {
                        resultDropLocation = clientMouse;
                    }

                    dropTarget = hitTarget;
                }

                //raise PreviewDropTarget event
                PreviewDropTargetEventArgs args = new PreviewDropTargetEventArgs(dragInstance, hitTarget);
                args.DropTarget = dropTarget;
                this.OnPreviewDropTarget(args);
                dropTarget = args.DropTarget;

                if (dropTarget != null)
                {
                    return(dropTarget);
                }

                hitElement = hitElement.Parent;
            }

            return(null);
        }
Exemplo n.º 4
0
        private ISupportDrop HitTestElementTree(
            ComponentThemableElementTree elementTree,
            Point screenMouse,
            out Point resultDropLocation)
        {
            if (elementTree == null)
            {
                resultDropLocation = Point.Empty;
                return((ISupportDrop)null);
            }
            resultDropLocation = Point.Empty;
            Point        client      = elementTree.Control.PointToClient(screenMouse);
            RadElement   radElement1 = elementTree.GetElementAtPoint(client);
            ISupportDrag context     = this.Context as ISupportDrag;

            for (; radElement1 != null; radElement1 = radElement1.Parent)
            {
                ISupportDrop hitTarget   = radElement1 as ISupportDrop;
                ISupportDrop supportDrop = (ISupportDrop)null;
                if (hitTarget != null && hitTarget.AllowDrop)
                {
                    RadElement radElement2 = hitTarget as RadElement;
                    resultDropLocation = radElement2 == null ? client : radElement2.PointFromControl(client);
                    supportDrop        = hitTarget;
                }
                PreviewDropTargetEventArgs e = new PreviewDropTargetEventArgs(context, hitTarget);
                e.DropTarget = supportDrop;
                this.OnPreviewDropTarget(e);
                ISupportDrop dropTarget = e.DropTarget;
                if (dropTarget != null)
                {
                    return(dropTarget);
                }
            }
            return((ISupportDrop)null);
        }