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 import 'box.dart'; | 6 import 'box.dart'; |
7 import 'node.dart'; | 7 import 'node.dart'; |
8 | 8 |
9 class BlockParentData extends BoxParentData with ContainerParentDataMixin<Render
Box> { } | 9 class BlockParentData extends BoxParentData with ContainerParentDataMixin<Render
Box> { } |
10 | 10 |
11 class RenderBlock extends RenderBox with ContainerRenderNodeMixin<RenderBox, Blo
ckParentData>, | 11 class RenderBlock extends RenderBox with ContainerRenderNodeMixin<RenderBox, Blo
ckParentData>, |
12 RenderBoxContainerDefaultsMixin<RenderB
ox, BlockParentData> { | 12 RenderBoxContainerDefaultsMixin<RenderB
ox, BlockParentData> { |
13 // lays out RenderBox children in a vertical stack | 13 // lays out RenderBox children in a vertical stack |
14 // uses the maximum width provided by the parent | 14 // uses the maximum width provided by the parent |
15 // sizes itself to the height of its child stack | 15 // sizes itself to the height of its child stack |
16 | 16 |
| 17 RenderBlock({ |
| 18 List<RenderBox> children |
| 19 }) { |
| 20 if (children != null) |
| 21 children.forEach((child) { add(child); }); |
| 22 } |
| 23 |
17 void setParentData(RenderBox child) { | 24 void setParentData(RenderBox child) { |
18 if (child.parentData is! BlockParentData) | 25 if (child.parentData is! BlockParentData) |
19 child.parentData = new BlockParentData(); | 26 child.parentData = new BlockParentData(); |
20 } | 27 } |
21 | 28 |
22 // override this to report what dimensions you would have if you | 29 // override this to report what dimensions you would have if you |
23 // were laid out with the given constraints this can walk the tree | 30 // were laid out with the given constraints this can walk the tree |
24 // if it must, but it should be as cheap as possible; just get the | 31 // if it must, but it should be as cheap as possible; just get the |
25 // dimensions and nothing else (e.g. don't calculate hypothetical | 32 // dimensions and nothing else (e.g. don't calculate hypothetical |
26 // child positions if they're not needed to determine dimensions) | 33 // child positions if they're not needed to determine dimensions) |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 void hitTestChildren(HitTestResult result, { sky.Point position }) { | 67 void hitTestChildren(HitTestResult result, { sky.Point position }) { |
61 defaultHitTestChildren(result, position: position); | 68 defaultHitTestChildren(result, position: position); |
62 } | 69 } |
63 | 70 |
64 void paint(RenderNodeDisplayList canvas) { | 71 void paint(RenderNodeDisplayList canvas) { |
65 defaultPaint(canvas); | 72 defaultPaint(canvas); |
66 } | 73 } |
67 | 74 |
68 } | 75 } |
69 | 76 |
OLD | NEW |