Index: sky/framework/components/ink_well.dart |
diff --git a/sky/framework/components/ink_well.dart b/sky/framework/components/ink_well.dart |
deleted file mode 100644 |
index 47d745e029cd0a54c6940fb614d48f6e2a4021ae..0000000000000000000000000000000000000000 |
--- a/sky/framework/components/ink_well.dart |
+++ /dev/null |
@@ -1,119 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-import '../fn.dart'; |
-import '../layout.dart'; |
-import 'dart:collection'; |
-import 'dart:sky' as sky; |
-import 'ink_splash.dart'; |
-import 'scrollable.dart'; |
- |
-class InkWell extends Component implements ScrollClient { |
- static final Style _containmentStyleHack = new Style(''' |
- align-items: center; |
- transform: translateX(0);'''); |
- |
- LinkedHashSet<SplashController> _splashes; |
- |
- String inlineStyle; |
- List<UINode> children; |
- |
- InkWell({ Object key, this.inlineStyle, this.children }) |
- : super(key: key) { |
- onDidUnmount(() { |
- _cancelSplashes(null); |
- }); |
- } |
- |
- UINode build() { |
- List<UINode> childrenIncludingSplashes = []; |
- |
- if (_splashes != null) { |
- childrenIncludingSplashes.addAll( |
- _splashes.map((s) => new InkSplash(s.onStyleChanged))); |
- } |
- |
- if (children != null) |
- childrenIncludingSplashes.addAll(children); |
- |
- return new EventListenerNode( |
- new FlexContainer( |
- direction: FlexDirection.Row, |
- style: _containmentStyleHack, |
- inlineStyle: inlineStyle, |
- children: childrenIncludingSplashes), |
- onGestureTapDown: _startSplash, |
- onGestureTap: _confirmSplash |
- ); |
- } |
- |
- void _startSplash(sky.GestureEvent event) { |
- setState(() { |
- if (_splashes == null) |
- _splashes = new LinkedHashSet<SplashController>(); |
- var splash; |
- var root = getRoot(); |
- splash = new SplashController(root.rect, event.x, event.y, |
- pointer: event.primaryPointer, |
- onDone: () { _splashDone(splash); }); |
- _splashes.add(splash); |
- UINode node = parent; |
- while (node != null) { |
- if (node is Scrollable) |
- node.registerScrollClient(this); |
- node = node.parent; |
- } |
- }); |
- } |
- |
- bool ancestorScrolled(Scrollable ancestor) { |
- _abortSplashes(); |
- return false; |
- } |
- |
- void handleRemoved() { |
- UINode node = parent; |
- while (node != null) { |
- if (node is Scrollable) |
- node.unregisterScrollClient(this); |
- node = node.parent; |
- } |
- super.handleRemoved(); |
- } |
- |
- void _confirmSplash(sky.GestureEvent event) { |
- if (_splashes == null) |
- return; |
- _splashes.where((splash) => splash.pointer == event.primaryPointer) |
- .forEach((splash) { splash.confirm(); }); |
- } |
- |
- void _abortSplashes() { |
- if (_splashes == null) |
- return; |
- setState(() { |
- _splashes.forEach((s) { s.abort(); }); |
- }); |
- } |
- |
- void _cancelSplashes(sky.Event event) { |
- if (_splashes == null) |
- return; |
- setState(() { |
- var splashes = _splashes; |
- _splashes = null; |
- splashes.forEach((s) { s.cancel(); }); |
- }); |
- } |
- |
- void _splashDone(SplashController splash) { |
- if (_splashes == null) |
- return; |
- setState(() { |
- _splashes.remove(splash); |
- if (_splashes.length == 0) |
- _splashes = null; |
- }); |
- } |
-} |