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 'box.dart'; | 7 import 'box.dart'; |
8 import 'object.dart'; | 8 import 'object.dart'; |
9 | 9 |
10 class BlockParentData extends BoxParentData with ContainerParentDataMixin<Render
Box> { } | 10 class BlockParentData extends BoxParentData with ContainerParentDataMixin<Render
Box> { } |
11 | 11 |
12 class RenderBlock extends RenderBox with ContainerRenderObjectMixin<RenderBox, B
lockParentData>, | 12 class RenderBlock extends RenderBox with ContainerRenderObjectMixin<RenderBox, B
lockParentData>, |
13 RenderBoxContainerDefaultsMixin<RenderB
ox, BlockParentData> { | 13 RenderBoxContainerDefaultsMixin<RenderB
ox, BlockParentData> { |
14 // lays out RenderBox children in a vertical stack | 14 // lays out RenderBox children in a vertical stack |
15 // uses the maximum width provided by the parent | 15 // uses the maximum width provided by the parent |
16 // sizes itself to the height of its child stack | 16 // sizes itself to the height of its child stack |
17 | 17 |
18 RenderBlock({ | 18 RenderBlock({ |
19 List<RenderBox> children | 19 List<RenderBox> children |
20 }) { | 20 }) { |
21 addAll(children); | 21 addAll(children); |
22 } | 22 } |
23 | 23 |
24 void setParentData(RenderBox child) { | 24 void setupParentData(RenderBox child) { |
25 if (child.parentData is! BlockParentData) | 25 if (child.parentData is! BlockParentData) |
26 child.parentData = new BlockParentData(); | 26 child.parentData = new BlockParentData(); |
27 } | 27 } |
28 | 28 |
29 double getMinIntrinsicWidth(BoxConstraints constraints) { | 29 double getMinIntrinsicWidth(BoxConstraints constraints) { |
30 double width = 0.0; | 30 double width = 0.0; |
31 BoxConstraints innerConstraints = constraints.widthConstraints(); | 31 BoxConstraints innerConstraints = constraints.widthConstraints(); |
32 RenderBox child = firstChild; | 32 RenderBox child = firstChild; |
33 while (child != null) { | 33 while (child != null) { |
34 width = math.max(width, child.getMinIntrinsicWidth(innerConstraints)); | 34 width = math.max(width, child.getMinIntrinsicWidth(innerConstraints)); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 void hitTestChildren(HitTestResult result, { Point position }) { | 103 void hitTestChildren(HitTestResult result, { Point position }) { |
104 defaultHitTestChildren(result, position: position); | 104 defaultHitTestChildren(result, position: position); |
105 } | 105 } |
106 | 106 |
107 void paint(RenderCanvas canvas) { | 107 void paint(RenderCanvas canvas) { |
108 defaultPaint(canvas); | 108 defaultPaint(canvas); |
109 } | 109 } |
110 | 110 |
111 } | 111 } |
112 | 112 |
OLD | NEW |