Move Point to Offset (#9277)
* Manually fix every use of Point.x and Point.y
Some of these were moved to dx/dy, but not all.
* Manually convert uses of the old gradient API
* Remove old reference to Point.
* Mechanical changes
I applied the following at the root of the Flutter repository:
git ls-files -z | xargs -0 sed -i 's/\bPoint[.]origin\b/Offset.zero/g'
git ls-files -z | xargs -0 sed -i 's/\bPoint[.]lerp\b/Offset.lerp/g'
git ls-files -z | xargs -0 sed -i 's/\bnew Point\b/new Offset/g'
git ls-files -z | xargs -0 sed -i 's/\bconst Point\b/const Offset/g'
git ls-files -z | xargs -0 sed -i 's/\bstatic Point /static Offset /g'
git ls-files -z | xargs -0 sed -i 's/\bfinal Point /final Offset /g'
git ls-files -z | xargs -0 sed -i 's/^\( *\)Point /\1Offset /g'
git ls-files -z | xargs -0 sed -i 's/ui[.]Point\b/ui.Offset/g'
git ls-files -z | xargs -0 sed -i 's/(Point\b/(Offset/g'
git ls-files -z | xargs -0 sed -i 's/\([[{,]\) Point\b/\1 Offset/g'
git ls-files -z | xargs -0 sed -i 's/@required Point\b/@required Offset/g'
git ls-files -z | xargs -0 sed -i 's/<Point>/<Offset>/g'
git ls-files -z | xargs -0 sed -i 's/[.]toOffset()//g'
git ls-files -z | xargs -0 sed -i 's/[.]toPoint()//g'
git ls-files -z | xargs -0 sed -i 's/\bshow Point, /show /g'
git ls-files -z | xargs -0 sed -i 's/\bshow Point;/show Offset;/g'
* Mechanical changes - dartdocs
I applied the following at the root of the Flutter repository:
git ls-files -z | xargs -0 sed -i 's/\ba \[Point\]/an [Offset]/g'
git ls-files -z | xargs -0 sed -i 's/\[Point\]/[Offset]/g'
* Further improvements and a test
* Fix minor errors from rebasing...
* Roll engine
diff --git a/dev/manual_tests/drag_and_drop.dart b/dev/manual_tests/drag_and_drop.dart
index 496e5f4..8bb9950 100644
--- a/dev/manual_tests/drag_and_drop.dart
+++ b/dev/manual_tests/drag_and_drop.dart
@@ -163,7 +163,7 @@
..style = PaintingStyle.stroke
..strokeWidth = radius / 10.0;
final Path path = new Path();
- final Rect box = Point.origin & size;
+ final Rect box = Offset.zero & size;
for (double theta = 0.0; theta < math.PI * 2.0; theta += deltaTheta)
path.addArc(box, theta + startOffset, segmentArc);
canvas.drawPath(path, paint);
diff --git a/dev/manual_tests/material_arc.dart b/dev/manual_tests/material_arc.dart
index 9e815b5..65d915a 100644
--- a/dev/manual_tests/material_arc.dart
+++ b/dev/manual_tests/material_arc.dart
@@ -54,7 +54,7 @@
final MaterialPointArcTween arc;
Animation<double> _repaint;
- void drawPoint(Canvas canvas, Point point, Color color) {
+ void drawPoint(Canvas canvas, Offset point, Color color) {
final Paint paint = new Paint()
..color = color.withOpacity(0.25)
..style = PaintingStyle.fill;
@@ -93,7 +93,7 @@
}
@override
- bool hitTest(Point position) {
+ bool hitTest(Offset position) {
return (arc.begin - position).distanceSquared < _kTargetSlop
|| (arc.end - position).distanceSquared < _kTargetSlop;
}
@@ -117,8 +117,8 @@
CurvedAnimation _animation;
_DragTarget _dragTarget;
Size _screenSize;
- Point _begin;
- Point _end;
+ Offset _begin;
+ Offset _end;
@override
void initState() {
@@ -132,7 +132,7 @@
super.dispose();
}
- Drag _handleOnStart(Point position) {
+ Drag _handleOnStart(Offset position) {
// TODO(hansmuller): allow the user to drag both points at the same time.
if (_dragTarget != null)
return new _IgnoreDrag();
@@ -181,8 +181,8 @@
final Size screenSize = MediaQuery.of(context).size;
if (_screenSize == null || _screenSize != screenSize) {
_screenSize = screenSize;
- _begin = new Point(screenSize.width * 0.5, screenSize.height * 0.2);
- _end = new Point(screenSize.width * 0.1, screenSize.height * 0.4);
+ _begin = new Offset(screenSize.width * 0.5, screenSize.height * 0.2);
+ _end = new Offset(screenSize.width * 0.1, screenSize.height * 0.4);
}
final MaterialPointArcTween arc = new MaterialPointArcTween(begin: _begin, end: _end);
@@ -229,7 +229,7 @@
final MaterialRectArcTween arc;
Animation<double> _repaint;
- void drawPoint(Canvas canvas, Point p, Color color) {
+ void drawPoint(Canvas canvas, Offset p, Color color) {
final Paint paint = new Paint()
..color = color.withOpacity(0.25)
..style = PaintingStyle.fill;
@@ -258,7 +258,7 @@
}
@override
- bool hitTest(Point position) {
+ bool hitTest(Offset position) {
return (arc.begin.center - position).distanceSquared < _kTargetSlop
|| (arc.end.center - position).distanceSquared < _kTargetSlop;
}
@@ -297,7 +297,7 @@
super.dispose();
}
- Drag _handleOnStart(Point position) {
+ Drag _handleOnStart(Offset position) {
// TODO(hansmuller): allow the user to drag both points at the same time.
if (_dragTarget != null)
return new _IgnoreDrag();
diff --git a/dev/manual_tests/overlay_geometry.dart b/dev/manual_tests/overlay_geometry.dart
index 2b9b194..174a92b 100644
--- a/dev/manual_tests/overlay_geometry.dart
+++ b/dev/manual_tests/overlay_geometry.dart
@@ -33,19 +33,19 @@
void paint(Canvas canvas, _) {
final Paint paint = new Paint()..color = const Color(0x8000FF00);
final double r = size / 2.0;
- canvas.drawCircle(new Point(r, r), r, paint);
+ canvas.drawCircle(new Offset(r, r), r, paint);
paint
..color = const Color(0xFFFFFFFF)
..style = PaintingStyle.stroke
..strokeWidth = 1.0;
if (type == MarkerType.topLeft) {
- canvas.drawLine(new Point(r, r), new Point(r + r - 1.0, r), paint);
- canvas.drawLine(new Point(r, r), new Point(r, r + r - 1.0), paint);
+ canvas.drawLine(new Offset(r, r), new Offset(r + r - 1.0, r), paint);
+ canvas.drawLine(new Offset(r, r), new Offset(r, r + r - 1.0), paint);
}
if (type == MarkerType.bottomRight) {
- canvas.drawLine(new Point(r, r), new Point(1.0, r), paint);
- canvas.drawLine(new Point(r, r), new Point(r, 1.0), paint);
+ canvas.drawLine(new Offset(r, r), new Offset(1.0, r), paint);
+ canvas.drawLine(new Offset(r, r), new Offset(r, 1.0), paint);
}
}
@@ -64,15 +64,15 @@
this.size: 40.0,
}) : super(key: key);
- final Point position;
+ final Offset position;
final double size;
final MarkerType type;
@override
Widget build(BuildContext context) {
return new Positioned(
- left: position.x - size / 2.0,
- top: position.y - size / 2.0,
+ left: position.dx - size / 2.0,
+ top: position.dy - size / 2.0,
width: size,
height: size,
child: new IgnorePointer(
@@ -92,7 +92,7 @@
OverlayGeometryAppState createState() => new OverlayGeometryAppState();
}
-typedef void CardTapCallback(GlobalKey targetKey, Point globalPosition);
+typedef void CardTapCallback(GlobalKey targetKey, Offset globalPosition);
class CardBuilder extends SliverChildDelegate {
CardBuilder({ this.cardModels, this.onTapUp });
@@ -134,7 +134,7 @@
class OverlayGeometryAppState extends State<OverlayGeometryApp> {
List<CardModel> cardModels;
- Map<MarkerType, Point> markers = <MarkerType, Point>{};
+ Map<MarkerType, Offset> markers = <MarkerType, Offset>{};
double markersScrollOffset = 0.0;
@override
@@ -157,21 +157,21 @@
final double dy = markersScrollOffset - notification.metrics.extentBefore;
markersScrollOffset = notification.metrics.extentBefore;
for (MarkerType type in markers.keys) {
- final Point oldPosition = markers[type];
- markers[type] = new Point(oldPosition.x, oldPosition.y + dy);
+ final Offset oldPosition = markers[type];
+ markers[type] = oldPosition.translate(0.0, dy);
}
});
}
return false;
}
- void handleTapUp(GlobalKey target, Point globalPosition) {
+ void handleTapUp(GlobalKey target, Offset globalPosition) {
setState(() {
markers[MarkerType.touch] = globalPosition;
final RenderBox box = target.currentContext.findRenderObject();
- markers[MarkerType.topLeft] = box.localToGlobal(const Point(0.0, 0.0));
+ markers[MarkerType.topLeft] = box.localToGlobal(const Offset(0.0, 0.0));
final Size size = box.size;
- markers[MarkerType.bottomRight] = box.localToGlobal(new Point(size.width, size.height));
+ markers[MarkerType.bottomRight] = box.localToGlobal(new Offset(size.width, size.height));
final ScrollableState scrollable = Scrollable.of(target.currentContext);
markersScrollOffset = scrollable.position.pixels;
});