예제 #1
0
        private void UpdateDrawable(object obj, EventArgs evt)
        {
            int  deltaX = 0;
            int  deltaY = 0;
            bool match  = false;

            if (int.TryParse(xPositionBox.Text, out deltaX))
            {
                if (int.TryParse(yPositionBox.Text, out deltaY))
                {
                    deltaX -= Drawable.Start.X;
                    deltaY -= Drawable.Start.Y;
                    if (deltaX != 0 || deltaY != 0)
                    {
                        match = true;
                        canvas.undoRedoController.AddProcess(new TranslateCommand(canvas, Drawable, deltaX, deltaY));
                    }
                }
            }
            if (Drawable.Modifier.HasFlag(PropertyModifier.SizeAdjustable))
            {
                SimpleShape current = (SimpleShape)Drawable;
                if (int.TryParse(wSizeBox.Text, out deltaX))
                {
                    if (int.TryParse(hSizeBox.Text, out deltaY))
                    {
                        deltaX  = Math.Abs(deltaX);
                        deltaY  = Math.Abs(deltaY);
                        deltaX -= current.Width;
                        deltaY -= current.Height;
                        if (deltaX != 0 || deltaY != 0)
                        {
                            match = true;
                            canvas.undoRedoController.AddProcess(new ResizeCommand(canvas, Drawable, new Point(1, 1), deltaX, deltaY));
                        }
                    }
                }
            }

            if (match)
            {
                canvas.Invalidate();
            }
            else
            {
                UpdateDrawable();
            }
        }
예제 #2
0
 public Tool(DrawingCanvas canvas)
 {
     drawingCanvas = canvas;
     MouseDown    += Tool_MouseDown;
     MouseDown    += (obj, evt) => { drawingCanvas.Invalidate(); };
 }