private bool IsAnimationEnabled(RadObject element)
        {
            bool       flag       = ThemeResolutionService.AllowAnimations && AnimatedPropertySetting.AnimationsEnabled;
            RadElement radElement = element as RadElement;

            if (radElement != null && flag)
            {
                ComponentThemableElementTree elementTree = radElement.ElementTree;
                if (elementTree == null || !elementTree.AnimationsEnabled || radElement.Visibility != ElementVisibility.Visible)
                {
                    return(false);
                }
                Control control = elementTree.Control;
                if (control == null)
                {
                    return(false);
                }
                flag = control.Visible;
                RadControl radControl = control as RadControl;
                if (radControl != null && !radControl.Visible && !radControl.IsLoaded)
                {
                    flag = true;
                }
            }
            return(flag);
        }
示例#2
0
        private ISupportDrop GetDropTarget(Point mousePosition, out Point resultDropLocation)
        {
            //hittest the current control under the mouse
            ComponentThemableElementTree elementTree = this.ElementTreeFromPoint(mousePosition);

            return(this.HitTestElementTree(elementTree, mousePosition, out resultDropLocation));
        }
示例#3
0
 protected override void OnElementTreeChanged(ComponentThemableElementTree previousTree)
 {
     base.OnElementTreeChanged(previousTree);
     previousTree?.ComponentTreeHandler.UnregisterHostedControl(this, true);
     if (this.ElementTree == null)
     {
         return;
     }
     this.ElementTree.ComponentTreeHandler.RegisterHostedControl(this);
 }
示例#4
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);
        }
 public virtual bool OnMouseUp(MouseEventArgs e)
 {
     if (!this.enable || this.DisableMouseEvents)
     {
         return(false);
     }
     if (this.OwnerControl.Capture && this.ItemCapture != null)
     {
         this.ItemCapture.CallDoMouseUp(e);
     }
     else if (this.selectedElement != null)
     {
         this.selectedElement.CallDoMouseUp(e);
     }
     else if (this.Owner != null)
     {
         ComponentThemableElementTree elementTree = this.Owner.ElementTree;
         elementTree.GetElementAtPoint((RadElement)elementTree.RootElement, e.Location, (List <RadElement>)null)?.CallDoMouseUp(e);
     }
     return(false);
 }
示例#6
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);
        }