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:sky' as sky; | 5 import 'dart:sky' as sky; |
6 | 6 |
7 import 'package:sky/app/scheduler.dart'; | 7 import 'package:sky/app/scheduler.dart'; |
8 import 'package:sky/rendering/box.dart'; | 8 import 'package:sky/rendering/box.dart'; |
9 import 'package:sky/rendering/flex.dart'; | 9 import 'package:sky/rendering/flex.dart'; |
10 import 'package:sky/widgets/basic.dart'; | 10 import 'package:sky/widgets/basic.dart'; |
11 import 'package:sky/widgets/raised_button.dart'; | 11 import 'package:sky/widgets/raised_button.dart'; |
12 import 'package:sky/widgets/ui_node.dart'; | 12 import 'package:sky/widgets/widget.dart'; |
13 import 'package:vector_math/vector_math.dart'; | 13 import 'package:vector_math/vector_math.dart'; |
14 | 14 |
15 import '../lib/solid_color_box.dart'; | 15 import '../lib/solid_color_box.dart'; |
16 import '../../tests/resources/display_list.dart'; | 16 import '../../tests/resources/display_list.dart'; |
17 | 17 |
18 // Solid colour, RenderObject version | 18 // Solid colour, RenderObject version |
19 void addFlexChildSolidColor(RenderFlex parent, sky.Color backgroundColor, { int
flex: 0 }) { | 19 void addFlexChildSolidColor(RenderFlex parent, sky.Color backgroundColor, { int
flex: 0 }) { |
20 RenderSolidColorBox child = new RenderSolidColorBox(backgroundColor); | 20 RenderSolidColorBox child = new RenderSolidColorBox(backgroundColor); |
21 parent.add(child); | 21 parent.add(child); |
22 child.parentData.flex = flex; | 22 child.parentData.flex = flex; |
23 } | 23 } |
24 | 24 |
25 // Solid colour, Widget version | 25 // Solid colour, Widget version |
26 class Rectangle extends Component { | 26 class Rectangle extends Component { |
27 Rectangle(this.color, { String key }) : super(key: key); | 27 Rectangle(this.color, { String key }) : super(key: key); |
28 final Color color; | 28 final Color color; |
29 UINode build() { | 29 Widget build() { |
30 return new Flexible( | 30 return new Flexible( |
31 child: new Container( | 31 child: new Container( |
32 decoration: new BoxDecoration(backgroundColor: color) | 32 decoration: new BoxDecoration(backgroundColor: color) |
33 ) | 33 ) |
34 ); | 34 ); |
35 } | 35 } |
36 } | 36 } |
37 | 37 |
38 UINode builder() { | 38 Widget builder() { |
39 return new Flex([ | 39 return new Flex([ |
40 new Rectangle(const Color(0xFF00FFFF), key: 'a'), | 40 new Rectangle(const Color(0xFF00FFFF), key: 'a'), |
41 new Container( | 41 new Container( |
42 padding: new EdgeDims.all(10.0), | 42 padding: new EdgeDims.all(10.0), |
43 margin: new EdgeDims.all(10.0), | 43 margin: new EdgeDims.all(10.0), |
44 decoration: new BoxDecoration(backgroundColor: const Color(0xFFCCCCCC)), | 44 decoration: new BoxDecoration(backgroundColor: const Color(0xFFCCCCCC)), |
45 child: new RaisedButton( | 45 child: new RaisedButton( |
46 child: new Flex([ | 46 child: new Flex([ |
47 new Image(src: "https://www.dartlang.org/logos/dart-logo.png"), | 47 new Image(src: "https://www.dartlang.org/logos/dart-logo.png"), |
48 new Text('PRESS ME'), | 48 new Text('PRESS ME'), |
(...skipping 18 matching lines...) Expand all Loading... |
67 timeBase = timeStamp; | 67 timeBase = timeStamp; |
68 double delta = (timeStamp - timeBase) / 1000; // radians | 68 double delta = (timeStamp - timeBase) / 1000; // radians |
69 | 69 |
70 transformBox.setIdentity(); | 70 transformBox.setIdentity(); |
71 transformBox.translate(transformBox.size.width / 2.0, transformBox.size.height
/ 2.0); | 71 transformBox.translate(transformBox.size.width / 2.0, transformBox.size.height
/ 2.0); |
72 transformBox.rotateZ(delta); | 72 transformBox.rotateZ(delta); |
73 transformBox.translate(-transformBox.size.width / 2.0, -transformBox.size.heig
ht / 2.0); | 73 transformBox.translate(-transformBox.size.width / 2.0, -transformBox.size.heig
ht / 2.0); |
74 } | 74 } |
75 | 75 |
76 void main() { | 76 void main() { |
77 // Because we're going to use UINodes, we want to initialise its | 77 // Because we're going to use Widgets, we want to initialise its |
78 // AppView, not use the default one. We don't really need to do | 78 // AppView, not use the default one. We don't really need to do |
79 // this, because RenderBoxToUINodeAdapter does it for us, but | 79 // this, because RenderBoxToWidgetAdapter does it for us, but |
80 // it's good practice in case we happen to not have a | 80 // it's good practice in case we happen to not have a |
81 // RenderBoxToUINodeAdapter in our tree at startup, or in case we | 81 // RenderBoxToWidgetAdapter in our tree at startup, or in case we |
82 // want a renderViewOverride. | 82 // want a renderViewOverride. |
83 UINodeAppView.initUINodeAppView(); | 83 WidgetAppView.initWidgetAppView(); |
84 | 84 |
85 RenderFlex flexRoot = new RenderFlex(direction: FlexDirection.vertical); | 85 RenderFlex flexRoot = new RenderFlex(direction: FlexDirection.vertical); |
86 | 86 |
87 RenderProxyBox proxy = new RenderProxyBox(); | 87 RenderProxyBox proxy = new RenderProxyBox(); |
88 new RenderBoxToUINodeAdapter(proxy, builder); // adds itself to proxy | 88 new RenderBoxToWidgetAdapter(proxy, builder); // adds itself to proxy |
89 | 89 |
90 addFlexChildSolidColor(flexRoot, const sky.Color(0xFFFF00FF), flex: 1); | 90 addFlexChildSolidColor(flexRoot, const sky.Color(0xFFFF00FF), flex: 1); |
91 flexRoot.add(proxy); | 91 flexRoot.add(proxy); |
92 addFlexChildSolidColor(flexRoot, const sky.Color(0xFF0000FF), flex: 1); | 92 addFlexChildSolidColor(flexRoot, const sky.Color(0xFF0000FF), flex: 1); |
93 | 93 |
94 transformBox = new RenderTransform(child: flexRoot, transform: new Matrix4.ide
ntity()); | 94 transformBox = new RenderTransform(child: flexRoot, transform: new Matrix4.ide
ntity()); |
95 RenderPadding root = new RenderPadding(padding: new EdgeDims.all(20.0), child:
transformBox); | 95 RenderPadding root = new RenderPadding(padding: new EdgeDims.all(20.0), child:
transformBox); |
96 | 96 |
97 UINodeAppView.appView.root = root; | 97 WidgetAppView.appView.root = root; |
98 addPersistentFrameCallback(rotate); | 98 addPersistentFrameCallback(rotate); |
99 } | 99 } |
OLD | NEW |