Пример #1
0
        protected override bool OnHoverOverAdorner(IAdorner adorner)
        {
            if (this.action == null && !this.IsAltDown)
            {
                this.PopSelf();
                return(true);
            }
            PathPartAdorner pathPartAdorner = adorner as PathPartAdorner;

            if (pathPartAdorner == null)
            {
                return(base.OnHoverOverAdorner(adorner));
            }
            PenAction penAction = this.GetAction(pathPartAdorner);

            if (penAction == null)
            {
                if (this.action != null)
                {
                    penAction = this.action;
                }
                else
                {
                    this.PopSelf();
                    return(true);
                }
            }
            this.Cursor = penAction.HoverCursor;
            return(true);
        }
Пример #2
0
        public override Cursor GetCursor(IAdorner adorner)
        {
            if (adorner is LayoutEmptyBackgroundHeaderAdorner)
            {
                return(Cursors.Arrow);
            }
            if (adorner is GridLockAdorner)
            {
                return(Cursors.Hand);
            }
            LayoutLineHeaderAdorner lineHeaderAdorner = adorner as LayoutLineHeaderAdorner;

            if (lineHeaderAdorner != null)
            {
                if (!lineHeaderAdorner.IsX)
                {
                    return(Cursors.SizeNS);
                }
                return(Cursors.SizeWE);
            }
            if (!(adorner is NewGridlineAdorner))
            {
                return(ToolCursors.GridRowSelectCursor);
            }
            if (((LayoutBehavior)this.Behavior).IsNewGridlineEnabled)
            {
                return(ToolCursors.AddArrowCursor);
            }
            return(Cursors.Arrow);
        }
Пример #3
0
        public override void EnsureVisible(IAdorner adorner, bool scrollNow)
        {
            IClickable clickable = adorner as IClickable;

            if (adorner == null || clickable == null || !(adorner.ElementSet.PrimaryElement is BaseFrameworkElement))
            {
                return;
            }
            Matrix     identity   = Matrix.Identity;
            AdornerSet adornerSet = adorner.AdornerSet as AdornerSet;
            Matrix     matrix;
            Visual     visual;

            if (adornerSet != null)
            {
                matrix = adornerSet.Matrix;
                visual = (Visual)this.Artboard.AdornerLayer;
            }
            else
            {
                matrix = this.platformSurface.TransformToVisual(adorner.ElementSet.PrimaryElement.ViewObject, (IViewObject)this.HitTestRoot);
                visual = (Visual)this.ViewRootContainer;
            }
            Point clickablePoint = clickable.GetClickablePoint(matrix);
            Rect  rect           = new Rect(clickablePoint.X - 3.0, clickablePoint.Y - 3.0, 6.0, 6.0);

            this.EnsureVisibleInternal(visual, rect, scrollNow);
        }
Пример #4
0
        public void AddAdorner(IAdorner adorner)
        {
            var popup = new Popup();

            var surfaceVisual = Window.Current.Content.TransformToVisual(this);
            var point         = surfaceVisual.TransformPoint(new FoundationPoint(0, 0));

            var coreInstance = adorner.GetCoreInstance();

            adorner.PropertyChanged += (sender, args) =>
            {
                // I don't like how this is implemented. Refactor!
                if (args.PropertyName.Equals("Left"))
                {
                    popup.HorizontalOffset = adorner.Left - point.X;
                }
                if (args.PropertyName.Equals("Top"))
                {
                    popup.VerticalOffset = adorner.Top - point.Y;
                }
            };

            var uiElementAdapter = (FrameworkElementAdapter)coreInstance;

            popup.Child = (UIElement)uiElementAdapter.GetCoreInstance();

            popup.HorizontalOffset = adorner.Left - point.X;
            popup.VerticalOffset   = adorner.Top - point.Y;
            popup.IsOpen           = true;

            PopupsDictionary.Add(adorner, popup);
        }
Пример #5
0
        protected override bool OnButtonDownOverAdorner(IAdorner adorner)
        {
            this.EndAction();
            if (!this.ToolBehaviorContext.SnappingEngine.IsStarted)
            {
                this.ToolBehaviorContext.SnappingEngine.Start(this.ToolBehaviorContext, (BaseFrameworkElement)null, (IList <BaseFrameworkElement>)null);
            }
            PathPartAdorner pathPartAdorner = adorner as PathPartAdorner;

            if (pathPartAdorner == null)
            {
                return(base.OnButtonDownOverAdorner(adorner));
            }
            PenAction    action       = this.GetAction(pathPartAdorner);
            SceneElement sceneElement = (SceneElement)this.EditingElement;

            this.pathEditorTarget = pathPartAdorner.PathAdornerSet.PathEditorTarget;
            if (this.pathEditorTarget != null)
            {
                this.EditingElement = (BaseFrameworkElement)this.pathEditorTarget.EditingElement;
            }
            if (sceneElement != null)
            {
                this.ActiveSceneViewModel.DefaultView.AdornerLayer.InvalidateAdornerVisuals(sceneElement);
            }
            this.BeginAction(action, pathPartAdorner);
            return(true);
        }
Пример #6
0
        public void RemoveAdorner(IAdorner adorner)
        {
            var popup = PopupsDictionary[adorner];

            popup.IsOpen = false;
            PopupsDictionary.Remove(adorner);
        }
Пример #7
0
        public void RemoveAdorner(IAdorner adorner)
        {
            var coreInstance = (Visual)GetCoreInstance();
            var adornerLayer = AdornerLayer.GetAdornerLayer(coreInstance);

            adornerLayer.Remove((Adorner)adorner);
        }
Пример #8
0
        public IAdorner GetHitAdorner(Point hitPoint, Type[] adornerFilterTypes)
        {
            if (!this.AdornerLayer.IsVisible)
            {
                return((IAdorner)null);
            }
            IAdorner adorner = (IAdorner)null;

            if (this.AdornerLayer != null)
            {
                adorner = (IAdorner)this.GetHitAdorner((Visual)this.AdornerLayer, this.ContentArea.TransformToVisual((Visual)this.AdornerLayer).Transform(hitPoint), adornerFilterTypes);
            }
            List <AdornerSet3DContainer> adornerSet3Dcontainers = this.AdornerLayer.AdornerSet3DContainers;

            if (adorner == null && adornerSet3Dcontainers != null && adornerSet3Dcontainers.Count > 0)
            {
                foreach (AdornerSet3DContainer layer in adornerSet3Dcontainers)
                {
                    Point point = this.ContentArea.TransformToVisual((Visual)layer).Transform(hitPoint);
                    adorner = (IAdorner)this.GetHitAdorner3D(layer, point);
                    if (adorner != null)
                    {
                        break;
                    }
                }
            }
            return(adorner);
        }
Пример #9
0
        protected override bool OnButtonDownOverAdorner(IAdorner adorner)
        {
            if (this.action != null)
            {
                this.action.End();
                this.action = (PenAction)null;
            }
            if (!this.ToolBehaviorContext.SnappingEngine.IsStarted)
            {
                this.ToolBehaviorContext.SnappingEngine.Start(this.ToolBehaviorContext, (BaseFrameworkElement)null, (IList <BaseFrameworkElement>)null);
            }
            PathPartAdorner pathPartAdorner = adorner as PathPartAdorner;

            if (pathPartAdorner == null)
            {
                return(base.OnButtonDownOverAdorner(adorner));
            }
            this.action = this.GetAction(pathPartAdorner);
            if (this.action != null)
            {
                this.action.Begin(new PathEditContext(pathPartAdorner.FigureIndex, pathPartAdorner.PartIndex), this.MouseDevice);
                if (!this.affectedAdornerSets.Contains(pathPartAdorner.PathAdornerSet))
                {
                    this.affectedAdornerSets.Add(pathPartAdorner.PathAdornerSet);
                }
                this.isConstrainingAxes = this.IsShiftDown;
                this.UpdateCursor();
            }
            return(true);
        }
Пример #10
0
 public override Cursor GetCursor(IAdorner adorner)
 {
     if (this.ToolContext.Tool is GradientBrushTool && adorner is BrushTranslateAdorner)
     {
         return(ToolCursors.AddArrowCursor);
     }
     return(Cursors.SizeAll);
 }
Пример #11
0
 protected virtual bool OnHoverOverAdorner(IAdorner adorner)
 {
     if (adorner.AdornerSet.Behavior == null)
     {
         return(false);
     }
     this.Cursor = adorner.AdornerSet.GetCursor(adorner);
     return(true);
 }
Пример #12
0
        public override Cursor GetCursor(IAdorner adorner)
        {
            DesignTimeSizeAdorner designTimeSizeAdorner = adorner as DesignTimeSizeAdorner;

            if (designTimeSizeAdorner.IsEnabled)
            {
                return(ToolCursors.DesignTimeResizeCursor.GetCursor(designTimeSizeAdorner.NormalDirection));
            }
            return(Cursors.Arrow);
        }
Пример #13
0
        public override Cursor GetCursor(IAdorner adorner)
        {
            AnchorPointAdorner anchorPointAdorner = adorner as AnchorPointAdorner;

            if (anchorPointAdorner != null)
            {
                return(ToolCursors.ResizeCursor.GetCursor(anchorPointAdorner.NormalDirection));
            }
            return(ToolCursors.SubselectMoveCursor);
        }
Пример #14
0
        protected override bool OnHoverOverAdorner(IAdorner adorner)
        {
            PathPartAdorner adorner1 = adorner as PathPartAdorner;

            if (adorner1 == null)
            {
                return(base.OnHoverOverAdorner(adorner));
            }
            this.Cursor = this.GetAction(adorner1).HoverCursor;
            this.PreviewInsertionPoint = (ISceneInsertionPoint)null;
            return(true);
        }
 public override Cursor GetCursor(IAdorner adorner)
 {
     if ((this.adornerUsage & SelectionAdornerUsages.UseBoundingBox) == SelectionAdornerUsages.None)
     {
         return((Cursor)null);
     }
     if (!(this.ToolContext.Tool is SubselectionTool))
     {
         return(ToolCursors.RelocateCursor);
     }
     return(ToolCursors.SubselectMoveCursor);
 }
Пример #16
0
        protected override sealed bool OnButtonDown(Point pointerPosition)
        {
            this.adornerToolTipService.MouseOverAdorner = (IAdorner)null;
            bool     flag       = false;
            IAdorner hitAdorner = this.ActiveView.AdornerService.GetHitAdorner(this.MouseDevice);

            if (hitAdorner != null)
            {
                flag = this.OnButtonDownOverAdorner(hitAdorner);
            }
            if (!flag)
            {
                flag = this.OnButtonDownOverNonAdorner(pointerPosition);
            }
            return(flag);
        }
Пример #17
0
 public override Cursor GetCursor(IAdorner adorner)
 {
     if (adorner is PathPointAdorner)
     {
         return(ToolCursors.SubselectPointCursor);
     }
     if (adorner is PathSegmentAdorner)
     {
         return(ToolCursors.SubselectSegmentCursor);
     }
     if (adorner is PathTangentAdorner)
     {
         return(ToolCursors.SubselectTangentCursor);
     }
     return(ToolCursors.SubselectionCursor);
 }
Пример #18
0
        protected virtual bool OnButtonDownOverAdorner(IAdorner adorner)
        {
            ToolBehavior behavior = adorner.AdornerSet.Behavior;

            if (behavior == null)
            {
                return(false);
            }
            AdornedToolBehavior adornedToolBehavior = behavior as AdornedToolBehavior;

            if (adornedToolBehavior != null)
            {
                adornedToolBehavior.SetActiveAdorner(adorner);
            }
            this.PushBehavior(behavior);
            return(true);
        }
            public override Cursor GetCursor(IAdorner adorner)
            {
                LinearGradientAdorner linearGradientAdorner = (LinearGradientAdorner)adorner;

                if (linearGradientAdorner.Kind == LinearGradientAdornerKind.StartPoint || linearGradientAdorner.Kind == LinearGradientAdornerKind.EndPoint)
                {
                    return(Cursors.Hand);
                }
                Point  point     = linearGradientAdorner.StartPoint * linearGradientAdorner.AdornerSet.Matrix;
                Vector direction = linearGradientAdorner.EndPoint * linearGradientAdorner.AdornerSet.Matrix - point;

                if (linearGradientAdorner.Kind == LinearGradientAdornerKind.StartRotation)
                {
                    direction = -direction;
                }
                return(ToolCursors.RotateCursor.GetCursor(direction));
            }
Пример #20
0
        public override Cursor GetCursor(IAdorner adorner)
        {
            switch (((Adorner3D)adorner).Axis)
            {
            case Adorner3D.TransformVia.XAxis:
                return(ToolCursors.RotateXAxisCursor);

            case Adorner3D.TransformVia.YAxis:
                return(ToolCursors.RotateYAxisCursor);

            case Adorner3D.TransformVia.ZAxis:
                return(ToolCursors.RotateZAxisCursor);

            default:
                return(ToolCursors.CrosshairCursor);
            }
        }
Пример #21
0
        public bool CanClickOnAdorner(IAdorner adorner, SceneView sceneView, IViewObject rootViewObject, ref Point clickablePoint)
        {
            if (this.AdornerLayer == null || !this.AdornerLayer.IsVisible)
            {
                return(false);
            }
            bool       flag      = false;
            IClickable clickable = adorner as IClickable;

            if (clickable != null)
            {
                Matrix transformMatrix = ((AdornerSet)adorner.AdornerSet).GetTransformMatrix(rootViewObject);
                clickablePoint = clickable.GetClickablePoint(transformMatrix);
                Window mainWindow          = Application.Current.MainWindow;
                Matrix matrixFromTransform = VectorUtilities.GetMatrixFromTransform(sceneView.ComputeTransformToVisual(rootViewObject, (Visual)mainWindow));
                Point  point = clickablePoint * matrixFromTransform;
                flag = this.GetHitAdorner((Visual)mainWindow, point) == adorner;
            }
            return(flag);
        }
Пример #22
0
        public override void EnsureVisible(IAdorner adorner, bool scrollNow)
        {
            IClickable clickable = adorner as IClickable;

            if (adorner == null || clickable == null || !(adorner.ElementSet.PrimaryElement is BaseFrameworkElement))
            {
                return;
            }
            Matrix     matrix     = Matrix.Identity;
            Visual     visual     = adorner.ElementSet.PrimaryElement.ViewObject.PlatformSpecificObject as Visual;
            AdornerSet adornerSet = adorner.AdornerSet as AdornerSet;

            if (adornerSet != null)
            {
                matrix = adornerSet.Matrix;
                visual = (Visual)this.Artboard.AdornerLayer;
            }
            Point clickablePoint = clickable.GetClickablePoint(matrix);
            Rect  rect           = new Rect(clickablePoint.X - 3.0, clickablePoint.Y - 3.0, 6.0, 6.0);

            this.EnsureVisibleInternal(visual, rect, scrollNow);
        }
Пример #23
0
        public void RemoveAdorner(IAdorner adorner)
        {
            var adornerLayer = AdornerLayer.GetAdornerLayer(UIElement);

            var adorners = adornerLayer.GetAdorners(UIElement);
        }
Пример #24
0
        public void AddAdorner(IAdorner adorner)
        {
            var adornerLayer = AdornerLayer.GetAdornerLayer(UIElement);

            adornerLayer.Add((Adorner)adorner);
        }
Пример #25
0
 public void AddAdorner(IAdorner adorner)
 {
     var adornerLayer = AdornerLayer.GetAdornerLayer(UIElement);
     adornerLayer.Add((Adorner) adorner);
 }
Пример #26
0
 public override Cursor GetCursor(IAdorner adorner)
 {
     return(ToolCursors.CenterPointCursor);
 }
Пример #27
0
 public void SetActiveAdorner(IAdorner activeAdorner)
 {
     this.activeAdorner          = activeAdorner;
     this.activeAdorner.IsActive = true;
 }
Пример #28
0
 protected Shape(IAdorner adorner)
 {
     Adorner = adorner;
 }
 public void AddAdorner(IAdorner adorner)
 {
     throw new System.NotImplementedException();
 }
Пример #30
0
        public void AddAdorner(IAdorner adorner)
        {
            var popup = new Popup();

            var surfaceVisual = Window.Current.Content.TransformToVisual(this);
            var point = surfaceVisual.TransformPoint(new FoundationPoint(0, 0));

            var coreInstance = adorner.GetCoreInstance();
            adorner.PropertyChanged += (sender, args) =>
                                       {
                                          

                                           // I don't like how this is implemented. Refactor!
                                           if (args.PropertyName.Equals("Left"))
                                           {
                                               popup.HorizontalOffset = adorner.Left - point.X;
                                           }
                                           if (args.PropertyName.Equals("Top"))
                                           {
                                               popup.VerticalOffset = adorner.Top - point.Y;
                                           }
                                       };

            var uiElementAdapter = (FrameworkElementAdapter) coreInstance;

            popup.Child = (UIElement) uiElementAdapter.GetCoreInstance();

            popup.HorizontalOffset = adorner.Left - point.X;
            popup.VerticalOffset = adorner.Top - point.Y;
            popup.IsOpen = true;

            PopupsDictionary.Add(adorner, popup);
        }
Пример #31
0
 public override Cursor GetCursor(IAdorner adorner)
 {
     return(ToolCursors.SubselectMoveCursor);
 }
Пример #32
0
 public void RemoveAdorner(IAdorner adorner)
 {
     var popup = PopupsDictionary[adorner];
     popup.IsOpen = false;
     PopupsDictionary.Remove(adorner);
 }
 public override Cursor GetCursor(IAdorner adorner)
 {
     return(ToolCursors.ResizeCursor.GetCursor(((BrushAnchorPointAdorner)adorner).NormalDirection));
 }
 public override Cursor GetCursor(IAdorner adorner)
 {
     return(ToolCursors.SkewCursor.GetCursor(((BrushAnchorPointAdorner)adorner).EdgeDirection));
 }
Пример #35
0
        public void RemoveAdorner(IAdorner adorner)
        {
            var adornerLayer = AdornerLayer.GetAdornerLayer(UIElement);

            var adorners = adornerLayer.GetAdorners(UIElement);
        }
Пример #36
0
 public void RemoveAdorner(IAdorner adorner)
 {
     var coreInstance = (Visual) GetCoreInstance();
     var adornerLayer = AdornerLayer.GetAdornerLayer(coreInstance);
     adornerLayer.Remove((Adorner) adorner);
 }