예제 #1
0
        public override void Execute()
        {
            oldLocation = shape.Position;
            Point p = GetNewPosition();

            shape.OffsetPosition(new Point(
                                     (p.X),
                                     (p.Y)));
        }
예제 #2
0
        //TODO make size not negative ever
        public override void Execute()
        {
            oldSize     = shape.GetSize();
            oldPosition = shape.GetPosition();
            switch (resizeMode)
            {
            case ResizeMode.N:
                shape.OffsetPosition(new Point(0, sizeDifference.Height));
                shape.IncreaseSize(0, sizeDifference.Height);
                break;

            case ResizeMode.S:
                shape.IncreaseSize(0, -sizeDifference.Height);
                break;

            case ResizeMode.E:
                shape.IncreaseSize(-sizeDifference.Width, 0);
                break;

            case ResizeMode.W:
                shape.OffsetPosition(new Point(sizeDifference.Width, 0));
                shape.IncreaseSize(sizeDifference.Width, 0);
                break;

            case ResizeMode.NW:
                shape.OffsetPosition(new Point(sizeDifference.Width, sizeDifference.Height));
                shape.IncreaseSize(sizeDifference.Width, sizeDifference.Height);
                break;

            case ResizeMode.NE:
                shape.OffsetPosition(new Point(0, sizeDifference.Height));
                shape.IncreaseSize(-sizeDifference.Width, sizeDifference.Height);
                break;

            case ResizeMode.SW:
                shape.OffsetPosition(new Point(sizeDifference.Width, 0));
                shape.IncreaseSize(sizeDifference.Width, -sizeDifference.Height);
                break;

            case ResizeMode.SE:
                shape.IncreaseSize(-sizeDifference.Width, -sizeDifference.Height);
                break;

            default:
                throw new NotImplementedException();
            }
        }