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); }
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)); }
protected override void OnElementTreeChanged(ComponentThemableElementTree previousTree) { base.OnElementTreeChanged(previousTree); previousTree?.ComponentTreeHandler.UnregisterHostedControl(this, true); if (this.ElementTree == null) { return; } this.ElementTree.ComponentTreeHandler.RegisterHostedControl(this); }
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); }
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); }