import 'dart:ui' as ui; import 'package:flutter/gestures.dart'; export 'dart:ui' show Point; class TestPointer { TestPointer([ this.pointer = 1 ]); int pointer; bool isDown = false; ui.Point location; PointerInputEvent down([ui.Point newLocation = ui.Point.origin ]) { assert(!isDown); isDown = true; location = newLocation; return new PointerInputEvent( type: 'pointerdown', pointer: pointer, x: location.x, y: location.y ); } PointerInputEvent move([ui.Point newLocation = ui.Point.origin ]) { assert(isDown); ui.Offset delta = newLocation - location; location = newLocation; return new PointerInputEvent( type: 'pointermove', pointer: pointer, x: newLocation.x, y: newLocation.y, dx: delta.dx, dy: delta.dy ); } PointerInputEvent up() { assert(isDown); isDown = false; return new PointerInputEvent( type: 'pointerup', pointer: pointer, x: location.x, y: location.y ); } PointerInputEvent cancel() { assert(isDown); isDown = false; return new PointerInputEvent( type: 'pointercancel', pointer: pointer, x: location.x, y: location.y ); } }