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

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

Issue 2587283004: [layoutng] Add a shrink-to-fit flag to the constraint space (Closed)
Patch Set: review comments Created 3 years, 12 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 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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698