Commit 9f74a178 authored by Kris Giesing's avatar Kris Giesing

Address comments

parent 0c229008
import 'dart:ui' as ui; import 'dart:ui' as ui;
/// Dart-layer version of ui.Event /// Base class for input events.
class InputEvent { class InputEvent {
InputEvent({ this.type }) : timeStamp = 0.0; const InputEvent({ this.type, this.timeStamp: 0.0 });
factory InputEvent.fromSkyEvent(ui.Event event) { factory InputEvent.fromUiEvent(ui.Event event) {
if (event is ui.PointerEvent) if (event is ui.PointerEvent)
return new PointerInputEvent.fromUiEvent(event); return new PointerInputEvent.fromUiEvent(event);
// Default event // Default event
InputEvent result = new InputEvent(); return new InputEvent(
result.type = event.type; type: event.type,
result.timeStamp = event.timeStamp; timeStamp: event.timeStamp
);
} }
String type; final String type;
double timeStamp; final double timeStamp;
} }
/// Dart-layer version of ui.PointerInputEvent /// Input event
class PointerInputEvent extends InputEvent { class PointerInputEvent extends InputEvent {
// Map actual input pointer value to a unique value // Map actual input pointer value to a unique value
...@@ -27,8 +29,9 @@ class PointerInputEvent extends InputEvent { ...@@ -27,8 +29,9 @@ class PointerInputEvent extends InputEvent {
static Map<int, int> _pointerMap = new Map<int, int>(); static Map<int, int> _pointerMap = new Map<int, int>();
static int _pointerCount = 0; static int _pointerCount = 0;
PointerInputEvent({ const PointerInputEvent({
String type, String type,
double timeStamp: 0.0,
this.pointer, this.pointer,
this.kind, this.kind,
this.x, this.x,
...@@ -51,64 +54,63 @@ class PointerInputEvent extends InputEvent { ...@@ -51,64 +54,63 @@ class PointerInputEvent extends InputEvent {
this.radiusMax, this.radiusMax,
this.orientation, this.orientation,
this.tilt this.tilt
}) : super(type: type); }) : super(type: type, timeStamp: timeStamp);
PointerInputEvent.fromUiEvent(ui.PointerEvent event) {
type = event.type;
timeStamp = event.timeStamp;
if (type == 'pointerdown') { factory PointerInputEvent.fromUiEvent(ui.PointerEvent event) {
pointer = _pointerCount; PointerInputEvent result = new PointerInputEvent(
type: event.type,
timeStamp: event.timeStamp,
pointer: (event.type == 'pointerDown') ? _pointerCount : _pointerMap[event.pointer],
kind: event.kind,
x: event.x,
y: event.y,
dx: event.dx,
dy: event.dy,
buttons: event.buttons,
down: event.down,
primary: event.primary,
obscured: event.obscured,
pressure: event.pressure,
pressureMin: event.pressureMin,
pressureMax: event.pressureMax,
distance: event.distance,
distanceMin: event.distanceMin,
distanceMax: event.distanceMax,
radiusMajor: event.radiusMajor,
radiusMinor: event.radiusMinor,
radiusMin: event.radiusMin,
radiusMax: event.radiusMax,
orientation: event.orientation,
tilt: event.tilt
);
if (event.type == 'pointerdown') {
_pointerMap[event.pointer] = _pointerCount; _pointerMap[event.pointer] = _pointerCount;
_pointerCount++; _pointerCount++;
} else {
pointer = _pointerMap[event.pointer];
} }
return result;
kind = event.kind;
x = event.x;
y = event.y;
dx = event.dx;
dy = event.dy;
buttons = event.buttons;
down = event.down;
primary = event.primary;
obscured = event.obscured;
pressure = event.pressure;
pressureMin = event.pressureMin;
pressureMax = event.pressureMax;
distance = event.distance;
distanceMin = event.distanceMin;
distanceMax = event.distanceMax;
radiusMajor = event.radiusMajor;
radiusMinor = event.radiusMinor;
radiusMin = event.radiusMin;
radiusMax = event.radiusMax;
orientation = event.orientation;
tilt = event.tilt;
} }
int pointer; final int pointer;
String kind; final String kind;
double x; final double x;
double y; final double y;
double dx; final double dx;
double dy; final double dy;
int buttons; final int buttons;
bool down; final bool down;
bool primary; final bool primary;
bool obscured; final bool obscured;
double pressure; final double pressure;
double pressureMin; final double pressureMin;
double pressureMax; final double pressureMax;
double distance; final double distance;
double distanceMin; final double distanceMin;
double distanceMax; final double distanceMax;
double radiusMajor; final double radiusMajor;
double radiusMinor; final double radiusMinor;
double radiusMin; final double radiusMin;
double radiusMax; final double radiusMax;
double orientation; final double orientation;
double tilt; final double tilt;
} }
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
import 'package:flutter/src/gestures/events.dart'; import 'events.dart';
/// A callback that receives a [PointerInputEvent] /// A callback that receives a [PointerInputEvent]
typedef void PointerRoute(PointerInputEvent event); typedef void PointerRoute(PointerInputEvent event);
......
...@@ -95,7 +95,7 @@ class FlutterBinding extends HitTestTarget { ...@@ -95,7 +95,7 @@ class FlutterBinding extends HitTestTarget {
bool removeEventListener(EventListener listener) => _eventListeners.remove(listener); bool removeEventListener(EventListener listener) => _eventListeners.remove(listener);
void _handleEvent(ui.Event event) { void _handleEvent(ui.Event event) {
InputEvent ourEvent = new InputEvent.fromSkyEvent(event); InputEvent ourEvent = new InputEvent.fromUiEvent(event);
if (ourEvent is PointerInputEvent) { if (ourEvent is PointerInputEvent) {
_handlePointerInputEvent(ourEvent); _handlePointerInputEvent(ourEvent);
} else { } else {
......
...@@ -36,7 +36,7 @@ void main() { ...@@ -36,7 +36,7 @@ void main() {
TestPointer pointer1 = new TestPointer(1); TestPointer pointer1 = new TestPointer(1);
PointerInputEvent down = pointer1.down(new ui.Point(10.0, 10.0)); PointerInputEvent down = pointer1.down(new Point(10.0, 10.0));
scale.addPointer(down); scale.addPointer(down);
tap.addPointer(down); tap.addPointer(down);
...@@ -55,7 +55,7 @@ void main() { ...@@ -55,7 +55,7 @@ void main() {
expect(didEndScale, isFalse); expect(didEndScale, isFalse);
expect(didTap, isFalse); expect(didTap, isFalse);
router.route(pointer1.move(new ui.Point(20.0, 30.0))); router.route(pointer1.move(new Point(20.0, 30.0)));
expect(didStartScale, isTrue); expect(didStartScale, isTrue);
didStartScale = false; didStartScale = false;
expect(updatedFocalPoint, new ui.Point(20.0, 30.0)); expect(updatedFocalPoint, new ui.Point(20.0, 30.0));
...@@ -67,7 +67,7 @@ void main() { ...@@ -67,7 +67,7 @@ void main() {
// Two-finger scaling // Two-finger scaling
TestPointer pointer2 = new TestPointer(2); TestPointer pointer2 = new TestPointer(2);
PointerInputEvent down2 = pointer2.down(new ui.Point(10.0, 20.0)); PointerInputEvent down2 = pointer2.down(new Point(10.0, 20.0));
scale.addPointer(down2); scale.addPointer(down2);
tap.addPointer(down2); tap.addPointer(down2);
GestureArena.instance.close(2); GestureArena.instance.close(2);
...@@ -80,7 +80,7 @@ void main() { ...@@ -80,7 +80,7 @@ void main() {
expect(didStartScale, isFalse); expect(didStartScale, isFalse);
// Zoom in // Zoom in
router.route(pointer2.move(new ui.Point(0.0, 10.0))); router.route(pointer2.move(new Point(0.0, 10.0)));
expect(didStartScale, isTrue); expect(didStartScale, isTrue);
didStartScale = false; didStartScale = false;
expect(updatedFocalPoint, new ui.Point(10.0, 20.0)); expect(updatedFocalPoint, new ui.Point(10.0, 20.0));
...@@ -91,7 +91,7 @@ void main() { ...@@ -91,7 +91,7 @@ void main() {
expect(didTap, isFalse); expect(didTap, isFalse);
// Zoom out // Zoom out
router.route(pointer2.move(new ui.Point(15.0, 25.0))); router.route(pointer2.move(new Point(15.0, 25.0)));
expect(updatedFocalPoint, new ui.Point(17.5, 27.5)); expect(updatedFocalPoint, new ui.Point(17.5, 27.5));
updatedFocalPoint = null; updatedFocalPoint = null;
expect(updatedScale, 0.5); expect(updatedScale, 0.5);
...@@ -100,7 +100,7 @@ void main() { ...@@ -100,7 +100,7 @@ void main() {
// Three-finger scaling // Three-finger scaling
TestPointer pointer3 = new TestPointer(3); TestPointer pointer3 = new TestPointer(3);
PointerInputEvent down3 = pointer3.down(new ui.Point(25.0, 35.0)); PointerInputEvent down3 = pointer3.down(new Point(25.0, 35.0));
scale.addPointer(down3); scale.addPointer(down3);
tap.addPointer(down3); tap.addPointer(down3);
GestureArena.instance.close(3); GestureArena.instance.close(3);
...@@ -113,7 +113,7 @@ void main() { ...@@ -113,7 +113,7 @@ void main() {
expect(didStartScale, isFalse); expect(didStartScale, isFalse);
// Zoom in // Zoom in
router.route(pointer3.move(new ui.Point(55.0, 65.0))); router.route(pointer3.move(new Point(55.0, 65.0)));
expect(didStartScale, isTrue); expect(didStartScale, isTrue);
didStartScale = false; didStartScale = false;
expect(updatedFocalPoint, new ui.Point(30.0, 40.0)); expect(updatedFocalPoint, new ui.Point(30.0, 40.0));
...@@ -124,9 +124,9 @@ void main() { ...@@ -124,9 +124,9 @@ void main() {
expect(didTap, isFalse); expect(didTap, isFalse);
// Return to original positions but with different fingers // Return to original positions but with different fingers
router.route(pointer1.move(new ui.Point(25.0, 35.0))); router.route(pointer1.move(new Point(25.0, 35.0)));
router.route(pointer2.move(new ui.Point(20.0, 30.0))); router.route(pointer2.move(new Point(20.0, 30.0)));
router.route(pointer3.move(new ui.Point(15.0, 25.0))); router.route(pointer3.move(new Point(15.0, 25.0)));
expect(didStartScale, isFalse); expect(didStartScale, isFalse);
expect(updatedFocalPoint, new ui.Point(20.0, 30.0)); expect(updatedFocalPoint, new ui.Point(20.0, 30.0));
updatedFocalPoint = null; updatedFocalPoint = null;
...@@ -144,7 +144,7 @@ void main() { ...@@ -144,7 +144,7 @@ void main() {
expect(didTap, isFalse); expect(didTap, isFalse);
// Continue scaling with two fingers // Continue scaling with two fingers
router.route(pointer3.move(new ui.Point(10.0, 20.0))); router.route(pointer3.move(new Point(10.0, 20.0)));
expect(didStartScale, isTrue); expect(didStartScale, isTrue);
didStartScale = false; didStartScale = false;
expect(updatedFocalPoint, new ui.Point(15.0, 25.0)); expect(updatedFocalPoint, new ui.Point(15.0, 25.0));
...@@ -161,7 +161,7 @@ void main() { ...@@ -161,7 +161,7 @@ void main() {
expect(didTap, isFalse); expect(didTap, isFalse);
// Continue panning with one finger // Continue panning with one finger
router.route(pointer3.move(new ui.Point(0.0, 0.0))); router.route(pointer3.move(new Point(0.0, 0.0)));
expect(didStartScale, isTrue); expect(didStartScale, isTrue);
didStartScale = false; didStartScale = false;
expect(updatedFocalPoint, new ui.Point(0.0, 0.0)); expect(updatedFocalPoint, new ui.Point(0.0, 0.0));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment