Commit 426ce937 authored by Adam Barth's avatar Adam Barth

Clean up some style in GestureDetector

 * Rename GestureTapListener (and friends) To GestureTapCallback to match the
   other gesture callbacks.
 * Replace "ensureFoo" pattern with ??= operator.
parent e9aabcd5
......@@ -37,13 +37,13 @@ class StockRow extends StatelessComponent {
static const double kHeight = 79.0;
GestureTapListener _getTapHandler(StockRowActionCallback callback) {
GestureTapCallback _getTapHandler(StockRowActionCallback callback) {
if (callback == null)
return null;
return () => callback(stock, key, arrowKey, symbolKey, priceKey);
}
GestureLongPressListener _getLongPressHandler(StockRowActionCallback callback) {
GestureLongPressCallback _getLongPressHandler(StockRowActionCallback callback) {
if (callback == null)
return null;
return () => callback(stock, key, arrowKey, symbolKey, priceKey);
......
......@@ -9,13 +9,13 @@ import 'package:sky/src/gestures/constants.dart';
import 'package:sky/src/gestures/pointer_router.dart';
import 'package:sky/src/gestures/recognizer.dart';
typedef void GestureLongPressListener();
typedef void GestureLongPressCallback();
class LongPressGestureRecognizer extends PrimaryPointerGestureRecognizer {
LongPressGestureRecognizer({ PointerRouter router, this.onLongPress })
: super(router: router, deadline: kTapTimeout + kLongPressTimeout);
GestureLongPressListener onLongPress;
GestureLongPressCallback onLongPress;
void didExceedDeadline() {
resolve(GestureDisposition.accepted);
......
......@@ -8,13 +8,13 @@ import 'package:sky/src/gestures/arena.dart';
import 'package:sky/src/gestures/constants.dart';
import 'package:sky/src/gestures/recognizer.dart';
typedef void GestureShowPressListener();
typedef void GestureShowPressCallback();
class ShowPressGestureRecognizer extends PrimaryPointerGestureRecognizer {
ShowPressGestureRecognizer({ PointerRouter router, this.onShowPress })
: super(router: router, deadline: kTapTimeout);
GestureShowPressListener onShowPress;
GestureShowPressCallback onShowPress;
void didExceedDeadline() {
// Show press isn't an exclusive gesture. We can recognize a show press
......
......@@ -7,13 +7,13 @@ import 'dart:sky' as sky;
import 'package:sky/src/gestures/arena.dart';
import 'package:sky/src/gestures/recognizer.dart';
typedef void GestureTapListener();
typedef void GestureTapCallback();
class TapGestureRecognizer extends PrimaryPointerGestureRecognizer {
TapGestureRecognizer({ PointerRouter router, this.onTap })
: super(router: router);
GestureTapListener onTap;
GestureTapCallback onTap;
void handlePrimaryPointer(sky.PointerEvent event) {
if (event.type == 'pointerup') {
......
......@@ -21,7 +21,7 @@ class DrawerItem extends StatefulComponent {
final String icon;
final Widget child;
final GestureTapListener onPressed;
final GestureTapCallback onPressed;
final bool selected;
DrawerItemState createState() => new DrawerItemState();
......
......@@ -26,7 +26,7 @@ class FloatingActionButton extends StatefulComponent {
final Widget child;
final Color backgroundColor;
final GestureTapListener onPressed;
final GestureTapCallback onPressed;
FloatingActionButtonState createState() => new FloatingActionButtonState();
}
......
......@@ -31,9 +31,10 @@ class GestureDetector extends StatefulComponent {
}) : super(key: key);
final Widget child;
final GestureTapListener onTap;
final GestureShowPressListener onShowPress;
final GestureLongPressListener onLongPress;
final GestureTapCallback onTap;
final GestureShowPressCallback onShowPress;
final GestureLongPressCallback onLongPress;
final GestureDragStartCallback onVerticalDragStart;
final GestureDragUpdateCallback onVerticalDragUpdate;
......@@ -55,62 +56,23 @@ class GestureDetector extends StatefulComponent {
}
class GestureDetectorState extends State<GestureDetector> {
void initState() {
super.initState();
didUpdateConfig(null);
}
final PointerRouter _router = FlutterBinding.instance.pointerRouter;
TapGestureRecognizer _tap;
TapGestureRecognizer _ensureTap() {
if (_tap == null)
_tap = new TapGestureRecognizer(router: _router);
return _tap;
}
ShowPressGestureRecognizer _showPress;
ShowPressGestureRecognizer _ensureShowPress() {
if (_showPress == null)
_showPress = new ShowPressGestureRecognizer(router: _router);
return _showPress;
}
LongPressGestureRecognizer _longPress;
LongPressGestureRecognizer _ensureLongPress() {
if (_longPress == null)
_longPress = new LongPressGestureRecognizer(router: _router);
return _longPress;
}
VerticalDragGestureRecognizer _verticalDrag;
VerticalDragGestureRecognizer _ensureVerticalDrag() {
if (_verticalDrag == null)
_verticalDrag = new VerticalDragGestureRecognizer(router: _router);
return _verticalDrag;
}
HorizontalDragGestureRecognizer _horizontalDrag;
HorizontalDragGestureRecognizer _ensureHorizontalDrag() {
if (_horizontalDrag == null)
_horizontalDrag = new HorizontalDragGestureRecognizer(router: _router);
return _horizontalDrag;
}
PanGestureRecognizer _pan;
PanGestureRecognizer _ensurePan() {
assert(_scale == null); // Scale is a superset of pan; just use scale
if (_pan == null)
_pan = new PanGestureRecognizer(router: _router);
return _pan;
ScaleGestureRecognizer _scale;
void initState() {
super.initState();
_syncAll();
}
ScaleGestureRecognizer _scale;
ScaleGestureRecognizer _ensureScale() {
assert(_pan == null); // Scale is a superset of pan; just use scale
if (_scale == null)
_scale = new ScaleGestureRecognizer(router: _router);
return _scale;
void didUpdateConfig(GestureDetector oldConfig) {
_syncAll();
}
void dispose() {
......@@ -124,7 +86,7 @@ class GestureDetectorState extends State<GestureDetector> {
super.dispose();
}
void didUpdateConfig(GestureDetector oldConfig) {
void _syncAll() {
_syncTap();
_syncShowPress();
_syncLongPress();
......@@ -135,31 +97,37 @@ class GestureDetectorState extends State<GestureDetector> {
}
void _syncTap() {
if (config.onTap == null)
if (config.onTap == null) {
_tap = _ensureDisposed(_tap);
else
_ensureTap().onTap = config.onTap;
} else {
_tap ??= new TapGestureRecognizer(router: _router)
..onTap = config.onTap;
}
}
void _syncShowPress() {
if (config.onShowPress == null)
if (config.onShowPress == null) {
_showPress = _ensureDisposed(_showPress);
else
_ensureShowPress().onShowPress = config.onShowPress;
} else {
_showPress ??= new ShowPressGestureRecognizer(router: _router)
..onShowPress = config.onShowPress;
}
}
void _syncLongPress() {
if (config.onLongPress == null)
if (config.onLongPress == null) {
_longPress = _ensureDisposed(_longPress);
else
_ensureLongPress().onLongPress = config.onLongPress;
} else {
_longPress ??= new LongPressGestureRecognizer(router: _router)
..onLongPress = config.onLongPress;
}
}
void _syncVerticalDrag() {
if (config.onVerticalDragStart == null && config.onVerticalDragUpdate == null && config.onVerticalDragEnd == null) {
_verticalDrag = _ensureDisposed(_verticalDrag);
} else {
_ensureVerticalDrag()
_verticalDrag ??= new VerticalDragGestureRecognizer(router: _router)
..onStart = config.onVerticalDragStart
..onUpdate = config.onVerticalDragUpdate
..onEnd = config.onVerticalDragEnd;
......@@ -170,7 +138,7 @@ class GestureDetectorState extends State<GestureDetector> {
if (config.onHorizontalDragStart == null && config.onHorizontalDragUpdate == null && config.onHorizontalDragEnd == null) {
_horizontalDrag = _ensureDisposed(_horizontalDrag);
} else {
_ensureHorizontalDrag()
_horizontalDrag ??= new HorizontalDragGestureRecognizer(router: _router)
..onStart = config.onHorizontalDragStart
..onUpdate = config.onHorizontalDragUpdate
..onEnd = config.onHorizontalDragEnd;
......@@ -181,7 +149,8 @@ class GestureDetectorState extends State<GestureDetector> {
if (config.onPanStart == null && config.onPanUpdate == null && config.onPanEnd == null) {
_pan = _ensureDisposed(_pan);
} else {
_ensurePan()
assert(_scale == null); // Scale is a superset of pan; just use scale
_pan ??= new PanGestureRecognizer(router: _router)
..onStart = config.onPanStart
..onUpdate = config.onPanUpdate
..onEnd = config.onPanEnd;
......@@ -192,7 +161,8 @@ class GestureDetectorState extends State<GestureDetector> {
if (config.onScaleStart == null && config.onScaleUpdate == null && config.onScaleEnd == null) {
_scale = _ensureDisposed(_scale);
} else {
_ensureScale()
assert(_pan == null); // Scale is a superset of pan; just use scale
_scale ??= new ScaleGestureRecognizer(router: _router)
..onStart = config.onScaleStart
..onUpdate = config.onScaleUpdate
..onEnd = config.onScaleEnd;
......
......@@ -127,5 +127,6 @@ class RenderInkWell extends RenderProxyBox {
class InkWell extends OneChildRenderObjectWidget {
InkWell({ Key key, Widget child }) : super(key: key, child: child);
RenderInkWell createRenderObject() => new RenderInkWell();
}
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