public static CanvasGeometry ComputeFilledPath(Win2DRenderNode target, Win2DRenderNode parent, ICanvasResourceCreator resourceCreator) { Guard.NotNull(target, nameof(target)); Guard.NotNull(resourceCreator, nameof(resourceCreator)); if (parent == null || !target.IsVisible) { return(null); } var targetRect = target.RenderBounds; var parentRect = parent.RenderBounds; var targetOffset = target.VerticalPathRenderOffset; var point1 = Vector2.Zero; var point2 = Vector2.Zero; CalculateCenter(parentRect, ref point1); if (targetRect.CenterX > parentRect.CenterX) { CalculateCenterL(targetRect, ref point2, targetOffset); } else { CalculateCenterR(targetRect, ref point2, targetOffset); } MathHelper.Round(ref point1); MathHelper.Round(ref point2); return(CreateFilledPath(resourceCreator, point1, point2)); }
internal NodeMovingOperation(Mindmap mindmap, Win2DRenderNode renderNode, Node targetNode) { this.mindmap = mindmap; this.document = mindmap.Document; this.renderer = mindmap.Renderer; this.renderNode = renderNode; this.targetNode = targetNode; initialPosition = renderNode.RenderPosition; }
public static NodeMovingOperation Start(Mindmap mindmap, Win2DRenderNode renderNode) { if (renderNode != null) { var movingNode = renderNode.Node as Node; if (movingNode != null && movingNode.IsSelected && mindmap.Document != null) { return(new NodeMovingOperation(mindmap, renderNode, movingNode)); } } return(null); }
public void CancelEdit(bool invokeEvent) { if (editingNode == null) { return; } Hide(); editingNode = null; if (invokeEvent) { OnEditingEnded(); } }
public void BeginEdit(Win2DRenderNode renderNode) { if (renderNode == null) { return; } if (editingNode != renderNode) { EndEdit(false); editingNode = renderNode; } UpdateText(); Show(); }
public HitResult HitTest(Win2DRenderNode renderNode, Vector2 hitPosition) { return(notesButton.HitTest(renderNode, hitPosition) ?? expandButton.HitTest(renderNode, hitPosition) ?? checkBox.HitTest(renderNode, hitPosition)); }
public HitResult HitTest(Win2DRenderNode renderNode, Vector2 hitPosition) { return(renderBounds.Contains(hitPosition) ? new HitResult(renderNode, HitTarget.ExpandButton) : null); }
protected override IEnumerable <CanvasGeometry> CreateGeometries(Win2DRenderNode renderNode, ICanvasResourceCreator resourceCreator) { yield return(GeometryBuilder.ComputeLinePath(renderNode, renderNode.Parent, resourceCreator)); }
public static CanvasGeometry ComputeHullGeometry(ICanvasResourceCreator resourceCreator, Win2DScene scene, Win2DRenderNode renderNode) { Guard.NotNull(scene, nameof(scene)); Guard.NotNull(renderNode, nameof(renderNode)); Guard.NotNull(resourceCreator, nameof(resourceCreator)); var node = renderNode.Node; if (!node.HasChildren || node.IsCollapsed) { return(null); } IList <Rect2> childBounds = node.AllChildren() .Select(x => (Win2DRenderNode)scene.FindRenderNode(x)).Union(new[] { renderNode }).Where(x => x.IsVisible) .Select(x => Rect2.Inflate(new Rect2(x.TargetLayoutPosition, x.RenderSize), new Vector2(Padding, Padding))) .ToList(); if (childBounds.Count <= 0) { return(null); } var hull = ConvexHull.Compute(childBounds); var points = RoundCorners(hull); return(BuildGeometry(resourceCreator, points)); }
protected abstract IEnumerable <CanvasGeometry> CreateGeometries(Win2DRenderNode renderNode, ICanvasResourceCreator resourceCreator);