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_builder.h" | 5 #include "core/layout/ng/ng_constraint_space_builder.h" |
6 | 6 |
7 #include "core/layout/ng/ng_length_utils.h" | 7 #include "core/layout/ng/ng_length_utils.h" |
8 | 8 |
9 namespace blink { | 9 namespace blink { |
10 | 10 |
11 NGConstraintSpaceBuilder::NGConstraintSpaceBuilder( | 11 NGConstraintSpaceBuilder::NGConstraintSpaceBuilder( |
12 const NGConstraintSpace* parent_space) | 12 const NGConstraintSpace* parent_space) |
13 : available_size_(parent_space->AvailableSize()), | 13 : available_size_(parent_space->AvailableSize()), |
14 percentage_resolution_size_(parent_space->PercentageResolutionSize()), | 14 percentage_resolution_size_(parent_space->PercentageResolutionSize()), |
15 initial_containing_block_size_( | 15 initial_containing_block_size_( |
16 parent_space->InitialContainingBlockSize()), | 16 parent_space->InitialContainingBlockSize()), |
17 fragmentainer_space_available_(NGSizeIndefinite), | 17 fragmentainer_space_available_(NGSizeIndefinite), |
18 parent_writing_mode_(parent_space->WritingMode()), | 18 parent_writing_mode_(parent_space->WritingMode()), |
19 is_fixed_size_inline_(false), | 19 is_fixed_size_inline_(false), |
20 is_fixed_size_block_(false), | 20 is_fixed_size_block_(false), |
21 is_shrink_to_fit_(false), | 21 is_shrink_to_fit_(false), |
22 is_inline_direction_triggers_scrollbar_(false), | 22 is_inline_direction_triggers_scrollbar_(false), |
23 is_block_direction_triggers_scrollbar_(false), | 23 is_block_direction_triggers_scrollbar_(false), |
24 fragmentation_type_(parent_space->BlockFragmentationType()), | 24 fragmentation_type_(parent_space->BlockFragmentationType()), |
25 is_new_fc_(parent_space->IsNewFormattingContext()), | 25 is_new_fc_(parent_space->IsNewFormattingContext()), |
| 26 is_anonymous_(false), |
26 text_direction_(static_cast<unsigned>(parent_space->Direction())), | 27 text_direction_(static_cast<unsigned>(parent_space->Direction())), |
27 bfc_offset_(parent_space->bfc_offset_), | 28 bfc_offset_(parent_space->bfc_offset_), |
28 exclusions_(parent_space->Exclusions()) {} | 29 exclusions_(parent_space->Exclusions()) {} |
29 | 30 |
30 NGConstraintSpaceBuilder::NGConstraintSpaceBuilder(NGWritingMode writing_mode) | 31 NGConstraintSpaceBuilder::NGConstraintSpaceBuilder(NGWritingMode writing_mode) |
31 : initial_containing_block_size_{NGSizeIndefinite, NGSizeIndefinite}, | 32 : initial_containing_block_size_{NGSizeIndefinite, NGSizeIndefinite}, |
32 fragmentainer_space_available_(NGSizeIndefinite), | 33 fragmentainer_space_available_(NGSizeIndefinite), |
33 parent_writing_mode_(writing_mode), | 34 parent_writing_mode_(writing_mode), |
34 is_fixed_size_inline_(false), | 35 is_fixed_size_inline_(false), |
35 is_fixed_size_block_(false), | 36 is_fixed_size_block_(false), |
36 is_shrink_to_fit_(false), | 37 is_shrink_to_fit_(false), |
37 is_inline_direction_triggers_scrollbar_(false), | 38 is_inline_direction_triggers_scrollbar_(false), |
38 is_block_direction_triggers_scrollbar_(false), | 39 is_block_direction_triggers_scrollbar_(false), |
39 fragmentation_type_(kFragmentNone), | 40 fragmentation_type_(kFragmentNone), |
40 is_new_fc_(false), | 41 is_new_fc_(false), |
| 42 is_anonymous_(false), |
41 text_direction_(static_cast<unsigned>(TextDirection::kLtr)), | 43 text_direction_(static_cast<unsigned>(TextDirection::kLtr)), |
42 exclusions_(new NGExclusions()) {} | 44 exclusions_(new NGExclusions()) {} |
43 | 45 |
44 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetAvailableSize( | 46 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetAvailableSize( |
45 NGLogicalSize available_size) { | 47 NGLogicalSize available_size) { |
46 available_size_ = available_size; | 48 available_size_ = available_size; |
47 return *this; | 49 return *this; |
48 } | 50 } |
49 | 51 |
50 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetPercentageResolutionSize( | 52 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetPercentageResolutionSize( |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 fragmentation_type_ = fragmentation_type; | 124 fragmentation_type_ = fragmentation_type; |
123 return *this; | 125 return *this; |
124 } | 126 } |
125 | 127 |
126 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsNewFormattingContext( | 128 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsNewFormattingContext( |
127 bool is_new_fc) { | 129 bool is_new_fc) { |
128 is_new_fc_ = is_new_fc; | 130 is_new_fc_ = is_new_fc; |
129 return *this; | 131 return *this; |
130 } | 132 } |
131 | 133 |
| 134 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsAnonymous( |
| 135 bool is_anonymous) { |
| 136 is_anonymous_ = is_anonymous; |
| 137 return *this; |
| 138 } |
| 139 |
132 NGConstraintSpace* NGConstraintSpaceBuilder::ToConstraintSpace( | 140 NGConstraintSpace* NGConstraintSpaceBuilder::ToConstraintSpace( |
133 NGWritingMode out_writing_mode) { | 141 NGWritingMode out_writing_mode) { |
134 // Whether the child and the containing block are parallel to each other. | 142 // Whether the child and the containing block are parallel to each other. |
135 // Example: vertical-rl and vertical-lr | 143 // Example: vertical-rl and vertical-lr |
136 bool is_in_parallel_flow = IsParallelWritingMode( | 144 bool is_in_parallel_flow = IsParallelWritingMode( |
137 static_cast<NGWritingMode>(parent_writing_mode_), out_writing_mode); | 145 static_cast<NGWritingMode>(parent_writing_mode_), out_writing_mode); |
138 | 146 |
139 NGLogicalSize available_size = available_size_; | 147 NGLogicalSize available_size = available_size_; |
140 NGLogicalSize percentage_resolution_size = percentage_resolution_size_; | 148 NGLogicalSize percentage_resolution_size = percentage_resolution_size_; |
141 if (!is_in_parallel_flow) { | 149 if (!is_in_parallel_flow) { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 if (is_in_parallel_flow) { | 184 if (is_in_parallel_flow) { |
177 return new NGConstraintSpace( | 185 return new NGConstraintSpace( |
178 static_cast<NGWritingMode>(out_writing_mode), | 186 static_cast<NGWritingMode>(out_writing_mode), |
179 static_cast<TextDirection>(text_direction_), available_size, | 187 static_cast<TextDirection>(text_direction_), available_size, |
180 percentage_resolution_size, initial_containing_block_size_, | 188 percentage_resolution_size, initial_containing_block_size_, |
181 fragmentainer_space_available_, is_fixed_size_inline_, | 189 fragmentainer_space_available_, is_fixed_size_inline_, |
182 is_fixed_size_block_, is_shrink_to_fit_, | 190 is_fixed_size_block_, is_shrink_to_fit_, |
183 is_inline_direction_triggers_scrollbar_, | 191 is_inline_direction_triggers_scrollbar_, |
184 is_block_direction_triggers_scrollbar_, | 192 is_block_direction_triggers_scrollbar_, |
185 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, | 193 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
186 margin_strut, bfc_offset, exclusions, clearance_offset); | 194 is_anonymous_, margin_strut, bfc_offset, exclusions, clearance_offset); |
187 } | 195 } |
188 return new NGConstraintSpace( | 196 return new NGConstraintSpace( |
189 out_writing_mode, static_cast<TextDirection>(text_direction_), | 197 out_writing_mode, static_cast<TextDirection>(text_direction_), |
190 available_size, percentage_resolution_size, | 198 available_size, percentage_resolution_size, |
191 initial_containing_block_size_, fragmentainer_space_available_, | 199 initial_containing_block_size_, fragmentainer_space_available_, |
192 is_fixed_size_block_, is_fixed_size_inline_, is_shrink_to_fit_, | 200 is_fixed_size_block_, is_fixed_size_inline_, is_shrink_to_fit_, |
193 is_block_direction_triggers_scrollbar_, | 201 is_block_direction_triggers_scrollbar_, |
194 is_inline_direction_triggers_scrollbar_, | 202 is_inline_direction_triggers_scrollbar_, |
195 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, | 203 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
196 margin_strut, bfc_offset, exclusions, clearance_offset); | 204 is_anonymous_, margin_strut, bfc_offset, exclusions, clearance_offset); |
197 } | 205 } |
198 | 206 |
199 } // namespace blink | 207 } // namespace blink |
OLD | NEW |