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); }
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); }
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); }