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 'package:vector_math/vector_math.dart'; | 5 import 'package:vector_math/vector_math.dart'; |
6 | 6 |
7 import '../rendering/block.dart'; | 7 import '../rendering/block.dart'; |
8 import '../rendering/box.dart'; | 8 import '../rendering/box.dart'; |
9 import '../rendering/flex.dart'; | 9 import '../rendering/flex.dart'; |
10 import '../rendering/object.dart'; | 10 import '../rendering/object.dart'; |
11 import '../rendering/paragraph.dart'; | 11 import '../rendering/paragraph.dart'; |
12 import '../rendering/stack.dart'; | 12 import '../rendering/stack.dart'; |
13 import 'ui_node.dart'; | 13 import 'widget.dart'; |
14 | 14 |
15 export '../rendering/box.dart' show BoxConstraints, BoxDecoration, Border, Borde
rSide, EdgeDims; | 15 export '../rendering/box.dart' show BoxConstraints, BoxDecoration, Border, Borde
rSide, EdgeDims; |
16 export '../rendering/flex.dart' show FlexDirection, FlexJustifyContent, FlexAlig
nItems; | 16 export '../rendering/flex.dart' show FlexDirection, FlexJustifyContent, FlexAlig
nItems; |
17 export '../rendering/object.dart' show Point, Size, Rect, Color, Paint, Path; | 17 export '../rendering/object.dart' show Point, Size, Rect, Color, Paint, Path; |
18 export 'ui_node.dart' show UINode, Component, App, EventListenerNode, ParentData
Node; | 18 export 'widget.dart' show Widget, Component, App, EventListenerNode, ParentDataN
ode; |
19 | 19 |
20 | 20 |
21 // PAINTING NODES | 21 // PAINTING NODES |
22 | 22 |
23 class Opacity extends OneChildRenderObjectWrapper { | 23 class Opacity extends OneChildRenderObjectWrapper { |
24 Opacity({ String key, this.opacity, UINode child }) | 24 Opacity({ String key, this.opacity, Widget child }) |
25 : super(key: key, child: child); | 25 : super(key: key, child: child); |
26 | 26 |
27 RenderOpacity get root => super.root; | 27 RenderOpacity get root => super.root; |
28 final double opacity; | 28 final double opacity; |
29 | 29 |
30 RenderOpacity createNode() => new RenderOpacity(opacity: opacity); | 30 RenderOpacity createNode() => new RenderOpacity(opacity: opacity); |
31 | 31 |
32 void syncRenderObject(Opacity old) { | 32 void syncRenderObject(Opacity old) { |
33 super.syncRenderObject(old); | 33 super.syncRenderObject(old); |
34 root.opacity = opacity; | 34 root.opacity = opacity; |
35 } | 35 } |
36 } | 36 } |
37 | 37 |
38 class DecoratedBox extends OneChildRenderObjectWrapper { | 38 class DecoratedBox extends OneChildRenderObjectWrapper { |
39 | 39 |
40 DecoratedBox({ String key, this.decoration, UINode child }) | 40 DecoratedBox({ String key, this.decoration, Widget child }) |
41 : super(key: key, child: child); | 41 : super(key: key, child: child); |
42 | 42 |
43 RenderDecoratedBox get root => super.root; | 43 RenderDecoratedBox get root => super.root; |
44 final BoxDecoration decoration; | 44 final BoxDecoration decoration; |
45 | 45 |
46 RenderDecoratedBox createNode() => new RenderDecoratedBox(decoration: decorati
on); | 46 RenderDecoratedBox createNode() => new RenderDecoratedBox(decoration: decorati
on); |
47 | 47 |
48 void syncRenderObject(DecoratedBox old) { | 48 void syncRenderObject(DecoratedBox old) { |
49 super.syncRenderObject(old); | 49 super.syncRenderObject(old); |
50 root.decoration = decoration; | 50 root.decoration = decoration; |
51 } | 51 } |
52 | 52 |
53 } | 53 } |
54 | 54 |
55 class CustomPaint extends OneChildRenderObjectWrapper { | 55 class CustomPaint extends OneChildRenderObjectWrapper { |
56 | 56 |
57 CustomPaint({ String key, this.callback, this.token, UINode child }) | 57 CustomPaint({ String key, this.callback, this.token, Widget child }) |
58 : super(key: key, child: child); | 58 : super(key: key, child: child); |
59 | 59 |
60 RenderCustomPaint get root => super.root; | 60 RenderCustomPaint get root => super.root; |
61 final CustomPaintCallback callback; | 61 final CustomPaintCallback callback; |
62 final dynamic token; // set this to be repainted automatically when the token
changes | 62 final dynamic token; // set this to be repainted automatically when the token
changes |
63 | 63 |
64 RenderCustomPaint createNode() => new RenderCustomPaint(callback: callback); | 64 RenderCustomPaint createNode() => new RenderCustomPaint(callback: callback); |
65 | 65 |
66 void syncRenderObject(CustomPaint old) { | 66 void syncRenderObject(CustomPaint old) { |
67 super.syncRenderObject(old); | 67 super.syncRenderObject(old); |
68 if (old != null && old.token != token) | 68 if (old != null && old.token != token) |
69 root.markNeedsPaint(); | 69 root.markNeedsPaint(); |
70 root.callback = callback; | 70 root.callback = callback; |
71 } | 71 } |
72 | 72 |
73 void remove() { | 73 void remove() { |
74 root.callback = null; | 74 root.callback = null; |
75 super.remove(); | 75 super.remove(); |
76 } | 76 } |
77 | 77 |
78 } | 78 } |
79 | 79 |
80 class ClipRect extends OneChildRenderObjectWrapper { | 80 class ClipRect extends OneChildRenderObjectWrapper { |
81 ClipRect({ String key, UINode child }) | 81 ClipRect({ String key, Widget child }) |
82 : super(key: key, child: child); | 82 : super(key: key, child: child); |
83 | 83 |
84 RenderClipRect get root => super.root; | 84 RenderClipRect get root => super.root; |
85 RenderClipRect createNode() => new RenderClipRect(); | 85 RenderClipRect createNode() => new RenderClipRect(); |
86 } | 86 } |
87 | 87 |
88 class ClipOval extends OneChildRenderObjectWrapper { | 88 class ClipOval extends OneChildRenderObjectWrapper { |
89 ClipOval({ String key, UINode child }) | 89 ClipOval({ String key, Widget child }) |
90 : super(key: key, child: child); | 90 : super(key: key, child: child); |
91 | 91 |
92 RenderClipOval get root => super.root; | 92 RenderClipOval get root => super.root; |
93 RenderClipOval createNode() => new RenderClipOval(); | 93 RenderClipOval createNode() => new RenderClipOval(); |
94 } | 94 } |
95 | 95 |
96 | 96 |
97 // POSITIONING AND SIZING NODES | 97 // POSITIONING AND SIZING NODES |
98 | 98 |
99 class Transform extends OneChildRenderObjectWrapper { | 99 class Transform extends OneChildRenderObjectWrapper { |
100 | 100 |
101 Transform({ String key, this.transform, UINode child }) | 101 Transform({ String key, this.transform, Widget child }) |
102 : super(key: key, child: child); | 102 : super(key: key, child: child); |
103 | 103 |
104 RenderTransform get root => super.root; | 104 RenderTransform get root => super.root; |
105 final Matrix4 transform; | 105 final Matrix4 transform; |
106 | 106 |
107 RenderTransform createNode() => new RenderTransform(transform: transform); | 107 RenderTransform createNode() => new RenderTransform(transform: transform); |
108 | 108 |
109 void syncRenderObject(Transform old) { | 109 void syncRenderObject(Transform old) { |
110 super.syncRenderObject(old); | 110 super.syncRenderObject(old); |
111 root.transform = transform; | 111 root.transform = transform; |
112 } | 112 } |
113 | 113 |
114 } | 114 } |
115 | 115 |
116 class Padding extends OneChildRenderObjectWrapper { | 116 class Padding extends OneChildRenderObjectWrapper { |
117 | 117 |
118 Padding({ String key, this.padding, UINode child }) | 118 Padding({ String key, this.padding, Widget child }) |
119 : super(key: key, child: child); | 119 : super(key: key, child: child); |
120 | 120 |
121 RenderPadding get root => super.root; | 121 RenderPadding get root => super.root; |
122 final EdgeDims padding; | 122 final EdgeDims padding; |
123 | 123 |
124 RenderPadding createNode() => new RenderPadding(padding: padding); | 124 RenderPadding createNode() => new RenderPadding(padding: padding); |
125 | 125 |
126 void syncRenderObject(Padding old) { | 126 void syncRenderObject(Padding old) { |
127 super.syncRenderObject(old); | 127 super.syncRenderObject(old); |
128 root.padding = padding; | 128 root.padding = padding; |
129 } | 129 } |
130 | 130 |
131 } | 131 } |
132 | 132 |
133 class Center extends OneChildRenderObjectWrapper { | 133 class Center extends OneChildRenderObjectWrapper { |
134 Center({ String key, UINode child }) | 134 Center({ String key, Widget child }) |
135 : super(key: key, child: child); | 135 : super(key: key, child: child); |
136 | 136 |
137 RenderPositionedBox get root => super.root; | 137 RenderPositionedBox get root => super.root; |
138 RenderPositionedBox createNode() => new RenderPositionedBox(); | 138 RenderPositionedBox createNode() => new RenderPositionedBox(); |
139 } | 139 } |
140 | 140 |
141 class SizedBox extends OneChildRenderObjectWrapper { | 141 class SizedBox extends OneChildRenderObjectWrapper { |
142 | 142 |
143 SizedBox({ | 143 SizedBox({ |
144 String key, | 144 String key, |
145 this.width, | 145 this.width, |
146 this.height, | 146 this.height, |
147 UINode child | 147 Widget child |
148 }) : super(key: key, child: child); | 148 }) : super(key: key, child: child); |
149 | 149 |
150 RenderConstrainedBox get root => super.root; | 150 RenderConstrainedBox get root => super.root; |
151 | 151 |
152 final double width; | 152 final double width; |
153 final double height; | 153 final double height; |
154 | 154 |
155 RenderConstrainedBox createNode() => new RenderConstrainedBox(additionalConstr
aints: _additionalConstraints()); | 155 RenderConstrainedBox createNode() => new RenderConstrainedBox(additionalConstr
aints: _additionalConstraints()); |
156 | 156 |
157 BoxConstraints _additionalConstraints() { | 157 BoxConstraints _additionalConstraints() { |
158 var result = const BoxConstraints(); | 158 var result = const BoxConstraints(); |
159 if (width != null) | 159 if (width != null) |
160 result = result.applyWidth(width); | 160 result = result.applyWidth(width); |
161 if (height != null) | 161 if (height != null) |
162 result = result.applyHeight(height); | 162 result = result.applyHeight(height); |
163 return result; | 163 return result; |
164 } | 164 } |
165 | 165 |
166 void syncRenderObject(SizedBox old) { | 166 void syncRenderObject(SizedBox old) { |
167 super.syncRenderObject(old); | 167 super.syncRenderObject(old); |
168 root.additionalConstraints = _additionalConstraints(); | 168 root.additionalConstraints = _additionalConstraints(); |
169 } | 169 } |
170 | 170 |
171 } | 171 } |
172 | 172 |
173 class ConstrainedBox extends OneChildRenderObjectWrapper { | 173 class ConstrainedBox extends OneChildRenderObjectWrapper { |
174 | 174 |
175 ConstrainedBox({ String key, this.constraints, UINode child }) | 175 ConstrainedBox({ String key, this.constraints, Widget child }) |
176 : super(key: key, child: child); | 176 : super(key: key, child: child); |
177 | 177 |
178 RenderConstrainedBox get root => super.root; | 178 RenderConstrainedBox get root => super.root; |
179 | 179 |
180 final BoxConstraints constraints; | 180 final BoxConstraints constraints; |
181 | 181 |
182 RenderConstrainedBox createNode() => new RenderConstrainedBox(additionalConstr
aints: constraints); | 182 RenderConstrainedBox createNode() => new RenderConstrainedBox(additionalConstr
aints: constraints); |
183 | 183 |
184 void syncRenderObject(ConstrainedBox old) { | 184 void syncRenderObject(ConstrainedBox old) { |
185 super.syncRenderObject(old); | 185 super.syncRenderObject(old); |
186 root.additionalConstraints = constraints; | 186 root.additionalConstraints = constraints; |
187 } | 187 } |
188 | 188 |
189 } | 189 } |
190 | 190 |
191 class ShrinkWrapWidth extends OneChildRenderObjectWrapper { | 191 class ShrinkWrapWidth extends OneChildRenderObjectWrapper { |
192 ShrinkWrapWidth({ String key, UINode child }) | 192 ShrinkWrapWidth({ String key, Widget child }) |
193 : super(key: key, child: child); | 193 : super(key: key, child: child); |
194 | 194 |
195 RenderShrinkWrapWidth get root => super.root; | 195 RenderShrinkWrapWidth get root => super.root; |
196 RenderShrinkWrapWidth createNode() => new RenderShrinkWrapWidth(); | 196 RenderShrinkWrapWidth createNode() => new RenderShrinkWrapWidth(); |
197 } | 197 } |
198 | 198 |
199 class SizeObserver extends OneChildRenderObjectWrapper { | 199 class SizeObserver extends OneChildRenderObjectWrapper { |
200 | 200 |
201 SizeObserver({ String key, this.callback, UINode child }) | 201 SizeObserver({ String key, this.callback, Widget child }) |
202 : super(key: key, child: child); | 202 : super(key: key, child: child); |
203 | 203 |
204 RenderSizeObserver get root => super.root; | 204 RenderSizeObserver get root => super.root; |
205 final SizeChangedCallback callback; | 205 final SizeChangedCallback callback; |
206 | 206 |
207 RenderSizeObserver createNode() => new RenderSizeObserver(callback: callback); | 207 RenderSizeObserver createNode() => new RenderSizeObserver(callback: callback); |
208 | 208 |
209 void syncRenderObject(SizeObserver old) { | 209 void syncRenderObject(SizeObserver old) { |
210 super.syncRenderObject(old); | 210 super.syncRenderObject(old); |
211 root.callback = callback; | 211 root.callback = callback; |
(...skipping 16 matching lines...) Expand all Loading... |
228 this.child, | 228 this.child, |
229 this.constraints, | 229 this.constraints, |
230 this.decoration, | 230 this.decoration, |
231 this.width, | 231 this.width, |
232 this.height, | 232 this.height, |
233 this.margin, | 233 this.margin, |
234 this.padding, | 234 this.padding, |
235 this.transform | 235 this.transform |
236 }) : super(key: key); | 236 }) : super(key: key); |
237 | 237 |
238 final UINode child; | 238 final Widget child; |
239 final BoxConstraints constraints; | 239 final BoxConstraints constraints; |
240 final BoxDecoration decoration; | 240 final BoxDecoration decoration; |
241 final EdgeDims margin; | 241 final EdgeDims margin; |
242 final EdgeDims padding; | 242 final EdgeDims padding; |
243 final Matrix4 transform; | 243 final Matrix4 transform; |
244 final double width; | 244 final double width; |
245 final double height; | 245 final double height; |
246 | 246 |
247 UINode build() { | 247 Widget build() { |
248 UINode current = child; | 248 Widget current = child; |
249 | 249 |
250 if (child == null && width == null && height == null) | 250 if (child == null && width == null && height == null) |
251 current = new SizedBox( | 251 current = new SizedBox( |
252 width: double.INFINITY, | 252 width: double.INFINITY, |
253 height: double.INFINITY | 253 height: double.INFINITY |
254 ); | 254 ); |
255 | 255 |
256 if (padding != null) | 256 if (padding != null) |
257 current = new Padding(padding: padding, child: current); | 257 current = new Padding(padding: padding, child: current); |
258 | 258 |
(...skipping 18 matching lines...) Expand all Loading... |
277 | 277 |
278 return current; | 278 return current; |
279 } | 279 } |
280 | 280 |
281 } | 281 } |
282 | 282 |
283 | 283 |
284 // LAYOUT NODES | 284 // LAYOUT NODES |
285 | 285 |
286 class Block extends MultiChildRenderObjectWrapper { | 286 class Block extends MultiChildRenderObjectWrapper { |
287 Block(List<UINode> children, { String key }) | 287 Block(List<Widget> children, { String key }) |
288 : super(key: key, children: children); | 288 : super(key: key, children: children); |
289 | 289 |
290 RenderBlock get root => super.root; | 290 RenderBlock get root => super.root; |
291 RenderBlock createNode() => new RenderBlock(); | 291 RenderBlock createNode() => new RenderBlock(); |
292 } | 292 } |
293 | 293 |
294 class Stack extends MultiChildRenderObjectWrapper { | 294 class Stack extends MultiChildRenderObjectWrapper { |
295 Stack(List<UINode> children, { String key }) | 295 Stack(List<Widget> children, { String key }) |
296 : super(key: key, children: children); | 296 : super(key: key, children: children); |
297 | 297 |
298 RenderStack get root => super.root; | 298 RenderStack get root => super.root; |
299 RenderStack createNode() => new RenderStack(); | 299 RenderStack createNode() => new RenderStack(); |
300 } | 300 } |
301 | 301 |
302 class Positioned extends ParentDataNode { | 302 class Positioned extends ParentDataNode { |
303 Positioned({ | 303 Positioned({ |
304 String key, | 304 String key, |
305 UINode child, | 305 Widget child, |
306 double top, | 306 double top, |
307 double right, | 307 double right, |
308 double bottom, | 308 double bottom, |
309 double left | 309 double left |
310 }) : super(child, | 310 }) : super(child, |
311 new StackParentData()..top = top | 311 new StackParentData()..top = top |
312 ..right = right | 312 ..right = right |
313 ..bottom = bottom | 313 ..bottom = bottom |
314 ..left = left, | 314 ..left = left, |
315 key: key); | 315 key: key); |
316 } | 316 } |
317 | 317 |
318 class Flex extends MultiChildRenderObjectWrapper { | 318 class Flex extends MultiChildRenderObjectWrapper { |
319 | 319 |
320 Flex(List<UINode> children, { | 320 Flex(List<Widget> children, { |
321 String key, | 321 String key, |
322 this.direction: FlexDirection.horizontal, | 322 this.direction: FlexDirection.horizontal, |
323 this.justifyContent: FlexJustifyContent.flexStart, | 323 this.justifyContent: FlexJustifyContent.flexStart, |
324 this.alignItems: FlexAlignItems.center | 324 this.alignItems: FlexAlignItems.center |
325 }) : super(key: key, children: children); | 325 }) : super(key: key, children: children); |
326 | 326 |
327 RenderFlex get root => super.root; | 327 RenderFlex get root => super.root; |
328 RenderFlex createNode() => new RenderFlex(direction: this.direction); | 328 RenderFlex createNode() => new RenderFlex(direction: this.direction); |
329 | 329 |
330 final FlexDirection direction; | 330 final FlexDirection direction; |
331 final FlexJustifyContent justifyContent; | 331 final FlexJustifyContent justifyContent; |
332 final FlexAlignItems alignItems; | 332 final FlexAlignItems alignItems; |
333 | 333 |
334 void syncRenderObject(UINode old) { | 334 void syncRenderObject(Widget old) { |
335 super.syncRenderObject(old); | 335 super.syncRenderObject(old); |
336 root.direction = direction; | 336 root.direction = direction; |
337 root.justifyContent = justifyContent; | 337 root.justifyContent = justifyContent; |
338 root.alignItems = alignItems; | 338 root.alignItems = alignItems; |
339 } | 339 } |
340 | 340 |
341 } | 341 } |
342 | 342 |
343 class Flexible extends ParentDataNode { | 343 class Flexible extends ParentDataNode { |
344 Flexible({ String key, UINode child, int flex: 1 }) | 344 Flexible({ String key, Widget child, int flex: 1 }) |
345 : super(child, new FlexBoxParentData()..flex = flex, key: key); | 345 : super(child, new FlexBoxParentData()..flex = flex, key: key); |
346 } | 346 } |
347 | 347 |
348 class Paragraph extends RenderObjectWrapper { | 348 class Paragraph extends RenderObjectWrapper { |
349 | 349 |
350 Paragraph({ String key, this.text, this.style }) : super(key: key); | 350 Paragraph({ String key, this.text, this.style }) : super(key: key); |
351 | 351 |
352 RenderParagraph get root => super.root; | 352 RenderParagraph get root => super.root; |
353 RenderParagraph createNode() => new RenderParagraph(text: text, style: style); | 353 RenderParagraph createNode() => new RenderParagraph(text: text, style: style); |
354 | 354 |
355 final String text; | 355 final String text; |
356 final TextStyle style; | 356 final TextStyle style; |
357 | 357 |
358 void syncRenderObject(UINode old) { | 358 void syncRenderObject(Widget old) { |
359 super.syncRenderObject(old); | 359 super.syncRenderObject(old); |
360 root.text = text; | 360 root.text = text; |
361 root.style = style; | 361 root.style = style; |
362 } | 362 } |
363 | 363 |
364 void insert(RenderObjectWrapper child, dynamic slot) { | 364 void insert(RenderObjectWrapper child, dynamic slot) { |
365 assert(false); | 365 assert(false); |
366 // Paragraph does not support having children currently | 366 // Paragraph does not support having children currently |
367 } | 367 } |
368 | 368 |
369 } | 369 } |
370 | 370 |
371 class Text extends Component { | 371 class Text extends Component { |
372 Text(this.data, { TextStyle this.style }) : super(key: '*text*'); | 372 Text(this.data, { TextStyle this.style }) : super(key: '*text*'); |
373 final String data; | 373 final String data; |
374 final TextStyle style; | 374 final TextStyle style; |
375 bool get interchangeable => true; | 375 bool get interchangeable => true; |
376 UINode build() => new Paragraph(text: data, style: style); | 376 Widget build() => new Paragraph(text: data, style: style); |
377 } | 377 } |
378 | 378 |
379 class Image extends RenderObjectWrapper { | 379 class Image extends RenderObjectWrapper { |
380 | 380 |
381 Image({ | 381 Image({ |
382 String key, | 382 String key, |
383 this.src, | 383 this.src, |
384 this.size | 384 this.size |
385 }) : super(key: key); | 385 }) : super(key: key); |
386 | 386 |
387 RenderImage get root => super.root; | 387 RenderImage get root => super.root; |
388 RenderImage createNode() => new RenderImage(this.src, this.size); | 388 RenderImage createNode() => new RenderImage(this.src, this.size); |
389 | 389 |
390 final String src; | 390 final String src; |
391 final Size size; | 391 final Size size; |
392 | 392 |
393 void syncRenderObject(UINode old) { | 393 void syncRenderObject(Widget old) { |
394 super.syncRenderObject(old); | 394 super.syncRenderObject(old); |
395 root.src = src; | 395 root.src = src; |
396 root.requestedSize = size; | 396 root.requestedSize = size; |
397 } | 397 } |
398 | 398 |
399 void insert(RenderObjectWrapper child, dynamic slot) { | 399 void insert(RenderObjectWrapper child, dynamic slot) { |
400 assert(false); | 400 assert(false); |
401 // Image does not support having children currently | 401 // Image does not support having children currently |
402 } | 402 } |
403 | 403 |
404 } | 404 } |
405 | 405 |
406 class UINodeToRenderBoxAdapter extends RenderObjectWrapper { | 406 class WidgetToRenderBoxAdapter extends RenderObjectWrapper { |
407 | 407 |
408 UINodeToRenderBoxAdapter(RenderBox renderBox) | 408 WidgetToRenderBoxAdapter(RenderBox renderBox) |
409 : this.renderBox = renderBox, | 409 : this.renderBox = renderBox, |
410 super(key: renderBox.hashCode.toString()); | 410 super(key: renderBox.hashCode.toString()); |
411 | 411 |
412 RenderBox get root => super.root; | 412 RenderBox get root => super.root; |
413 RenderBox createNode() => this.renderBox; | 413 RenderBox createNode() => this.renderBox; |
414 | 414 |
415 final RenderBox renderBox; | 415 final RenderBox renderBox; |
416 | 416 |
417 void syncRenderObject(UINode old) { | 417 void syncRenderObject(Widget old) { |
418 super.syncRenderObject(old); | 418 super.syncRenderObject(old); |
419 if (old != null) { | 419 if (old != null) { |
420 assert(old is UINodeToRenderBoxAdapter); | 420 assert(old is WidgetToRenderBoxAdapter); |
421 assert(root == old.renderBox); | 421 assert(root == old.renderBox); |
422 } | 422 } |
423 } | 423 } |
424 | 424 |
425 void insert(RenderObjectWrapper child, dynamic slot) { | 425 void insert(RenderObjectWrapper child, dynamic slot) { |
426 assert(false); | 426 assert(false); |
427 // UINodeToRenderBoxAdapter cannot have UINode children; by | 427 // WidgetToRenderBoxAdapter cannot have Widget children; by |
428 // definition, it is the transition out of the UINode world. | 428 // definition, it is the transition out of the Widget world. |
429 } | 429 } |
430 | 430 |
431 } | 431 } |
OLD | NEW |