Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(842)

Side by Side Diff: sky/sdk/lib/widgets/popup_menu_item.dart

Issue 1240573007: Make it possible to detect PopupMenuItem presses (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 }
OLDNEW
« sky/sdk/example/stocks/lib/stock_menu.dart ('K') | « sky/sdk/lib/widgets/popup_menu.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698