| OLD | NEW | 
|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 import '../fn.dart'; | 5 import '../fn.dart'; | 
| 6 import 'dart:collection'; | 6 import 'dart:collection'; | 
| 7 import 'dart:sky' as sky; | 7 import 'dart:sky' as sky; | 
| 8 import 'ink_splash.dart'; | 8 import 'ink_splash.dart'; | 
| 9 | 9 | 
| 10 class InkWell extends Component { | 10 class InkWell extends Component { | 
|  | 11   static final Style _containmentStyleHack = new Style(''' | 
|  | 12     transform: translateX(0);'''); | 
|  | 13 | 
| 11   LinkedHashSet<SplashController> _splashes; | 14   LinkedHashSet<SplashController> _splashes; | 
| 12 | 15 | 
| 13   Style style; |  | 
| 14   String inlineStyle; | 16   String inlineStyle; | 
| 15   List<Node> children; | 17   List<Node> children; | 
| 16 | 18 | 
| 17   InkWell({ Object key, this.style, this.inlineStyle, this.children }) | 19   InkWell({ Object key, this.inlineStyle, this.children }) | 
| 18       : super(key: key) { | 20       : super(key: key) { | 
| 19     onDidUnmount(() { | 21     onDidUnmount(() { | 
| 20       _cancelSplashes(null); | 22       _cancelSplashes(null); | 
| 21     }); | 23     }); | 
| 22   } | 24   } | 
| 23 | 25 | 
| 24   Node build() { | 26   Node build() { | 
| 25     List<Node> childrenIncludingSplashes = []; | 27     List<Node> childrenIncludingSplashes = []; | 
| 26 | 28 | 
| 27     if (_splashes != null) { | 29     if (_splashes != null) { | 
| 28       childrenIncludingSplashes.addAll( | 30       childrenIncludingSplashes.addAll( | 
| 29           _splashes.map((s) => new InkSplash(s.onStyleChanged))); | 31           _splashes.map((s) => new InkSplash(s.onStyleChanged))); | 
| 30     } | 32     } | 
| 31 | 33 | 
| 32     if (children != null) | 34     if (children != null) | 
| 33       childrenIncludingSplashes.addAll(children); | 35       childrenIncludingSplashes.addAll(children); | 
| 34 | 36 | 
| 35     return new EventTarget( | 37     return new EventTarget( | 
| 36       new Container( | 38       new Container( | 
| 37           style: style, | 39         style: _containmentStyleHack, | 
| 38           inlineStyle: inlineStyle, | 40         inlineStyle: inlineStyle, | 
| 39           children: childrenIncludingSplashes), | 41         children: childrenIncludingSplashes), | 
| 40       onGestureTapDown: _startSplash, | 42       onGestureTapDown: _startSplash, | 
| 41       onGestureTap: _confirmSplash | 43       onGestureTap: _confirmSplash | 
| 42     ); | 44     ); | 
| 43   } | 45   } | 
| 44 | 46 | 
| 45   sky.ClientRect _getBoundingRect() => (getRoot() as sky.Element).getBoundingCli
    entRect(); | 47   sky.ClientRect _getBoundingRect() => (getRoot() as sky.Element).getBoundingCli
    entRect(); | 
| 46 | 48 | 
| 47   void _startSplash(sky.GestureEvent event) { | 49   void _startSplash(sky.GestureEvent event) { | 
| 48     setState(() { | 50     setState(() { | 
| 49       if (_splashes == null) | 51       if (_splashes == null) | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 76   void _splashDone(SplashController splash) { | 78   void _splashDone(SplashController splash) { | 
| 77     if (_splashes == null) | 79     if (_splashes == null) | 
| 78       return; | 80       return; | 
| 79     setState(() { | 81     setState(() { | 
| 80       _splashes.remove(splash); | 82       _splashes.remove(splash); | 
| 81       if (_splashes.length == 0) | 83       if (_splashes.length == 0) | 
| 82         _splashes = null; | 84         _splashes = null; | 
| 83     }); | 85     }); | 
| 84   } | 86   } | 
| 85 } | 87 } | 
| OLD | NEW | 
|---|