public override AdjustPositionResult AdjustPositionByDelta(Figure figure, float dx, float dy, AdjustPositionResult adjustmentResult)
 {
     return(adjustmentResult);
 }
        public override AdjustPositionResult AdjustPositionByDelta(Figure figure, float dx, float dy, AdjustPositionResult adjustmentResult)
        {
            var baseResult = base.AdjustPositionByDelta(figure, dx, dy, adjustmentResult);

            switch (ResizeDirection)
            {
            case ResizeDirections.TopLeft:
                _slave.Resize(dy, 0, 0, dx);
                break;

            case ResizeDirections.Top:
                _slave.Resize(dy, 0, 0, 0);
                break;

            case ResizeDirections.TopRight:
                _slave.Resize(dy, dx, 0, 0);
                break;

            case ResizeDirections.Right:
                _slave.Resize(0, dx, 0, 0);
                break;

            case ResizeDirections.BottomRight:
                _slave.Resize(0, dx, dy, 0);
                break;

            case ResizeDirections.Bottom:
                _slave.Resize(0, 0, dy, 0);
                break;

            case ResizeDirections.BottomLeft:
                _slave.Resize(0, 0, dy, dx);
                break;

            case ResizeDirections.Left:
                _slave.Resize(0, 0, 0, dx);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            return(baseResult);
        }
        public override AdjustPositionResult AdjustPositionByDelta(Figure master, float dx, float dy, AdjustPositionResult adjustmentResult)
        {
            _slaves.ForEach(f => f.ForceTranslate(adjustmentResult.Dx, adjustmentResult.Dy));

            return(adjustmentResult);
        }
示例#4
0
        public override AdjustPositionResult AdjustPositionByDelta(Figure figure, float dx, float dy, AdjustPositionResult adjustmentResult)
        {
            var bb = figure.GetBoundingBoxIncludeLinked();

            bb.X += dx;
            bb.Y += dy;

            if (Region.Contains(bb))
            {
                return(adjustmentResult);
            }

            if (bb.Top > Region.Top)
            {
                adjustmentResult.Dy = 0;
                adjustmentResult.LockDy();
            }
            if (bb.Left < Region.Left)
            {
                adjustmentResult.Dx = 0;
                adjustmentResult.LockDx();
            }
            if (bb.Right > Region.Right)
            {
                adjustmentResult.Dx = 0;
                adjustmentResult.LockDx();
            }
            if (bb.Bottom < Region.Bottom)
            {
                adjustmentResult.Dy = 0;
                adjustmentResult.LockDy();
            }

            return(adjustmentResult);
        }
示例#5
0
        public override AdjustPositionResult AdjustPositionByDelta(Figure figure, float dx, float dy, AdjustPositionResult adjustmentResult)
        {
            switch (Direction)
            {
            case DragDropDirections.All:
                adjustmentResult.Dx = dx;
                adjustmentResult.Dy = dy;
                break;

            case DragDropDirections.Horizontal:
                adjustmentResult.Dx = dx;
                adjustmentResult.Dy = 0;
                adjustmentResult.LockDy();
                break;

            case DragDropDirections.Vertical:
                adjustmentResult.Dx = 0;
                adjustmentResult.Dy = dy;
                adjustmentResult.LockDx();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            return(adjustmentResult);
        }