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 fragmentainer_space_available_(NGSizeIndefinite), | 15 fragmentainer_space_available_(NGSizeIndefinite), |
16 writing_mode_(parent_space->WritingMode()), | 16 writing_mode_(parent_space->WritingMode()), |
17 parent_writing_mode_(writing_mode_), | 17 parent_writing_mode_(writing_mode_), |
18 is_fixed_size_inline_(false), | 18 is_fixed_size_inline_(false), |
19 is_fixed_size_block_(false), | 19 is_fixed_size_block_(false), |
20 is_shrink_to_fit_(false), | 20 is_shrink_to_fit_(false), |
21 is_inline_direction_triggers_scrollbar_(false), | 21 is_inline_direction_triggers_scrollbar_(false), |
22 is_block_direction_triggers_scrollbar_(false), | 22 is_block_direction_triggers_scrollbar_(false), |
23 fragmentation_type_(parent_space->BlockFragmentationType()), | 23 fragmentation_type_(parent_space->BlockFragmentationType()), |
24 is_new_fc_(parent_space->IsNewFormattingContext()), | 24 is_new_fc_(parent_space->IsNewFormattingContext()), |
25 text_direction_(static_cast<unsigned>(parent_space->Direction())), | 25 text_direction_(static_cast<unsigned>(parent_space->Direction())), |
26 bfc_offset_(parent_space->bfc_offset_), | |
26 exclusions_(parent_space->Exclusions()) {} | 27 exclusions_(parent_space->Exclusions()) {} |
27 | 28 |
28 NGConstraintSpaceBuilder::NGConstraintSpaceBuilder(NGWritingMode writing_mode) | 29 NGConstraintSpaceBuilder::NGConstraintSpaceBuilder(NGWritingMode writing_mode) |
29 : fragmentainer_space_available_(NGSizeIndefinite), | 30 : fragmentainer_space_available_(NGSizeIndefinite), |
30 writing_mode_(writing_mode), | 31 writing_mode_(writing_mode), |
31 parent_writing_mode_(writing_mode_), | 32 parent_writing_mode_(writing_mode_), |
32 is_fixed_size_inline_(false), | 33 is_fixed_size_inline_(false), |
33 is_fixed_size_block_(false), | 34 is_fixed_size_block_(false), |
34 is_shrink_to_fit_(false), | 35 is_shrink_to_fit_(false), |
35 is_inline_direction_triggers_scrollbar_(false), | 36 is_inline_direction_triggers_scrollbar_(false), |
(...skipping 14 matching lines...) Expand all Loading... | |
50 percentage_resolution_size_ = percentage_resolution_size; | 51 percentage_resolution_size_ = percentage_resolution_size; |
51 return *this; | 52 return *this; |
52 } | 53 } |
53 | 54 |
54 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetTextDirection( | 55 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetTextDirection( |
55 TextDirection text_direction) { | 56 TextDirection text_direction) { |
56 text_direction_ = static_cast<unsigned>(text_direction); | 57 text_direction_ = static_cast<unsigned>(text_direction); |
57 return *this; | 58 return *this; |
58 } | 59 } |
59 | 60 |
61 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetMarginStrut( | |
62 const NGMarginStrut& margin_strut) { | |
63 margin_strut_ = margin_strut; | |
64 return *this; | |
65 } | |
66 | |
60 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsFixedSizeInline( | 67 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsFixedSizeInline( |
61 bool is_fixed_size_inline) { | 68 bool is_fixed_size_inline) { |
62 is_fixed_size_inline_ = is_fixed_size_inline; | 69 is_fixed_size_inline_ = is_fixed_size_inline; |
63 return *this; | 70 return *this; |
64 } | 71 } |
65 | 72 |
66 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsFixedSizeBlock( | 73 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsFixedSizeBlock( |
67 bool is_fixed_size_block) { | 74 bool is_fixed_size_block) { |
68 is_fixed_size_block_ = is_fixed_size_block; | 75 is_fixed_size_block_ = is_fixed_size_block; |
69 return *this; | 76 return *this; |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
124 static_cast<NGWritingMode>(writing_mode_), | 131 static_cast<NGWritingMode>(writing_mode_), |
125 static_cast<TextDirection>(text_direction_), | 132 static_cast<TextDirection>(text_direction_), |
126 {available_size_.inline_size, available_size_.block_size}, | 133 {available_size_.inline_size, available_size_.block_size}, |
127 {percentage_resolution_size_.inline_size, | 134 {percentage_resolution_size_.inline_size, |
128 percentage_resolution_size_.block_size}, | 135 percentage_resolution_size_.block_size}, |
129 fragmentainer_space_available_, is_fixed_size_inline_, | 136 fragmentainer_space_available_, is_fixed_size_inline_, |
130 is_fixed_size_block_, is_shrink_to_fit_, | 137 is_fixed_size_block_, is_shrink_to_fit_, |
131 is_inline_direction_triggers_scrollbar_, | 138 is_inline_direction_triggers_scrollbar_, |
132 is_block_direction_triggers_scrollbar_, | 139 is_block_direction_triggers_scrollbar_, |
133 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, | 140 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
134 exclusions); | 141 is_new_fc_ ? NGMarginStrut() : margin_strut_, |
142 is_new_fc_ ? NGLogicalOffset() : bfc_offset_, exclusions); | |
ikilpatrick
2017/01/26 00:49:58
TODO ian think....
Gleb Lanbin
2017/01/31 00:25:01
sorry, probably I miss the context here. Can you e
| |
135 } | 143 } |
136 | 144 |
137 return new NGConstraintSpace( | 145 return new NGConstraintSpace( |
138 static_cast<NGWritingMode>(writing_mode_), | 146 static_cast<NGWritingMode>(writing_mode_), |
139 static_cast<TextDirection>(text_direction_), | 147 static_cast<TextDirection>(text_direction_), |
140 {available_size_.block_size, available_size_.inline_size}, | 148 {available_size_.block_size, available_size_.inline_size}, |
141 {percentage_resolution_size_.block_size, | 149 {percentage_resolution_size_.block_size, |
142 percentage_resolution_size_.inline_size}, | 150 percentage_resolution_size_.inline_size}, |
143 fragmentainer_space_available_, is_fixed_size_block_, | 151 fragmentainer_space_available_, is_fixed_size_block_, |
144 is_fixed_size_inline_, is_shrink_to_fit_, | 152 is_fixed_size_inline_, is_shrink_to_fit_, |
145 is_block_direction_triggers_scrollbar_, | 153 is_block_direction_triggers_scrollbar_, |
146 is_inline_direction_triggers_scrollbar_, | 154 is_inline_direction_triggers_scrollbar_, |
147 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, | 155 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
148 exclusions); | 156 margin_strut_, bfc_offset_, exclusions); |
149 } | 157 } |
150 | 158 |
151 } // namespace blink | 159 } // namespace blink |
OLD | NEW |