public void TestAxis() { Point c = new Point (10, 10); Ellipse e = new Ellipse (c, 3, 2); Assert.AreEqual (new Point (13, 10), e.Right); Assert.AreEqual (new Point (7, 10), e.Left); Assert.AreEqual (new Point (10, 12), e.Top); Assert.AreEqual (new Point (10, 8), e.Bottom); }
public void TestMove() { Point c = new Point (10, 10); Ellipse e = new Ellipse (c, 3, 2); /* Move axis */ Point p = new Point (8, 9); e.Move (SelectionPosition.Left, p, null); Assert.AreEqual (10, e.Center.X); Assert.AreEqual (10, e.Center.Y); Assert.AreEqual (2, e.AxisX); Assert.AreEqual (2, e.AxisY); p = new Point (15, 5); e.Move (SelectionPosition.Left, p, null); Assert.AreEqual (10, e.Center.X); Assert.AreEqual (10, e.Center.Y); Assert.AreEqual (5, e.AxisX); Assert.AreEqual (2, e.AxisY); p = new Point (15, 5); e.Move (SelectionPosition.Bottom, p, null); Assert.AreEqual (10, e.Center.X); Assert.AreEqual (10, e.Center.Y); Assert.AreEqual (5, e.AxisX); Assert.AreEqual (5, e.AxisY); p = new Point (15, 12); e.Move (SelectionPosition.Top, p, null); Assert.AreEqual (10, e.Center.X); Assert.AreEqual (10, e.Center.Y); Assert.AreEqual (5, e.AxisX); Assert.AreEqual (2, e.AxisY); /* Move all */ p = new Point (15, 12); e.Move (SelectionPosition.All, p, new Point (10, 10)); Assert.AreEqual (15, e.Center.X); Assert.AreEqual (12, e.Center.Y); Assert.AreEqual (5, e.AxisX); Assert.AreEqual (2, e.AxisY); }
public void TestSerialization() { Point c = new Point (10, 10); Ellipse e = new Ellipse (c, 3, 2); Utils.CheckSerialization (e); Ellipse ne = Utils.SerializeDeserialize (e); Assert.AreEqual (ne.Center, e.Center); Assert.AreEqual (ne.AxisX, e.AxisX); Assert.AreEqual (ne.AxisY, e.AxisY); }
protected override void StartMove(Selection sel) { Drawable drawable = null; SelectionPosition pos = SelectionPosition.BottomRight; bool resize = true, copycolor = true, sele = true; if (Tool == DrawTool.Selection) { if (Selections.Count == 0 && currentZoom != 1) { widget.SetCursorForTool (DrawTool.Move); inZooming = true; } return; } if (sel != null) { ClearSelection (); } switch (Tool) { case DrawTool.Line: drawable = new Line (MoveStart, new Point (MoveStart.X + 1, MoveStart.Y + 1), LineType, LineStyle); drawable.FillColor = Color; pos = SelectionPosition.LineStop; break; case DrawTool.Cross: drawable = new Cross (MoveStart, new Point (MoveStart.X + 1, MoveStart.Y + 1), LineStyle); break; case DrawTool.Ellipse: drawable = new Ellipse (MoveStart, 2, 2); break; case DrawTool.Rectangle: drawable = new Rectangle (MoveStart, 2, 2); break; case DrawTool.CircleArea: drawable = new Ellipse (MoveStart, 2, 2); drawable.FillColor = Color.Copy (); drawable.FillColor.A = byte.MaxValue / 2; break; case DrawTool.RectangleArea: drawable = new Rectangle (MoveStart, 2, 2); drawable.FillColor = Color.Copy (); drawable.FillColor.A = byte.MaxValue / 2; break; case DrawTool.Counter: drawable = new Counter (MoveStart, 3 * LineWidth, 0); drawable.FillColor = Color.Copy (); (drawable as Counter).TextColor = Color.Grey2; resize = false; break; case DrawTool.Text: case DrawTool.Player: { int width, heigth; Text text = new Text (MoveStart, 1, 1, ""); if (ConfigureObjectEvent != null) { ConfigureObjectEvent (text, Tool); } if (text.Value == null) { return; } Config.DrawingToolkit.MeasureText (text.Value, out width, out heigth, Config.Style.Font, FontSize, FontWeight.Normal); text.Update (new Point (MoveStart.X - width / 2, MoveStart.Y - heigth / 2), width, heigth); text.TextColor = TextColor.Copy (); text.FillColor = text.StrokeColor = TextBackgroundColor.Copy (); text.TextSize = FontSize; resize = copycolor = sele = false; drawable = text; break; } case DrawTool.Pen: case DrawTool.Eraser: handdrawing = true; break; case DrawTool.Zoom: { double newZoom = currentZoom; if (modifier == ButtonModifier.Shift) { newZoom -= 0.1; } else { newZoom += 0.1; } newZoom = Math.Max (newZoom, MinZoom); newZoom = Math.Min (newZoom, MaxZoom); Zoom (newZoom, MoveStart); break; } } if (drawable != null) { if (copycolor) { drawable.StrokeColor = Color.Copy (); } drawable.LineWidth = LineWidth; drawable.Style = LineStyle; var selo = Add (drawable); drawing.Drawables.Add (drawable); if (Tool == DrawTool.Counter) { UpdateCounters (); } if (sele) { if (resize) { UpdateSelection (new Selection (selo, pos, 5)); } else { UpdateSelection (new Selection (selo, SelectionPosition.All, 5)); } inObjectCreation = true; } widget.ReDraw (); } }