Commit 81e8e2b5 authored by Adam Barth's avatar Adam Barth

Add a basic popup menu implementation to stocks2

The popup menu is displayed in the wrong location with the wrong width, but it
does draw. I've also removed the checkbox because the flex container was
causing me trouble.  I'll add it back in a later CL.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1166153002
parent 77f5d472
...@@ -11,8 +11,8 @@ import 'package:sky/framework/components2/icon_button.dart'; ...@@ -11,8 +11,8 @@ import 'package:sky/framework/components2/icon_button.dart';
import 'package:sky/framework/components2/menu_divider.dart'; import 'package:sky/framework/components2/menu_divider.dart';
import 'package:sky/framework/components2/menu_item.dart'; import 'package:sky/framework/components2/menu_item.dart';
import 'package:sky/framework/components2/input.dart'; import 'package:sky/framework/components2/input.dart';
// import 'package:sky/framework/components2/modal_overlay.dart'; import 'package:sky/framework/components2/modal_overlay.dart';
// import 'package:sky/framework/components2/popup_menu.dart'; import 'package:sky/framework/components2/popup_menu.dart';
import 'package:sky/framework/components2/radio.dart'; import 'package:sky/framework/components2/radio.dart';
import 'package:sky/framework/components2/scaffold.dart'; import 'package:sky/framework/components2/scaffold.dart';
import 'package:sky/framework/fn2.dart'; import 'package:sky/framework/fn2.dart';
...@@ -21,7 +21,7 @@ import 'package:sky/framework/theme2/colors.dart' as colors; ...@@ -21,7 +21,7 @@ import 'package:sky/framework/theme2/colors.dart' as colors;
import 'stock_data.dart'; import 'stock_data.dart';
import 'package:sky/framework/rendering/box.dart'; import 'package:sky/framework/rendering/box.dart';
import 'stock_list.dart'; import 'stock_list.dart';
// import 'stock_menu.dart'; import 'stock_menu.dart';
import 'dart:async'; import 'dart:async';
import 'dart:sky' as sky; import 'dart:sky' as sky;
...@@ -77,22 +77,22 @@ class StocksApp extends App { ...@@ -77,22 +77,22 @@ class StocksApp extends App {
}); });
} }
// PopupMenuController _menuController; PopupMenuController _menuController;
void _handleMenuShow(_) { void _handleMenuShow(_) {
setState(() { setState(() {
// _menuController = new PopupMenuController(); _menuController = new PopupMenuController();
// _menuController.open(); _menuController.open();
}); });
} }
void _handleMenuHide(_) { void _handleMenuHide(_) {
setState(() { setState(() {
// _menuController.close().then((_) { _menuController.close().then((_) {
// setState(() { setState(() {
// _menuController = null; _menuController = null;
// }); });
// }); });
}); });
} }
...@@ -187,15 +187,15 @@ class StocksApp extends App { ...@@ -187,15 +187,15 @@ class StocksApp extends App {
} }
void addMenuToOverlays(List<UINode> overlays) { void addMenuToOverlays(List<UINode> overlays) {
// if (_menuController == null) if (_menuController == null)
// return; return;
// overlays.add(new ModalOverlay( overlays.add(new ModalOverlay(
// children: [new StockMenu( children: [new StockMenu(
// controller: _menuController, controller: _menuController,
// autorefresh: _autorefresh, autorefresh: _autorefresh,
// onAutorefreshChanged: _handleAutorefreshChanged onAutorefreshChanged: _handleAutorefreshChanged
// )], )],
// onDismiss: _handleMenuHide)); onDismiss: _handleMenuHide));
} }
UINode build() { UINode build() {
......
...@@ -8,10 +8,10 @@ import 'package:sky/framework/components2/checkbox.dart'; ...@@ -8,10 +8,10 @@ import 'package:sky/framework/components2/checkbox.dart';
import 'package:sky/framework/theme/view_configuration.dart'; import 'package:sky/framework/theme/view_configuration.dart';
class StockMenu extends Component { class StockMenu extends Component {
static final Style _style = new Style(''' // static final Style _style = new Style('''
position: absolute; // position: absolute;
right: 8px; // right: 8px;
top: ${8 + kStatusBarHeight}px;'''); // top: ${8 + kStatusBarHeight}px;''');
PopupMenuController controller; PopupMenuController controller;
...@@ -20,24 +20,20 @@ class StockMenu extends Component { ...@@ -20,24 +20,20 @@ class StockMenu extends Component {
final bool autorefresh; final bool autorefresh;
final ValueChanged onAutorefreshChanged; final ValueChanged onAutorefreshChanged;
static FlexBoxParentData _flex1 = new FlexBoxParentData()..flex = 1;
UINode build() { UINode build() {
var checkbox = new Checkbox( var checkbox = new Checkbox(
checked: this.autorefresh, checked: this.autorefresh,
onChanged: this.onAutorefreshChanged onChanged: this.onAutorefreshChanged
); );
return new StyleNode( return new PopupMenu(
new PopupMenu(
controller: controller, controller: controller,
items: [ items: [
[new Text('Add stock')], [new Text('Add stock')],
[new Text('Remove stock')], [new Text('Remove stock')],
[new ParentDataNode(new Text('Autorefresh'), _flex1), checkbox], // [new FlexExpandingChild(new Text('Autorefresh')), checkbox],
], ],
level: 4), level: 4
_style
); );
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment