public void TestOnTouchDown() { var view = new Mock <IEntry>(); var drawable = new EntryDrawable(view.Object); var exception = Record.Exception(() => { var point = new GPoint(10, 10); drawable.OnTouchDown(point); }); Assert.Null(exception); }
public void TestOnTouchUpMoveDown() { var view = new Mock <IStepper>(); var drawable = new StepperDrawable(view.Object); var exception = Record.Exception(() => { var point = new GPoint(10, 10); drawable.OnTouchDown(point); drawable.OnTouchMove(point); drawable.OnTouchUp(point); }); Assert.Null(exception); }
public void TestOnTouchUpDown(float x, float y, float w, float h, float pointX, float pointY) { var rect = new RectF(x, y, w, h); var point = new PointF(pointX, pointY); var drawable = new RippleEffectDrawable { ClipRectangle = rect, TouchPoint = point }; var exception = Record.Exception(() => { var point = new GPoint(10, 10); drawable.OnTouchDown(point); drawable.OnTouchUp(point); }); Assert.Null(exception); }
public void TestOnTouchUpMoveDown(float x, float y, float w, float h, float pointX, float pointY) { var view = new Mock <ISlider>(); var drawable = new SliderDrawable(view.Object); var rect = new RectF(x, y, w, h); drawable.ThumbRect = rect; Assert.Equal(rect, drawable.ThumbRect); var exception = Record.Exception(() => { var point = new GPoint(pointX, pointY); drawable.OnTouchDown(point); drawable.OnTouchMove(point); drawable.OnTouchUp(point); }); Assert.Null(exception); }
static SKPath MakePath(PathGeometry pathGeometry) { var path = new SKPath(); path.FillType = pathGeometry.FillRule == FillRule.Nonzero ? SKPathFillType.Winding : SKPathFillType.EvenOdd; foreach (PathFigure pathFigure in pathGeometry.Figures) { path.MoveTo( Forms.ConvertToScaledPixel(pathFigure.StartPoint.X), Forms.ConvertToScaledPixel(pathFigure.StartPoint.Y)); Point lastPoint = pathFigure.StartPoint; foreach (PathSegment pathSegment in pathFigure.Segments) { // LineSegment if (pathSegment is LineSegment) { LineSegment lineSegment = pathSegment as LineSegment; path.LineTo( Forms.ConvertToScaledPixel(lineSegment.Point.X), Forms.ConvertToScaledPixel(lineSegment.Point.Y)); lastPoint = lineSegment.Point; } // PolylineSegment else if (pathSegment is PolyLineSegment) { PolyLineSegment polylineSegment = pathSegment as PolyLineSegment; PointCollection points = polylineSegment.Points; for (int i = 0; i < points.Count; i++) { path.LineTo( Forms.ConvertToScaledPixel(points[i].X), Forms.ConvertToScaledPixel(points[i].Y)); } lastPoint = points[points.Count - 1]; } // BezierSegment else if (pathSegment is BezierSegment) { BezierSegment bezierSegment = pathSegment as BezierSegment; path.CubicTo( Forms.ConvertToScaledPixel(bezierSegment.Point1.X), Forms.ConvertToScaledPixel(bezierSegment.Point1.Y), Forms.ConvertToScaledPixel(bezierSegment.Point2.X), Forms.ConvertToScaledPixel(bezierSegment.Point2.Y), Forms.ConvertToScaledPixel(bezierSegment.Point3.X), Forms.ConvertToScaledPixel(bezierSegment.Point3.Y)); lastPoint = bezierSegment.Point3; } // PolyBezierSegment else if (pathSegment is PolyBezierSegment) { PolyBezierSegment polyBezierSegment = pathSegment as PolyBezierSegment; PointCollection points = polyBezierSegment.Points; for (int i = 0; i < points.Count; i += 3) { path.CubicTo( Forms.ConvertToScaledPixel(points[i + 0].X), Forms.ConvertToScaledPixel(points[i + 0].Y), Forms.ConvertToScaledPixel(points[i + 1].X), Forms.ConvertToScaledPixel(points[i + 1].Y), Forms.ConvertToScaledPixel(points[i + 2].X), Forms.ConvertToScaledPixel(points[i + 2].Y)); } lastPoint = points[points.Count - 1]; } // QuadraticBezierSegment else if (pathSegment is QuadraticBezierSegment) { QuadraticBezierSegment bezierSegment = pathSegment as QuadraticBezierSegment; path.QuadTo( Forms.ConvertToScaledPixel(bezierSegment.Point1.X), Forms.ConvertToScaledPixel(bezierSegment.Point1.Y), Forms.ConvertToScaledPixel(bezierSegment.Point2.X), Forms.ConvertToScaledPixel(bezierSegment.Point2.Y)); lastPoint = bezierSegment.Point2; } // PolyQuadraticBezierSegment else if (pathSegment is PolyQuadraticBezierSegment) { PolyQuadraticBezierSegment polyBezierSegment = pathSegment as PolyQuadraticBezierSegment; PointCollection points = polyBezierSegment.Points; for (int i = 0; i < points.Count; i += 2) { path.QuadTo( Forms.ConvertToScaledPixel(points[i + 0].X), Forms.ConvertToScaledPixel(points[i + 0].Y), Forms.ConvertToScaledPixel(points[i + 1].X), Forms.ConvertToScaledPixel(points[i + 1].Y)); } lastPoint = points[points.Count - 1]; } // ArcSegment else if (pathSegment is ArcSegment) { ArcSegment arcSegment = pathSegment as ArcSegment; List <Point> points = new List <Point>(); GeometryHelper.FlattenArc(points, lastPoint, arcSegment.Point, arcSegment.Size.Width, arcSegment.Size.Height, arcSegment.RotationAngle, arcSegment.IsLargeArc, arcSegment.SweepDirection == SweepDirection.CounterClockwise, 1); for (int i = 0; i < points.Count; i++) { path.LineTo( Forms.ConvertToScaledPixel(points[i].X), Forms.ConvertToScaledPixel(points[i].Y)); } if (points.Count > 0) { lastPoint = points[points.Count - 1]; } } } if (pathFigure.IsClosed) { path.Close(); } } return(path); }