Index: sky/framework/components/material.dart |
diff --git a/sky/framework/components/material.dart b/sky/framework/components/material.dart |
index 12ee60724a5c2aee480af1e9117ca0f11c212b0d..b335785eae72cefa58b1a08c75d28a4a41760b13 100644 |
--- a/sky/framework/components/material.dart |
+++ b/sky/framework/components/material.dart |
@@ -4,9 +4,7 @@ |
import '../fn.dart'; |
import '../theme/shadows.dart'; |
-import 'dart:collection'; |
-import 'dart:sky' as sky; |
-import 'ink_splash.dart'; |
+import 'ink_well.dart'; |
class Material extends Component { |
static final List<Style> shadowStyle = [ |
@@ -18,8 +16,6 @@ class Material extends Component { |
new Style('box-shadow: ${Shadow[5]}'), |
]; |
- LinkedHashSet<SplashAnimation> _splashes; |
- |
Style style; |
String inlineStyle; |
List<Node> children; |
@@ -33,69 +29,10 @@ class Material extends Component { |
this.level: 0 }) : super(key: key); |
Node build() { |
- List<Node> childrenIncludingSplashes = []; |
- |
- if (_splashes != null) { |
- childrenIncludingSplashes.addAll( |
- _splashes.map((s) => new InkSplash(s.onStyleChanged))); |
- } |
- |
- if (children != null) |
- childrenIncludingSplashes.addAll(children); |
- |
- return new EventTarget( |
- new Container( |
- style: level > 0 ? style.extend(shadowStyle[level]) : style, |
- inlineStyle: inlineStyle, |
- children: childrenIncludingSplashes), |
- onGestureScrollStart: _cancelSplashes, |
- onWheel: _cancelSplashes, |
- onPointerDown: _startSplash |
+ return new InkWell( |
+ style: level > 0 ? style.extend(shadowStyle[level]) : style, |
+ inlineStyle: inlineStyle, |
+ children: children |
); |
} |
- |
- sky.ClientRect _getBoundingRect() => (getRoot() as sky.Element).getBoundingClientRect(); |
- |
- void _startSplash(sky.PointerEvent event) { |
- setState(() { |
- if (_splashes == null) { |
- _splashes = new LinkedHashSet<SplashAnimation>(); |
- } |
- |
- var splash; |
- splash = new SplashAnimation(_getBoundingRect(), event.x, event.y, |
- onDone: () { _splashDone(splash); }); |
- |
- _splashes.add(splash); |
- }); |
- } |
- |
- void _cancelSplashes(sky.Event event) { |
- if (_splashes == null) { |
- return; |
- } |
- |
- setState(() { |
- var splashes = _splashes; |
- _splashes = null; |
- splashes.forEach((s) { s.cancel(); }); |
- }); |
- } |
- |
- void didUnmount() { |
- _cancelSplashes(null); |
- } |
- |
- void _splashDone(SplashAnimation splash) { |
- if (_splashes == null) { |
- return; |
- } |
- |
- setState(() { |
- _splashes.remove(splash); |
- if (_splashes.length == 0) { |
- _splashes = null; |
- } |
- }); |
- } |
} |