blob: 230b0402ee44d4661eca999ea0403905b7982b62 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of ui;
enum PointerChange {
cancel,
add,
remove,
hover,
down,
move,
up,
}
enum PointerDeviceKind {
touch,
mouse,
stylus,
invertedStylus,
unknown
}
enum PointerSignalKind {
none,
scroll,
unknown
}
class PointerData {
const PointerData({
this.embedderId = 0,
this.timeStamp = Duration.zero,
this.change = PointerChange.cancel,
this.kind = PointerDeviceKind.touch,
this.signalKind,
this.device = 0,
this.pointerIdentifier = 0,
this.physicalX = 0.0,
this.physicalY = 0.0,
this.physicalDeltaX = 0.0,
this.physicalDeltaY = 0.0,
this.buttons = 0,
this.obscured = false,
this.synthesized = false,
this.pressure = 0.0,
this.pressureMin = 0.0,
this.pressureMax = 0.0,
this.distance = 0.0,
this.distanceMax = 0.0,
this.size = 0.0,
this.radiusMajor = 0.0,
this.radiusMinor = 0.0,
this.radiusMin = 0.0,
this.radiusMax = 0.0,
this.orientation = 0.0,
this.tilt = 0.0,
this.platformData = 0,
this.scrollDeltaX = 0.0,
this.scrollDeltaY = 0.0,
});
final int embedderId;
final Duration timeStamp;
final PointerChange change;
final PointerDeviceKind kind;
final PointerSignalKind? signalKind;
final int device;
final int pointerIdentifier;
final double physicalX;
final double physicalY;
final double physicalDeltaX;
final double physicalDeltaY;
final int buttons;
final bool obscured;
final bool synthesized;
final double pressure;
final double pressureMin;
final double pressureMax;
final double distance;
final double distanceMax;
final double size;
final double radiusMajor;
final double radiusMinor;
final double radiusMin;
final double radiusMax;
final double orientation;
final double tilt;
final int platformData;
final double scrollDeltaX;
final double scrollDeltaY;
@override
String toString() => 'PointerData(x: $physicalX, y: $physicalY)';
String toStringFull() {
return '$runtimeType('
'embedderId: $embedderId, '
'timeStamp: $timeStamp, '
'change: $change, '
'kind: $kind, '
'signalKind: $signalKind, '
'device: $device, '
'pointerIdentifier: $pointerIdentifier, '
'physicalX: $physicalX, '
'physicalY: $physicalY, '
'physicalDeltaX: $physicalDeltaX, '
'physicalDeltaY: $physicalDeltaY, '
'buttons: $buttons, '
'synthesized: $synthesized, '
'pressure: $pressure, '
'pressureMin: $pressureMin, '
'pressureMax: $pressureMax, '
'distance: $distance, '
'distanceMax: $distanceMax, '
'size: $size, '
'radiusMajor: $radiusMajor, '
'radiusMinor: $radiusMinor, '
'radiusMin: $radiusMin, '
'radiusMax: $radiusMax, '
'orientation: $orientation, '
'tilt: $tilt, '
'platformData: $platformData, '
'scrollDeltaX: $scrollDeltaX, '
'scrollDeltaY: $scrollDeltaY'
')';
}
}
class PointerDataPacket {
const PointerDataPacket({this.data = const <PointerData>[]})
: assert(data != null); // ignore: unnecessary_null_comparison
final List<PointerData> data;
}