| OLD | NEW |
| 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 'dart:math' as math; | 5 import 'dart:math' as math; |
| 6 | 6 |
| 7 import 'package:sky/rendering/box.dart'; | 7 import 'package:sky/rendering/box.dart'; |
| 8 import 'package:sky/rendering/flex.dart'; | 8 import 'package:sky/rendering/flex.dart'; |
| 9 import 'package:sky/rendering/sky_binding.dart'; | 9 import 'package:sky/rendering/sky_binding.dart'; |
| 10 import 'package:sky/widgets/basic.dart'; | 10 import 'package:sky/widgets/basic.dart'; |
| 11 import 'package:sky/widgets/material.dart'; | 11 import 'package:sky/widgets/material.dart'; |
| 12 import 'package:sky/widgets/raised_button.dart'; | 12 import 'package:sky/widgets/raised_button.dart'; |
| 13 import 'package:sky/widgets/scaffold.dart'; | 13 import 'package:sky/widgets/scaffold.dart'; |
| 14 import 'package:sky/widgets/task_description.dart'; |
| 14 import 'package:sky/widgets/theme.dart'; | 15 import 'package:sky/widgets/theme.dart'; |
| 15 import 'package:sky/widgets/tool_bar.dart'; | 16 import 'package:sky/widgets/tool_bar.dart'; |
| 16 import 'package:sky/widgets/widget.dart'; | 17 import 'package:sky/widgets/widget.dart'; |
| 17 | 18 |
| 18 import '../rendering/sector_layout.dart'; | 19 import '../rendering/sector_layout.dart'; |
| 19 | 20 |
| 20 RenderBox initCircle() { | 21 RenderBox initCircle() { |
| 21 return new RenderBoxToRenderSectorAdapter( | 22 return new RenderBoxToRenderSectorAdapter( |
| 22 innerRadius: 25.0, | 23 innerRadius: 25.0, |
| 23 child: new RenderSectorRing(padding: 0.0) | 24 child: new RenderSectorRing(padding: 0.0) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 bool enabledRemove = false; | 65 bool enabledRemove = false; |
| 65 void updateEnabledState() { | 66 void updateEnabledState() { |
| 66 setState(() { | 67 setState(() { |
| 67 var ring = (sectors.child as RenderSectorRing); | 68 var ring = (sectors.child as RenderSectorRing); |
| 68 SectorDimensions currentSize = ring.getIntrinsicDimensions(const SectorCon
straints(), ring.deltaRadius); | 69 SectorDimensions currentSize = ring.getIntrinsicDimensions(const SectorCon
straints(), ring.deltaRadius); |
| 69 enabledAdd = currentSize.deltaTheta < kTwoPi; | 70 enabledAdd = currentSize.deltaTheta < kTwoPi; |
| 70 enabledRemove = ring.firstChild != null; | 71 enabledRemove = ring.firstChild != null; |
| 71 }); | 72 }); |
| 72 } | 73 } |
| 73 | 74 |
| 75 Widget buildBody() { |
| 76 return new Material( |
| 77 type: MaterialType.canvas, |
| 78 child: new Flex([ |
| 79 new Container( |
| 80 padding: new EdgeDims.symmetric(horizontal: 8.0, vertical: 25.0), |
| 81 child: new Flex([ |
| 82 new RaisedButton( |
| 83 enabled: enabledAdd, |
| 84 child: new ShrinkWrapWidth( |
| 85 child: new Flex([ |
| 86 new Container( |
| 87 padding: new EdgeDims.all(4.0), |
| 88 margin: new EdgeDims.only(right: 10.0), |
| 89 child: new WidgetToRenderBoxAdapter(sectorAddIcon) |
| 90 ), |
| 91 new Text('ADD SECTOR'), |
| 92 ]) |
| 93 ), |
| 94 onPressed: addSector |
| 95 ), |
| 96 new RaisedButton( |
| 97 enabled: enabledRemove, |
| 98 child: new ShrinkWrapWidth( |
| 99 child: new Flex([ |
| 100 new Container( |
| 101 padding: new EdgeDims.all(4.0), |
| 102 margin: new EdgeDims.only(right: 10.0), |
| 103 child: new WidgetToRenderBoxAdapter(sectorRemoveIcon) |
| 104 ), |
| 105 new Text('REMOVE SECTOR'), |
| 106 ]) |
| 107 ), |
| 108 onPressed: removeSector |
| 109 ) |
| 110 ], |
| 111 justifyContent: FlexJustifyContent.spaceAround |
| 112 ) |
| 113 ), |
| 114 new Flexible( |
| 115 child: new Container( |
| 116 margin: new EdgeDims.all(8.0), |
| 117 decoration: new BoxDecoration( |
| 118 border: new Border.all(new BorderSide(color: new Color(0xFF00000
0))) |
| 119 ), |
| 120 padding: new EdgeDims.all(8.0), |
| 121 child: new WidgetToRenderBoxAdapter(sectors) |
| 122 ) |
| 123 ), |
| 124 ], |
| 125 direction: FlexDirection.vertical, |
| 126 justifyContent: FlexJustifyContent.spaceBetween |
| 127 ) |
| 128 ); |
| 129 } |
| 130 |
| 74 Widget build() { | 131 Widget build() { |
| 75 return new Theme( | 132 return new Theme( |
| 76 data: new ThemeData.light(), | 133 data: new ThemeData.light(), |
| 77 child: new Scaffold( | 134 child: new TaskDescription( |
| 78 toolbar: new ToolBar( | 135 label: 'Sector Layout', |
| 79 center: new Text('Sector Layout in a Widget Tree')), | 136 child: new Scaffold( |
| 80 body: new Material( | 137 toolbar: new ToolBar( |
| 81 type: MaterialType.canvas, | 138 center: new Text('Sector Layout in a Widget Tree') |
| 82 child: new Flex([ | 139 ), |
| 83 new Container( | 140 body: buildBody() |
| 84 padding: new EdgeDims.symmetric(horizontal: 8.0, vertical: 25.0)
, | |
| 85 child: new Flex([ | |
| 86 new RaisedButton( | |
| 87 enabled: enabledAdd, | |
| 88 child: new ShrinkWrapWidth( | |
| 89 child: new Flex([ | |
| 90 new Container( | |
| 91 padding: new EdgeDims.all(4.0), | |
| 92 margin: new EdgeDims.only(right: 10.0), | |
| 93 child: new WidgetToRenderBoxAdapter(sectorAddIcon) | |
| 94 ), | |
| 95 new Text('ADD SECTOR'), | |
| 96 ]) | |
| 97 ), | |
| 98 onPressed: addSector | |
| 99 ), | |
| 100 new RaisedButton( | |
| 101 enabled: enabledRemove, | |
| 102 child: new ShrinkWrapWidth( | |
| 103 child: new Flex([ | |
| 104 new Container( | |
| 105 padding: new EdgeDims.all(4.0), | |
| 106 margin: new EdgeDims.only(right: 10.0), | |
| 107 child: new WidgetToRenderBoxAdapter(sectorRemoveIcon
) | |
| 108 ), | |
| 109 new Text('REMOVE SECTOR'), | |
| 110 ]) | |
| 111 ), | |
| 112 onPressed: removeSector | |
| 113 ) | |
| 114 ], | |
| 115 justifyContent: FlexJustifyContent.spaceAround | |
| 116 ) | |
| 117 ), | |
| 118 new Flexible( | |
| 119 child: new Container( | |
| 120 margin: new EdgeDims.all(8.0), | |
| 121 decoration: new BoxDecoration( | |
| 122 border: new Border.all(new BorderSide(color: new Color(0xFF0
00000))) | |
| 123 ), | |
| 124 padding: new EdgeDims.all(8.0), | |
| 125 child: new WidgetToRenderBoxAdapter(sectors) | |
| 126 ) | |
| 127 ), | |
| 128 ], | |
| 129 direction: FlexDirection.vertical, | |
| 130 justifyContent: FlexJustifyContent.spaceBetween | |
| 131 ) | |
| 132 ) | 141 ) |
| 133 ) | 142 ) |
| 134 ); | 143 ); |
| 135 } | 144 } |
| 136 } | 145 } |
| 137 | 146 |
| 138 void main() { | 147 void main() { |
| 139 runApp(new SectorApp()); | 148 runApp(new SectorApp()); |
| 140 SkyBinding.instance.onFrame = () { | 149 SkyBinding.instance.onFrame = () { |
| 141 // uncomment this for debugging: | 150 // uncomment this for debugging: |
| 142 // SkyBinding.instance.debugDumpRenderTree(); | 151 // SkyBinding.instance.debugDumpRenderTree(); |
| 143 }; | 152 }; |
| 144 } | 153 } |
| OLD | NEW |