Commit 519ab4ae authored by Adam Barth's avatar Adam Barth

Merge pull request #1983 from Hixie/block-padding

Teach Block about padding.
parents 60d77d97 1f5844ea
...@@ -84,19 +84,15 @@ class MealFragmentState extends State<MealFragment> { ...@@ -84,19 +84,15 @@ class MealFragmentState extends State<MealFragment> {
Widget buildBody() { Widget buildBody() {
Meal meal = new Meal(when: new DateTime.now()); Meal meal = new Meal(when: new DateTime.now());
// TODO(ianh): Fix Block such that we could use that here instead of rolling our own return new Block(<Widget>[
return new ScrollableViewport( new Text(meal.displayDate),
child: new Container( new Input(
padding: const EdgeDims.all(20.0), key: descriptionKey,
child: new BlockBody(<Widget>[ placeholder: 'Describe meal',
new Text(meal.displayDate), onChanged: _handleDescriptionChanged
new Input( ),
key: descriptionKey, ],
placeholder: 'Describe meal', padding: const EdgeDims.all(20.0)
onChanged: _handleDescriptionChanged
),
])
)
); );
} }
......
...@@ -90,29 +90,25 @@ class SettingsFragmentState extends State<SettingsFragment> { ...@@ -90,29 +90,25 @@ class SettingsFragmentState extends State<SettingsFragment> {
} }
Widget buildSettingsPane(BuildContext context) { Widget buildSettingsPane(BuildContext context) {
// TODO(ianh): Make Block capable of doing this return new Block(<Widget>[
return new ScrollableViewport( new DrawerItem(
child: new Container( onPressed: () { _handleBackupChanged(!(config.userData.backupMode == BackupMode.enabled)); },
padding: const EdgeDims.symmetric(vertical: 20.0), child: new Row(<Widget>[
child: new BlockBody(<Widget>[ new Flexible(child: new Text('Back up data to the cloud')),
new DrawerItem( new Switch(value: config.userData.backupMode == BackupMode.enabled, onChanged: _handleBackupChanged),
onPressed: () { _handleBackupChanged(!(config.userData.backupMode == BackupMode.enabled)); }, ])
child: new Row(<Widget>[ ),
new Flexible(child: new Text('Back up data to the cloud')), new DrawerItem(
new Switch(value: config.userData.backupMode == BackupMode.enabled, onChanged: _handleBackupChanged), onPressed: () => _handleGoalWeightPressed(),
]) child: new Column(<Widget>[
), new Text('Goal Weight'),
new DrawerItem( new Text(goalWeightText, style: Theme.of(context).text.caption),
onPressed: () => _handleGoalWeightPressed(), ],
child: new Column(<Widget>[ alignItems: FlexAlignItems.start
new Text('Goal Weight'), )
new Text(goalWeightText, style: Theme.of(context).text.caption), ),
], ],
alignItems: FlexAlignItems.start padding: const EdgeDims.symmetric(vertical: 20.0)
)
),
])
)
); );
} }
......
...@@ -81,34 +81,31 @@ class StockSettingsState extends State<StockSettings> { ...@@ -81,34 +81,31 @@ class StockSettingsState extends State<StockSettings> {
Widget buildSettingsPane(BuildContext context) { Widget buildSettingsPane(BuildContext context) {
// TODO(ianh): Once we have the gesture API hooked up, fix https://github.com/domokit/mojo/issues/281 // TODO(ianh): Once we have the gesture API hooked up, fix https://github.com/domokit/mojo/issues/281
// (whereby tapping the widgets below causes both the widget and the menu item to fire their callbacks) // (whereby tapping the widgets below causes both the widget and the menu item to fire their callbacks)
return new ScrollableViewport( return new Block(<Widget>[
child: new Container( new DrawerItem(
padding: const EdgeDims.symmetric(vertical: 20.0), icon: 'action/thumb_up',
child: new BlockBody(<Widget>[ onPressed: () => _confirmOptimismChange(),
new DrawerItem( child: new Row(<Widget>[
icon: 'action/thumb_up', new Flexible(child: new Text('Everything is awesome')),
onPressed: () => _confirmOptimismChange(), new Checkbox(
child: new Row(<Widget>[ value: config.optimism == StockMode.optimistic,
new Flexible(child: new Text('Everything is awesome')), onChanged: (bool value) => _confirmOptimismChange()
new Checkbox( ),
value: config.optimism == StockMode.optimistic, ])
onChanged: (bool value) => _confirmOptimismChange() ),
), new DrawerItem(
]) icon: 'action/backup',
), onPressed: () { _handleBackupChanged(!(config.backup == BackupMode.enabled)); },
new DrawerItem( child: new Row(<Widget>[
icon: 'action/backup', new Flexible(child: new Text('Back up stock list to the cloud')),
onPressed: () { _handleBackupChanged(!(config.backup == BackupMode.enabled)); }, new Switch(
child: new Row(<Widget>[ value: config.backup == BackupMode.enabled,
new Flexible(child: new Text('Back up stock list to the cloud')), onChanged: _handleBackupChanged
new Switch( ),
value: config.backup == BackupMode.enabled, ])
onChanged: _handleBackupChanged ),
), ],
]) padding: const EdgeDims.symmetric(vertical: 20.0)
),
])
)
); );
} }
......
...@@ -107,7 +107,7 @@ class _DropdownMenu extends StatusTransitionComponent { ...@@ -107,7 +107,7 @@ class _DropdownMenu extends StatusTransitionComponent {
builder: (BuildContext context) { builder: (BuildContext context) {
RenderBox renderBox = context.findRenderObject(); RenderBox renderBox = context.findRenderObject();
return new CustomPaint( return new CustomPaint(
child: new ScrollableViewport(child: new Container(child: new Column(children))), child: new Block(children),
onPaint: (ui.Canvas canvas, Size size) { onPaint: (ui.Canvas canvas, Size size) {
double top = renderBox.globalToLocal(new Point(0.0, menuTop.value)).y; double top = renderBox.globalToLocal(new Point(0.0, menuTop.value)).y;
double bottom = renderBox.globalToLocal(new Point(0.0, menuBottom.value)).y; double bottom = renderBox.globalToLocal(new Point(0.0, menuBottom.value)).y;
......
...@@ -76,14 +76,11 @@ class _PopupMenu extends StatelessComponent { ...@@ -76,14 +76,11 @@ class _PopupMenu extends StatelessComponent {
), ),
child: new IntrinsicWidth( child: new IntrinsicWidth(
stepWidth: _kMenuWidthStep, stepWidth: _kMenuWidthStep,
child: new ScrollableViewport( child: new Block(
child: new Container( children,
// TODO(abarth): Teach Block about padding. padding: const EdgeDims.symmetric(
padding: const EdgeDims.symmetric( horizontal: _kMenuHorizontalPadding,
horizontal: _kMenuHorizontalPadding, vertical: _kMenuVerticalPadding
vertical: _kMenuVerticalPadding
),
child: new BlockBody(children)
) )
) )
) )
......
...@@ -382,6 +382,7 @@ class ScrollableViewportState extends ScrollableState<ScrollableViewport> { ...@@ -382,6 +382,7 @@ class ScrollableViewportState extends ScrollableState<ScrollableViewport> {
class Block extends StatelessComponent { class Block extends StatelessComponent {
Block(this.children, { Block(this.children, {
Key key, Key key,
this.padding,
this.initialScrollOffset, this.initialScrollOffset,
this.scrollDirection: ScrollDirection.vertical, this.scrollDirection: ScrollDirection.vertical,
this.onScroll this.onScroll
...@@ -390,6 +391,7 @@ class Block extends StatelessComponent { ...@@ -390,6 +391,7 @@ class Block extends StatelessComponent {
} }
final List<Widget> children; final List<Widget> children;
final EdgeDims padding;
final double initialScrollOffset; final double initialScrollOffset;
final ScrollDirection scrollDirection; final ScrollDirection scrollDirection;
final ScrollListener onScroll; final ScrollListener onScroll;
...@@ -401,11 +403,14 @@ class Block extends StatelessComponent { ...@@ -401,11 +403,14 @@ class Block extends StatelessComponent {
} }
Widget build(BuildContext context) { Widget build(BuildContext context) {
Widget contents = new BlockBody(children, direction: _direction);
if (padding != null)
contents = new Padding(padding: padding, child: contents);
return new ScrollableViewport( return new ScrollableViewport(
initialScrollOffset: initialScrollOffset, initialScrollOffset: initialScrollOffset,
scrollDirection: scrollDirection, scrollDirection: scrollDirection,
onScroll: onScroll, onScroll: onScroll,
child: new BlockBody(children, direction: _direction) child: contents
); );
} }
} }
......
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