Commit 8b6bd844 authored by Ian Hickson's avatar Ian Hickson

Merge pull request #1376 from Hixie/toggleable

Make the checkbox in the stocks popup menu work.
parents a3ecdc30 066768f0
......@@ -4,7 +4,7 @@
part of stocks;
enum _MenuItems { add, remove, autorefresh }
enum _MenuItems { autorefresh, autorefreshCheckbox, add, remove }
Future showStockMenu(NavigatorState navigator, { bool autorefresh, ValueChanged onAutorefreshChanged }) async {
switch (await showMenu(
......@@ -15,30 +15,41 @@ Future showStockMenu(NavigatorState navigator, { bool autorefresh, ValueChanged
),
builder: (NavigatorState navigator) {
return <PopupMenuItem>[
new PopupMenuItem(
value: _MenuItems.add,
child: new Text('Add stock')
),
new PopupMenuItem(
value: _MenuItems.remove,
child: new Text('Remove stock')
),
new PopupMenuItem(
value: _MenuItems.autorefresh,
child: new Row([
new Flexible(child: new Text('Autorefresh')),
new Checkbox(
value: autorefresh,
onChanged: onAutorefreshChanged
onChanged: (bool value) {
navigator.setState(() {
autorefresh = value;
});
navigator.pop(_MenuItems.autorefreshCheckbox);
}
)
]
)
),
new PopupMenuItem(
value: _MenuItems.add,
child: new Text('Add stock')
),
new PopupMenuItem(
value: _MenuItems.remove,
child: new Text('Remove stock')
),
];
}
)) {
case _MenuItems.autorefresh:
onAutorefreshChanged(!autorefresh);
navigator.setState(() {
autorefresh = !autorefresh;
});
continue autorefreshNotify;
autorefreshNotify:
case _MenuItems.autorefreshCheckbox:
onAutorefreshChanged(autorefresh);
break;
case _MenuItems.add:
case _MenuItems.remove:
......
......@@ -17,7 +17,6 @@ const sky.Color _kLightUncheckedColor = const sky.Color(0x8A000000);
const sky.Color _kDarkUncheckedColor = const sky.Color(0xB2FFFFFF);
const double _kEdgeSize = 20.0;
const double _kEdgeRadius = 1.0;
const Duration _kCheckDuration = const Duration(milliseconds: 200);
/// A material design checkbox
///
......
......@@ -23,7 +23,6 @@ const double _kTrackHeight = 14.0;
const double _kTrackRadius = _kTrackHeight / 2.0;
const double _kTrackWidth =
_kSwitchWidth - (_kThumbRadius - _kTrackRadius) * 2.0;
const Duration _kCheckDuration = const Duration(milliseconds: 200);
const Size _kSwitchSize = const Size(_kSwitchWidth + 2.0, _kSwitchHeight + 2.0);
const double _kReactionRadius = _kSwitchWidth / 2.0;
......
......@@ -53,29 +53,30 @@ abstract class RenderToggleable extends RenderConstrainedBox {
}
void _handleTap() {
if (_onChanged != null)
_onChanged(!_value);
}
bool _value;
bool get value => _value;
bool _value;
void set value(bool value) {
if (value == _value) return;
if (value == _value)
return;
_value = value;
performance.play(value ? Direction.forward : Direction.reverse);
}
ValueChanged _onChanged;
ValueChanged get onChanged => _onChanged;
ValueChanged _onChanged;
void set onChanged(ValueChanged onChanged) {
_onChanged = onChanged;
}
AnimatedValue<double> get position => _position;
final AnimatedValue<double> _position =
new AnimatedValue<double>(0.0, end: 1.0, curve: easeIn, reverseCurve: easeOut);
AnimatedValue<double> get position => _position;
AnimationPerformance _performance;
AnimationPerformance get performance => _performance;
AnimationPerformance _performance;
}
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