OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #include "core/layout/ng/ng_constraint_space.h" | 5 #include "core/layout/ng/ng_constraint_space.h" |
6 | 6 |
7 #include "core/layout/LayoutBlock.h" | 7 #include "core/layout/LayoutBlock.h" |
8 #include "core/layout/LayoutView.h" | 8 #include "core/layout/LayoutView.h" |
9 #include "core/layout/ng/ng_constraint_space_builder.h" | 9 #include "core/layout/ng/ng_constraint_space_builder.h" |
10 | 10 |
11 namespace blink { | 11 namespace blink { |
12 | 12 |
13 NGConstraintSpace::NGConstraintSpace( | 13 NGConstraintSpace::NGConstraintSpace( |
14 NGWritingMode writing_mode, | 14 NGWritingMode writing_mode, |
15 TextDirection direction, | 15 TextDirection direction, |
16 NGLogicalSize available_size, | 16 NGLogicalSize available_size, |
17 NGLogicalSize percentage_resolution_size, | 17 NGLogicalSize percentage_resolution_size, |
18 NGPhysicalSize initial_containing_block_size, | 18 NGPhysicalSize initial_containing_block_size, |
19 LayoutUnit fragmentainer_space_available, | 19 LayoutUnit fragmentainer_space_available, |
20 bool is_fixed_size_inline, | 20 bool is_fixed_size_inline, |
21 bool is_fixed_size_block, | 21 bool is_fixed_size_block, |
22 bool is_shrink_to_fit, | 22 bool is_shrink_to_fit, |
23 bool is_inline_direction_triggers_scrollbar, | 23 bool is_inline_direction_triggers_scrollbar, |
24 bool is_block_direction_triggers_scrollbar, | 24 bool is_block_direction_triggers_scrollbar, |
25 NGFragmentationType block_direction_fragmentation_type, | 25 NGFragmentationType block_direction_fragmentation_type, |
26 bool is_new_fc, | 26 bool is_new_fc, |
27 bool is_anonymous, | 27 bool is_anonymous, |
28 const NGMarginStrut& margin_strut, | 28 const NGMarginStrut& margin_strut, |
29 const NGLogicalOffset& bfc_offset, | 29 const NGLogicalOffset& bfc_offset, |
| 30 const WTF::Optional<NGLogicalOffset>& floats_bfc_offset, |
30 const std::shared_ptr<NGExclusions>& exclusions, | 31 const std::shared_ptr<NGExclusions>& exclusions, |
31 Vector<RefPtr<NGUnpositionedFloat>>& unpositioned_floats, | 32 Vector<RefPtr<NGUnpositionedFloat>>& unpositioned_floats, |
32 const WTF::Optional<LayoutUnit>& clearance_offset) | 33 const WTF::Optional<LayoutUnit>& clearance_offset) |
33 : available_size_(available_size), | 34 : available_size_(available_size), |
34 percentage_resolution_size_(percentage_resolution_size), | 35 percentage_resolution_size_(percentage_resolution_size), |
35 initial_containing_block_size_(initial_containing_block_size), | 36 initial_containing_block_size_(initial_containing_block_size), |
36 fragmentainer_space_available_(fragmentainer_space_available), | 37 fragmentainer_space_available_(fragmentainer_space_available), |
37 is_fixed_size_inline_(is_fixed_size_inline), | 38 is_fixed_size_inline_(is_fixed_size_inline), |
38 is_fixed_size_block_(is_fixed_size_block), | 39 is_fixed_size_block_(is_fixed_size_block), |
39 is_shrink_to_fit_(is_shrink_to_fit), | 40 is_shrink_to_fit_(is_shrink_to_fit), |
40 is_inline_direction_triggers_scrollbar_( | 41 is_inline_direction_triggers_scrollbar_( |
41 is_inline_direction_triggers_scrollbar), | 42 is_inline_direction_triggers_scrollbar), |
42 is_block_direction_triggers_scrollbar_( | 43 is_block_direction_triggers_scrollbar_( |
43 is_block_direction_triggers_scrollbar), | 44 is_block_direction_triggers_scrollbar), |
44 block_direction_fragmentation_type_(block_direction_fragmentation_type), | 45 block_direction_fragmentation_type_(block_direction_fragmentation_type), |
45 is_new_fc_(is_new_fc), | 46 is_new_fc_(is_new_fc), |
46 is_anonymous_(is_anonymous), | 47 is_anonymous_(is_anonymous), |
47 writing_mode_(writing_mode), | 48 writing_mode_(writing_mode), |
48 direction_(static_cast<unsigned>(direction)), | 49 direction_(static_cast<unsigned>(direction)), |
49 margin_strut_(margin_strut), | 50 margin_strut_(margin_strut), |
50 bfc_offset_(bfc_offset), | 51 bfc_offset_(bfc_offset), |
| 52 floats_bfc_offset_(floats_bfc_offset), |
51 exclusions_(exclusions), | 53 exclusions_(exclusions), |
52 clearance_offset_(clearance_offset) { | 54 clearance_offset_(clearance_offset) { |
53 unpositioned_floats_.swap(unpositioned_floats); | 55 unpositioned_floats_.swap(unpositioned_floats); |
54 } | 56 } |
55 | 57 |
56 RefPtr<NGConstraintSpace> NGConstraintSpace::CreateFromLayoutObject( | 58 RefPtr<NGConstraintSpace> NGConstraintSpace::CreateFromLayoutObject( |
57 const LayoutBox& box) { | 59 const LayoutBox& box) { |
58 auto writing_mode = FromPlatformWritingMode(box.StyleRef().GetWritingMode()); | 60 auto writing_mode = FromPlatformWritingMode(box.StyleRef().GetWritingMode()); |
59 bool parallel_containing_block = IsParallelWritingMode( | 61 bool parallel_containing_block = IsParallelWritingMode( |
60 FromPlatformWritingMode( | 62 FromPlatformWritingMode( |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 is_block_direction_triggers_scrollbar_ == | 160 is_block_direction_triggers_scrollbar_ == |
159 other.is_block_direction_triggers_scrollbar_ && | 161 other.is_block_direction_triggers_scrollbar_ && |
160 block_direction_fragmentation_type_ == | 162 block_direction_fragmentation_type_ == |
161 other.block_direction_fragmentation_type_ && | 163 other.block_direction_fragmentation_type_ && |
162 is_new_fc_ == other.is_new_fc_ && | 164 is_new_fc_ == other.is_new_fc_ && |
163 is_anonymous_ == other.is_anonymous_ && | 165 is_anonymous_ == other.is_anonymous_ && |
164 writing_mode_ == other.writing_mode_ && | 166 writing_mode_ == other.writing_mode_ && |
165 direction_ == other.direction_ && | 167 direction_ == other.direction_ && |
166 margin_strut_ == other.margin_strut_ && | 168 margin_strut_ == other.margin_strut_ && |
167 bfc_offset_ == other.bfc_offset_ && | 169 bfc_offset_ == other.bfc_offset_ && |
| 170 floats_bfc_offset_ == other.floats_bfc_offset_ && |
168 clearance_offset_ == other.clearance_offset_; | 171 clearance_offset_ == other.clearance_offset_; |
169 } | 172 } |
170 | 173 |
171 bool NGConstraintSpace::operator!=(const NGConstraintSpace& other) const { | 174 bool NGConstraintSpace::operator!=(const NGConstraintSpace& other) const { |
172 return !(*this == other); | 175 return !(*this == other); |
173 } | 176 } |
174 | 177 |
175 String NGConstraintSpace::ToString() const { | 178 String NGConstraintSpace::ToString() const { |
176 return String::Format( | 179 return String::Format( |
177 "Offset: %s,%s Size: %sx%s MarginStrut: %s" | 180 "Offset: %s,%s Size: %sx%s MarginStrut: %s" |
178 " Clearance: %s", | 181 " Clearance: %s", |
179 bfc_offset_.inline_offset.ToString().Ascii().data(), | 182 bfc_offset_.inline_offset.ToString().Ascii().data(), |
180 bfc_offset_.block_offset.ToString().Ascii().data(), | 183 bfc_offset_.block_offset.ToString().Ascii().data(), |
181 AvailableSize().inline_size.ToString().Ascii().data(), | 184 AvailableSize().inline_size.ToString().Ascii().data(), |
182 AvailableSize().block_size.ToString().Ascii().data(), | 185 AvailableSize().block_size.ToString().Ascii().data(), |
183 margin_strut_.ToString().Ascii().data(), | 186 margin_strut_.ToString().Ascii().data(), |
184 clearance_offset_.has_value() | 187 clearance_offset_.has_value() |
185 ? clearance_offset_.value().ToString().Ascii().data() | 188 ? clearance_offset_.value().ToString().Ascii().data() |
186 : "none"); | 189 : "none"); |
187 } | 190 } |
188 | 191 |
189 } // namespace blink | 192 } // namespace blink |
OLD | NEW |