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';
import 'package:sky/framework/components2/menu_divider.dart';
import 'package:sky/framework/components2/menu_item.dart';
import 'package:sky/framework/components2/input.dart';
// import 'package:sky/framework/components2/modal_overlay.dart';
// import 'package:sky/framework/components2/popup_menu.dart';
import 'package:sky/framework/components2/modal_overlay.dart';
import 'package:sky/framework/components2/popup_menu.dart';
import 'package:sky/framework/components2/radio.dart';
import 'package:sky/framework/components2/scaffold.dart';
import 'package:sky/framework/fn2.dart';
......@@ -21,7 +21,7 @@ import 'package:sky/framework/theme2/colors.dart' as colors;
import 'stock_data.dart';
import 'package:sky/framework/rendering/box.dart';
import 'stock_list.dart';
// import 'stock_menu.dart';
import 'stock_menu.dart';
import 'dart:async';
import 'dart:sky' as sky;
......@@ -77,22 +77,22 @@ class StocksApp extends App {
});
}
// PopupMenuController _menuController;
PopupMenuController _menuController;
void _handleMenuShow(_) {
setState(() {
// _menuController = new PopupMenuController();
// _menuController.open();
_menuController = new PopupMenuController();
_menuController.open();
});
}
void _handleMenuHide(_) {
setState(() {
// _menuController.close().then((_) {
// setState(() {
// _menuController = null;
// });
// });
_menuController.close().then((_) {
setState(() {
_menuController = null;
});
});
});
}
......@@ -187,15 +187,15 @@ class StocksApp extends App {
}
void addMenuToOverlays(List<UINode> overlays) {
// if (_menuController == null)
// return;
// overlays.add(new ModalOverlay(
// children: [new StockMenu(
// controller: _menuController,
// autorefresh: _autorefresh,
// onAutorefreshChanged: _handleAutorefreshChanged
// )],
// onDismiss: _handleMenuHide));
if (_menuController == null)
return;
overlays.add(new ModalOverlay(
children: [new StockMenu(
controller: _menuController,
autorefresh: _autorefresh,
onAutorefreshChanged: _handleAutorefreshChanged
)],
onDismiss: _handleMenuHide));
}
UINode build() {
......
......@@ -8,10 +8,10 @@ import 'package:sky/framework/components2/checkbox.dart';
import 'package:sky/framework/theme/view_configuration.dart';
class StockMenu extends Component {
static final Style _style = new Style('''
position: absolute;
right: 8px;
top: ${8 + kStatusBarHeight}px;''');
// static final Style _style = new Style('''
// position: absolute;
// right: 8px;
// top: ${8 + kStatusBarHeight}px;''');
PopupMenuController controller;
......@@ -20,24 +20,20 @@ class StockMenu extends Component {
final bool autorefresh;
final ValueChanged onAutorefreshChanged;
static FlexBoxParentData _flex1 = new FlexBoxParentData()..flex = 1;
UINode build() {
var checkbox = new Checkbox(
checked: this.autorefresh,
onChanged: this.onAutorefreshChanged
);
return new StyleNode(
new PopupMenu(
controller: controller,
items: [
[new Text('Add stock')],
[new Text('Remove stock')],
[new ParentDataNode(new Text('Autorefresh'), _flex1), checkbox],
],
level: 4),
_style
return new PopupMenu(
controller: controller,
items: [
[new Text('Add stock')],
[new Text('Remove stock')],
// [new FlexExpandingChild(new Text('Autorefresh')), checkbox],
],
level: 4
);
}
}
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