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 '../painting/box_painter.dart'; |
| 6 import '../theme2/colors.dart'; |
| 7 import '../theme2/edges.dart'; |
| 8 import '../theme2/shadows.dart'; |
5 import 'wrappers.dart'; | 9 import 'wrappers.dart'; |
6 | 10 |
7 class Material extends Component { | 11 class Material extends Component { |
8 | 12 |
9 Material({ Object key, this.content, this.level: 0 }) : super(key: key); | 13 Material({ |
| 14 Object key, |
| 15 this.child, |
| 16 this.edge: MaterialEdge.card, |
| 17 this.level: 0, |
| 18 this.color |
| 19 }) : super(key: key); |
10 | 20 |
11 // static final List<Style> _shadowStyle = [ | 21 final UINode child; |
12 // null, | 22 final int level; |
13 // new Style('box-shadow: ${Shadow[1]}'), | 23 final MaterialEdge edge; |
14 // new Style('box-shadow: ${Shadow[2]}'), | 24 final Color color; |
15 // new Style('box-shadow: ${Shadow[3]}'), | |
16 // new Style('box-shadow: ${Shadow[4]}'), | |
17 // new Style('box-shadow: ${Shadow[5]}'), | |
18 // ]; | |
19 | 25 |
20 final UINode content; | 26 // TODO(ianh): we should make this animate level changes and color changes |
21 final int level; | |
22 | 27 |
23 UINode build() { | 28 UINode build() { |
24 // TODO(eseidel): Add a shadow. | 29 return new Container( |
25 // return new StyleNode(content, _shadowStyle[level]); | 30 decoration: new BoxDecoration( |
26 return content; | 31 boxShadow: shadows[level], |
| 32 borderRadius: edges[edge], |
| 33 backgroundColor: color == null ? Grey[50] : color, |
| 34 shape: edge == MaterialEdge.circle ? Shape.circle : Shape.rectangle |
| 35 ), |
| 36 child: child |
| 37 ); |
27 } | 38 } |
28 | 39 |
29 } | 40 } |
OLD | NEW |