| 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 'dart:sky' as sky; |
| 6 |
| 5 import '../rendering/box.dart'; | 7 import '../rendering/box.dart'; |
| 6 import 'basic.dart'; | 8 import 'basic.dart'; |
| 7 import 'icon.dart'; | 9 import 'icon.dart'; |
| 8 import 'widget.dart'; | 10 import 'widget.dart'; |
| 9 | 11 |
| 10 class IconButton extends Component { | 12 class IconButton extends Component { |
| 11 | 13 |
| 12 IconButton({ String icon: '', this.onPressed }) | 14 IconButton({ String icon: '', this.onPressed, this.color }) |
| 13 : super(key: icon), icon = icon; | 15 : super(key: icon), icon = icon; |
| 14 | 16 |
| 15 final String icon; | 17 final String icon; |
| 16 final Function onPressed; | 18 final Function onPressed; |
| 19 final Color color; |
| 17 | 20 |
| 18 Widget build() { | 21 Widget build() { |
| 22 Widget child = new Icon(type: icon, size: 24); |
| 23 if (color != null) { |
| 24 child = new ColorFilter( |
| 25 color: color, |
| 26 transferMode: sky.TransferMode.srcATop, |
| 27 child: child |
| 28 ); |
| 29 } |
| 19 return new Listener( | 30 return new Listener( |
| 20 child: new Padding( | 31 child: new Padding( |
| 21 child: new Icon(type: icon, size: 24), | 32 child: child, |
| 22 padding: const EdgeDims.all(8.0)), | 33 padding: const EdgeDims.all(8.0)), |
| 23 onGestureTap: (_) { | 34 onGestureTap: (_) { |
| 24 if (onPressed != null) | 35 if (onPressed != null) |
| 25 onPressed(); | 36 onPressed(); |
| 26 } | 37 } |
| 27 ); | 38 ); |
| 28 } | 39 } |
| 29 | 40 |
| 30 } | 41 } |
| OLD | NEW |