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

Side by Side Diff: sky/sdk/example/stocks/lib/stock_settings.dart

Issue 1223153004: Make the drawer, popup menus, dialogs, and settings page scrollable. (Closed) Base URL: https://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/widgets/basic.dart'; 5 import 'package:sky/widgets/basic.dart';
6 import 'package:sky/widgets/checkbox.dart'; 6 import 'package:sky/widgets/checkbox.dart';
7 import 'package:sky/widgets/switch.dart'; 7 import 'package:sky/widgets/dialog.dart';
8 import 'package:sky/widgets/flat_button.dart'; 8 import 'package:sky/widgets/flat_button.dart';
9 import 'package:sky/widgets/dialog.dart';
10 import 'package:sky/widgets/icon_button.dart'; 9 import 'package:sky/widgets/icon_button.dart';
11 import 'package:sky/widgets/material.dart'; 10 import 'package:sky/widgets/material.dart';
12 import 'package:sky/widgets/menu_item.dart'; 11 import 'package:sky/widgets/menu_item.dart';
13 import 'package:sky/widgets/navigator.dart'; 12 import 'package:sky/widgets/navigator.dart';
14 import 'package:sky/widgets/scaffold.dart'; 13 import 'package:sky/widgets/scaffold.dart';
14 import 'package:sky/widgets/scrollable_viewport.dart';
15 import 'package:sky/widgets/switch.dart';
15 import 'package:sky/widgets/tool_bar.dart'; 16 import 'package:sky/widgets/tool_bar.dart';
16 17
17 import 'stock_types.dart'; 18 import 'stock_types.dart';
18 19
19 typedef void SettingsUpdater({ 20 typedef void SettingsUpdater({
20 StockMode optimism, 21 StockMode optimism,
21 BackupMode backup 22 BackupMode backup
22 }); 23 });
23 24
24 class StockSettings extends StatefulComponent { 25 class StockSettings extends StatefulComponent {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 ); 85 );
85 } 86 }
86 87
87 Widget buildSettingsPane() { 88 Widget buildSettingsPane() {
88 // TODO(ianh): Once we have the gesture API hooked up, fix https://github.co m/domokit/mojo/issues/281 89 // TODO(ianh): Once we have the gesture API hooked up, fix https://github.co m/domokit/mojo/issues/281
89 // (whereby tapping the widgets below causes both the widget and the menu it em to fire their callbacks) 90 // (whereby tapping the widgets below causes both the widget and the menu it em to fire their callbacks)
90 return new Material( 91 return new Material(
91 type: MaterialType.canvas, 92 type: MaterialType.canvas,
92 child: new Container( 93 child: new Container(
93 padding: const EdgeDims.symmetric(vertical: 20.0), 94 padding: const EdgeDims.symmetric(vertical: 20.0),
94 child: new Block([ 95 child: new ScrollableViewport(
95 new MenuItem( 96 child: new Block([
abarth-chromium 2015/07/09 23:39:34 We should combine these into a ScrollableBlock
96 icon: 'action/thumb_up', 97 new MenuItem(
97 onPressed: () => _confirmOptimismChange(), 98 icon: 'action/thumb_up',
98 children: [ 99 onPressed: () => _confirmOptimismChange(),
99 new Flexible(child: new Text('Everything is awesome')), 100 children: [
100 new Checkbox(value: optimism == StockMode.optimistic, onChanged: _ handleOptimismChanged) 101 new Flexible(child: new Text('Everything is awesome')),
101 ] 102 new Checkbox(value: optimism == StockMode.optimistic, onChanged: _handleOptimismChanged)
102 ), 103 ]
103 new MenuItem( 104 ),
104 icon: 'action/backup', 105 new MenuItem(
105 onPressed: () { _handleBackupChanged(!(backup == BackupMode.enabled) ); }, 106 icon: 'action/backup',
106 children: [ 107 onPressed: () { _handleBackupChanged(!(backup == BackupMode.enable d)); },
107 new Flexible(child: new Text('Back up stock list to the cloud')), 108 children: [
108 new Switch(value: backup == BackupMode.enabled, onChanged: _handle BackupChanged) 109 new Flexible(child: new Text('Back up stock list to the cloud')) ,
109 ] 110 new Switch(value: backup == BackupMode.enabled, onChanged: _hand leBackupChanged)
110 ), 111 ]
111 ]) 112 ),
113 ])
114 )
112 ) 115 )
113 ); 116 );
114 } 117 }
115 118
116 Widget build() { 119 Widget build() {
117 List<Widget> layers = [ 120 List<Widget> layers = [
118 new Scaffold( 121 new Scaffold(
119 toolbar: buildToolBar(), 122 toolbar: buildToolBar(),
120 body: buildSettingsPane() 123 body: buildSettingsPane()
121 ) 124 )
(...skipping 14 matching lines...) Expand all
136 _handleOptimismChanged(true); 139 _handleOptimismChanged(true);
137 navigator.pop(); 140 navigator.pop();
138 } 141 }
139 ), 142 ),
140 ] 143 ]
141 )); 144 ));
142 } 145 }
143 return new Stack(layers); 146 return new Stack(layers);
144 } 147 }
145 } 148 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698