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

Side by Side Diff: third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h

Issue 2322293002: [LayoutNG] Split LayoutOpportunityIterator into separate file (Closed)
Patch Set: Patch for landing Created 4 years, 3 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 #ifndef NGConstraintSpace_h 5 #ifndef NGConstraintSpace_h
6 #define NGConstraintSpace_h 6 #define NGConstraintSpace_h
7 7
8 #include "core/CoreExport.h" 8 #include "core/CoreExport.h"
9 #include "core/layout/LayoutBox.h" 9 #include "core/layout/LayoutBox.h"
10 #include "core/layout/ng/ng_physical_constraint_space.h" 10 #include "core/layout/ng/ng_physical_constraint_space.h"
11 #include "core/layout/ng/ng_writing_mode.h" 11 #include "core/layout/ng/ng_writing_mode.h"
12 #include "platform/heap/Handle.h" 12 #include "platform/heap/Handle.h"
13 #include "wtf/text/WTFString.h" 13 #include "wtf/text/WTFString.h"
14 #include "wtf/Vector.h" 14 #include "wtf/Vector.h"
15 15
16 namespace blink { 16 namespace blink {
17 17
18 class LayoutBox; 18 class LayoutBox;
19 class NGDerivedConstraintSpace;
20 class NGFragment; 19 class NGFragment;
21 class NGLayoutOpportunityIterator; 20 class NGLayoutOpportunityIterator;
22 21
23 // The NGConstraintSpace represents a set of constraints and available space 22 // The NGConstraintSpace represents a set of constraints and available space
24 // which a layout algorithm may produce a NGFragment within. It is a view on 23 // which a layout algorithm may produce a NGFragment within. It is a view on
25 // top of a NGPhysicalConstraintSpace and provides accessor methods in the 24 // top of a NGPhysicalConstraintSpace and provides accessor methods in the
26 // logical coordinate system defined by the writing mode given. 25 // logical coordinate system defined by the writing mode given.
27 class CORE_EXPORT NGConstraintSpace final 26 class CORE_EXPORT NGConstraintSpace final
28 : public GarbageCollected<NGConstraintSpace> { 27 : public GarbageCollected<NGConstraintSpace> {
29 public: 28 public:
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 112
114 String toString() const; 113 String toString() const;
115 114
116 private: 115 private:
117 Member<NGPhysicalConstraintSpace> physical_space_; 116 Member<NGPhysicalConstraintSpace> physical_space_;
118 NGLogicalOffset offset_; 117 NGLogicalOffset offset_;
119 NGLogicalSize size_; 118 NGLogicalSize size_;
120 unsigned writing_mode_ : 3; 119 unsigned writing_mode_ : 3;
121 }; 120 };
122 121
123 class CORE_EXPORT NGLayoutOpportunityIterator final
124 : public GarbageCollectedFinalized<NGLayoutOpportunityIterator> {
125 public:
126 NGLayoutOpportunityIterator(NGConstraintSpace* space,
127 unsigned clear,
128 bool for_inline_or_bfc);
129 ~NGLayoutOpportunityIterator() {}
130
131 NGConstraintSpace* Next();
132
133 DEFINE_INLINE_VIRTUAL_TRACE() {
134 visitor->trace(constraint_space_);
135 visitor->trace(current_opportunities_);
136 }
137
138 private:
139 void computeForExclusion(unsigned index);
140 LayoutUnit heightForOpportunity(LayoutUnit left,
141 LayoutUnit top,
142 LayoutUnit right,
143 LayoutUnit bottom);
144 void addLayoutOpportunity(LayoutUnit left,
145 LayoutUnit top,
146 LayoutUnit right,
147 LayoutUnit bottom);
148
149 Member<NGConstraintSpace> constraint_space_;
150 unsigned clear_;
151 bool for_inline_or_bfc_;
152 Vector<NGExclusion> filtered_exclusions_;
153 HeapVector<Member<NGConstraintSpace>> current_opportunities_;
154 unsigned current_exclusion_idx_;
155 };
156
157 inline std::ostream& operator<<(std::ostream& stream, 122 inline std::ostream& operator<<(std::ostream& stream,
158 const NGConstraintSpace& value) { 123 const NGConstraintSpace& value) {
159 return stream << value.toString(); 124 return stream << value.toString();
160 } 125 }
161 126
162 } // namespace blink 127 } // namespace blink
163 128
164 #endif // NGConstraintSpace_h 129 #endif // NGConstraintSpace_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/BUILD.gn ('k') | third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698