| 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 'package:sky/painting/text_style.dart'; | 5 import 'package:sky/painting/text_style.dart'; |
| 6 import 'package:sky/widgets/basic.dart'; | 6 import 'package:sky/widgets/basic.dart'; |
| 7 import 'package:sky/widgets/default_text_style.dart'; | 7 import 'package:sky/widgets/default_text_style.dart'; |
| 8 import 'package:sky/widgets/ink_well.dart'; | 8 import 'package:sky/widgets/ink_well.dart'; |
| 9 import 'package:sky/widgets/theme.dart'; | 9 import 'package:sky/widgets/theme.dart'; |
| 10 | 10 |
| 11 const double kMenuItemHeight = 48.0; | 11 const double kMenuItemHeight = 48.0; |
| 12 const double kBaselineOffsetFromBottom = 20.0; | 12 const double kBaselineOffsetFromBottom = 20.0; |
| 13 | 13 |
| 14 class PopupMenuItem extends Component { | 14 class PopupMenuItem extends Component { |
| 15 PopupMenuItem({ String key, this.child, this.opacity}) : super(key: key); | 15 PopupMenuItem({ |
| 16 String key, |
| 17 this.onPressed, |
| 18 this.child |
| 19 }) : super(key: key); |
| 16 | 20 |
| 17 final Widget child; | 21 final Widget child; |
| 18 final double opacity; | 22 final Function onPressed; |
| 19 | 23 |
| 20 TextStyle get textStyle => Theme.of(this).text.subhead; | 24 TextStyle get textStyle => Theme.of(this).text.subhead; |
| 21 | 25 |
| 22 Widget build() { | 26 Widget build() { |
| 23 return new Opacity( | 27 return new Listener( |
| 24 opacity: opacity, | 28 onGestureTap: (_) { |
| 29 if (onPressed != null) |
| 30 onPressed(); |
| 31 }, |
| 25 child: new InkWell( | 32 child: new InkWell( |
| 26 child: new Container( | 33 child: new Container( |
| 27 height: kMenuItemHeight, | 34 height: kMenuItemHeight, |
| 28 child: new DefaultTextStyle( | 35 child: new DefaultTextStyle( |
| 29 style: textStyle, | 36 style: textStyle, |
| 30 child: new Baseline( | 37 child: new Baseline( |
| 31 baseline: kMenuItemHeight - kBaselineOffsetFromBottom, | 38 baseline: kMenuItemHeight - kBaselineOffsetFromBottom, |
| 32 child: child | 39 child: child |
| 33 ) | 40 ) |
| 34 ) | 41 ) |
| 35 ) | 42 ) |
| 36 ) | 43 ) |
| 37 ); | 44 ); |
| 38 } | 45 } |
| 39 } | 46 } |
| OLD | NEW |