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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 fragmentation_type_ = fragmentation_type; | 112 fragmentation_type_ = fragmentation_type; |
111 return *this; | 113 return *this; |
112 } | 114 } |
113 | 115 |
114 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsNewFormattingContext( | 116 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsNewFormattingContext( |
115 bool is_new_fc) { | 117 bool is_new_fc) { |
116 is_new_fc_ = is_new_fc; | 118 is_new_fc_ = is_new_fc; |
117 return *this; | 119 return *this; |
118 } | 120 } |
119 | 121 |
| 122 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsAnonymous( |
| 123 bool is_anonymous) { |
| 124 is_anonymous_ = is_anonymous; |
| 125 return *this; |
| 126 } |
| 127 |
120 NGConstraintSpace* NGConstraintSpaceBuilder::ToConstraintSpace( | 128 NGConstraintSpace* NGConstraintSpaceBuilder::ToConstraintSpace( |
121 NGWritingMode out_writing_mode) { | 129 NGWritingMode out_writing_mode) { |
122 // Whether the child and the containing block are parallel to each other. | 130 // Whether the child and the containing block are parallel to each other. |
123 // Example: vertical-rl and vertical-lr | 131 // Example: vertical-rl and vertical-lr |
124 bool is_in_parallel_flow = IsParallelWritingMode( | 132 bool is_in_parallel_flow = IsParallelWritingMode( |
125 static_cast<NGWritingMode>(parent_writing_mode_), out_writing_mode); | 133 static_cast<NGWritingMode>(parent_writing_mode_), out_writing_mode); |
126 | 134 |
127 NGLogicalSize available_size = available_size_; | 135 NGLogicalSize available_size = available_size_; |
128 NGLogicalSize percentage_resolution_size = percentage_resolution_size_; | 136 NGLogicalSize percentage_resolution_size = percentage_resolution_size_; |
129 if (!is_in_parallel_flow) { | 137 if (!is_in_parallel_flow) { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 if (is_in_parallel_flow) { | 170 if (is_in_parallel_flow) { |
163 return new NGConstraintSpace( | 171 return new NGConstraintSpace( |
164 static_cast<NGWritingMode>(out_writing_mode), | 172 static_cast<NGWritingMode>(out_writing_mode), |
165 static_cast<TextDirection>(text_direction_), available_size, | 173 static_cast<TextDirection>(text_direction_), available_size, |
166 percentage_resolution_size, initial_containing_block_size_, | 174 percentage_resolution_size, initial_containing_block_size_, |
167 fragmentainer_space_available_, is_fixed_size_inline_, | 175 fragmentainer_space_available_, is_fixed_size_inline_, |
168 is_fixed_size_block_, is_shrink_to_fit_, | 176 is_fixed_size_block_, is_shrink_to_fit_, |
169 is_inline_direction_triggers_scrollbar_, | 177 is_inline_direction_triggers_scrollbar_, |
170 is_block_direction_triggers_scrollbar_, | 178 is_block_direction_triggers_scrollbar_, |
171 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, | 179 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
172 margin_strut, bfc_offset, exclusions); | 180 is_anonymous_, margin_strut, bfc_offset, exclusions); |
173 } | 181 } |
174 return new NGConstraintSpace( | 182 return new NGConstraintSpace( |
175 out_writing_mode, static_cast<TextDirection>(text_direction_), | 183 out_writing_mode, static_cast<TextDirection>(text_direction_), |
176 available_size, percentage_resolution_size, | 184 available_size, percentage_resolution_size, |
177 initial_containing_block_size_, fragmentainer_space_available_, | 185 initial_containing_block_size_, fragmentainer_space_available_, |
178 is_fixed_size_block_, is_fixed_size_inline_, is_shrink_to_fit_, | 186 is_fixed_size_block_, is_fixed_size_inline_, is_shrink_to_fit_, |
179 is_block_direction_triggers_scrollbar_, | 187 is_block_direction_triggers_scrollbar_, |
180 is_inline_direction_triggers_scrollbar_, | 188 is_inline_direction_triggers_scrollbar_, |
181 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, | 189 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
182 margin_strut, bfc_offset, exclusions); | 190 is_anonymous_, margin_strut, bfc_offset, exclusions); |
183 } | 191 } |
184 | 192 |
185 } // namespace blink | 193 } // namespace blink |
OLD | NEW |