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 namespace blink { | 7 namespace blink { |
8 | 8 |
9 NGConstraintSpaceBuilder::NGConstraintSpaceBuilder( | 9 NGConstraintSpaceBuilder::NGConstraintSpaceBuilder( |
10 const NGConstraintSpace* parent_space) | 10 const NGConstraintSpace* parent_space) |
11 : available_size_(parent_space->AvailableSize()), | 11 : available_size_(parent_space->AvailableSize()), |
12 percentage_resolution_size_(parent_space->PercentageResolutionSize()), | 12 percentage_resolution_size_(parent_space->PercentageResolutionSize()), |
13 writing_mode_(parent_space->WritingMode()), | 13 writing_mode_(parent_space->WritingMode()), |
14 parent_writing_mode_(writing_mode_), | 14 parent_writing_mode_(writing_mode_), |
15 is_fixed_size_inline_(false), | 15 is_fixed_size_inline_(false), |
16 is_fixed_size_block_(false), | 16 is_fixed_size_block_(false), |
| 17 is_shrink_to_fit_(false), |
17 is_inline_direction_triggers_scrollbar_(false), | 18 is_inline_direction_triggers_scrollbar_(false), |
18 is_block_direction_triggers_scrollbar_(false), | 19 is_block_direction_triggers_scrollbar_(false), |
19 fragmentation_type_(kFragmentNone), | 20 fragmentation_type_(kFragmentNone), |
20 is_new_fc_(parent_space->IsNewFormattingContext()), | 21 is_new_fc_(parent_space->IsNewFormattingContext()), |
21 text_direction_(static_cast<unsigned>(parent_space->Direction())), | 22 text_direction_(static_cast<unsigned>(parent_space->Direction())), |
22 exclusions_(parent_space->Exclusions()) {} | 23 exclusions_(parent_space->Exclusions()) {} |
23 | 24 |
24 NGConstraintSpaceBuilder::NGConstraintSpaceBuilder(NGWritingMode writing_mode) | 25 NGConstraintSpaceBuilder::NGConstraintSpaceBuilder(NGWritingMode writing_mode) |
25 : writing_mode_(writing_mode), | 26 : writing_mode_(writing_mode), |
26 parent_writing_mode_(writing_mode_), | 27 parent_writing_mode_(writing_mode_), |
27 is_fixed_size_inline_(false), | 28 is_fixed_size_inline_(false), |
28 is_fixed_size_block_(false), | 29 is_fixed_size_block_(false), |
| 30 is_shrink_to_fit_(false), |
29 is_inline_direction_triggers_scrollbar_(false), | 31 is_inline_direction_triggers_scrollbar_(false), |
30 is_block_direction_triggers_scrollbar_(false), | 32 is_block_direction_triggers_scrollbar_(false), |
31 fragmentation_type_(kFragmentNone), | 33 fragmentation_type_(kFragmentNone), |
32 is_new_fc_(false), | 34 is_new_fc_(false), |
33 text_direction_(static_cast<unsigned>(TextDirection::Ltr)), | 35 text_direction_(static_cast<unsigned>(TextDirection::Ltr)), |
34 exclusions_(new NGExclusions()) {} | 36 exclusions_(new NGExclusions()) {} |
35 | 37 |
36 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetAvailableSize( | 38 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetAvailableSize( |
37 NGLogicalSize available_size) { | 39 NGLogicalSize available_size) { |
38 available_size_ = available_size; | 40 available_size_ = available_size; |
(...skipping 17 matching lines...) Expand all Loading... |
56 is_fixed_size_inline_ = is_fixed_size_inline; | 58 is_fixed_size_inline_ = is_fixed_size_inline; |
57 return *this; | 59 return *this; |
58 } | 60 } |
59 | 61 |
60 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsFixedSizeBlock( | 62 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsFixedSizeBlock( |
61 bool is_fixed_size_block) { | 63 bool is_fixed_size_block) { |
62 is_fixed_size_block_ = is_fixed_size_block; | 64 is_fixed_size_block_ = is_fixed_size_block; |
63 return *this; | 65 return *this; |
64 } | 66 } |
65 | 67 |
| 68 NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsShrinkToFit( |
| 69 bool shrink_to_fit) { |
| 70 is_shrink_to_fit_ = shrink_to_fit; |
| 71 return *this; |
| 72 } |
| 73 |
66 NGConstraintSpaceBuilder& | 74 NGConstraintSpaceBuilder& |
67 NGConstraintSpaceBuilder::SetIsInlineDirectionTriggersScrollbar( | 75 NGConstraintSpaceBuilder::SetIsInlineDirectionTriggersScrollbar( |
68 bool is_inline_direction_triggers_scrollbar) { | 76 bool is_inline_direction_triggers_scrollbar) { |
69 is_inline_direction_triggers_scrollbar_ = | 77 is_inline_direction_triggers_scrollbar_ = |
70 is_inline_direction_triggers_scrollbar; | 78 is_inline_direction_triggers_scrollbar; |
71 return *this; | 79 return *this; |
72 } | 80 } |
73 | 81 |
74 NGConstraintSpaceBuilder& | 82 NGConstraintSpaceBuilder& |
75 NGConstraintSpaceBuilder::SetIsBlockDirectionTriggersScrollbar( | 83 NGConstraintSpaceBuilder::SetIsBlockDirectionTriggersScrollbar( |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 bool is_in_parallel_flow = (parent_writing_mode_ == kHorizontalTopBottom) == | 115 bool is_in_parallel_flow = (parent_writing_mode_ == kHorizontalTopBottom) == |
108 (writing_mode_ == kHorizontalTopBottom); | 116 (writing_mode_ == kHorizontalTopBottom); |
109 | 117 |
110 if (is_in_parallel_flow) { | 118 if (is_in_parallel_flow) { |
111 return new NGConstraintSpace( | 119 return new NGConstraintSpace( |
112 static_cast<NGWritingMode>(writing_mode_), | 120 static_cast<NGWritingMode>(writing_mode_), |
113 static_cast<TextDirection>(text_direction_), | 121 static_cast<TextDirection>(text_direction_), |
114 {available_size_.inline_size, available_size_.block_size}, | 122 {available_size_.inline_size, available_size_.block_size}, |
115 {percentage_resolution_size_.inline_size, | 123 {percentage_resolution_size_.inline_size, |
116 percentage_resolution_size_.block_size}, | 124 percentage_resolution_size_.block_size}, |
117 is_fixed_size_inline_, is_fixed_size_block_, | 125 is_fixed_size_inline_, is_fixed_size_block_, is_shrink_to_fit_, |
118 is_inline_direction_triggers_scrollbar_, | 126 is_inline_direction_triggers_scrollbar_, |
119 is_block_direction_triggers_scrollbar_, | 127 is_block_direction_triggers_scrollbar_, |
120 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, | 128 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
121 exclusions); | 129 exclusions); |
122 } | 130 } |
123 | 131 |
124 return new NGConstraintSpace( | 132 return new NGConstraintSpace( |
125 static_cast<NGWritingMode>(writing_mode_), | 133 static_cast<NGWritingMode>(writing_mode_), |
126 static_cast<TextDirection>(text_direction_), | 134 static_cast<TextDirection>(text_direction_), |
127 {available_size_.block_size, available_size_.inline_size}, | 135 {available_size_.block_size, available_size_.inline_size}, |
128 {percentage_resolution_size_.block_size, | 136 {percentage_resolution_size_.block_size, |
129 percentage_resolution_size_.inline_size}, | 137 percentage_resolution_size_.inline_size}, |
130 is_fixed_size_block_, is_fixed_size_inline_, | 138 is_fixed_size_block_, is_fixed_size_inline_, is_shrink_to_fit_, |
131 is_block_direction_triggers_scrollbar_, | 139 is_block_direction_triggers_scrollbar_, |
132 is_inline_direction_triggers_scrollbar_, | 140 is_inline_direction_triggers_scrollbar_, |
133 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, | 141 static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
134 exclusions); | 142 exclusions); |
135 } | 143 } |
136 | 144 |
137 } // namespace blink | 145 } // namespace blink |
OLD | NEW |