Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        public void CancelEdit(bool invokeEvent)
        {
            if (editingNode == null)
            {
                return;
            }

            Hide();

            editingNode = null;

            if (invokeEvent)
            {
                OnEditingEnded();
            }
        }
Exemplo n.º 5
0
        public void BeginEdit(Win2DRenderNode renderNode)
        {
            if (renderNode == null)
            {
                return;
            }

            if (editingNode != renderNode)
            {
                EndEdit(false);

                editingNode = renderNode;
            }

            UpdateText();

            Show();
        }
Exemplo n.º 6
0
 public HitResult HitTest(Win2DRenderNode renderNode, Vector2 hitPosition)
 {
     return(notesButton.HitTest(renderNode, hitPosition) ?? expandButton.HitTest(renderNode, hitPosition) ?? checkBox.HitTest(renderNode, hitPosition));
 }
Exemplo n.º 7
0
 public HitResult HitTest(Win2DRenderNode renderNode, Vector2 hitPosition)
 {
     return(renderBounds.Contains(hitPosition) ? new HitResult(renderNode, HitTarget.ExpandButton) : null);
 }
Exemplo n.º 8
0
 protected override IEnumerable <CanvasGeometry> CreateGeometries(Win2DRenderNode renderNode, ICanvasResourceCreator resourceCreator)
 {
     yield return(GeometryBuilder.ComputeLinePath(renderNode, renderNode.Parent, resourceCreator));
 }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 10
0
 protected abstract IEnumerable <CanvasGeometry> CreateGeometries(Win2DRenderNode renderNode, ICanvasResourceCreator resourceCreator);