| 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 |