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