Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc

Issue 2714803002: [LayoutNG] Allow block-flow layout to be fragmented using new approach. (Closed)
Patch Set: silly me... Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698