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

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

Issue 2264273003: [layoutng] LayoutOpportunities() only needs a bool, not an enum (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/ng/ng_units.h" 9 #include "core/layout/ng/ng_units.h"
10 #include "wtf/DoublyLinkedList.h" 10 #include "wtf/DoublyLinkedList.h"
(...skipping 14 matching lines...) Expand all
25 NGClearFragment = 4 25 NGClearFragment = 4
26 }; 26 };
27 27
28 enum NGFragmentationType { 28 enum NGFragmentationType {
29 FragmentNone, 29 FragmentNone,
30 FragmentPage, 30 FragmentPage,
31 FragmentColumn, 31 FragmentColumn,
32 FragmentRegion 32 FragmentRegion
33 }; 33 };
34 34
35 enum NGExclusionFlowType {
36 ExcludeNone,
37 ExcludeInlineFlow,
38 ExcludeInlineStart,
39 ExcludeInlineEnd,
40 ExcludeInlineBoth
41 };
42
43 enum NGWritingMode { 35 enum NGWritingMode {
44 HorizontalTopBottom = 0, 36 HorizontalTopBottom = 0,
45 VerticalRightLeft = 1, 37 VerticalRightLeft = 1,
46 VerticalLeftRight = 2, 38 VerticalLeftRight = 2,
47 SidewaysRightLeft = 3, 39 SidewaysRightLeft = 3,
48 SidewaysLeftRight = 4 40 SidewaysLeftRight = 4
49 }; 41 };
50 42
51 enum NGDirection { LeftToRight = 0, RightToLeft = 1 }; 43 enum NGDirection { LeftToRight = 0, RightToLeft = 1 };
52 44
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 // If specified a layout should produce a Fragment which fragments at the 91 // If specified a layout should produce a Fragment which fragments at the
100 // blockSize if possible. 92 // blockSize if possible.
101 NGFragmentationType blockFragmentationType() const { 93 NGFragmentationType blockFragmentationType() const {
102 return static_cast<NGFragmentationType>(block_fragmentation_type_); 94 return static_cast<NGFragmentationType>(block_fragmentation_type_);
103 } 95 }
104 96
105 DoublyLinkedList<const NGExclusion> exclusions(unsigned options = 0) const; 97 DoublyLinkedList<const NGExclusion> exclusions(unsigned options = 0) const;
106 98
107 NGLayoutOpportunityIterator layoutOpportunities( 99 NGLayoutOpportunityIterator layoutOpportunities(
108 unsigned clear = NGClearNone, 100 unsigned clear = NGClearNone,
109 NGExclusionFlowType avoid = ExcludeNone) const; 101 bool for_inline_or_bfc = false) const;
110 102
111 // Modifies constraint space to account for a placed fragment. Depending on 103 // Modifies constraint space to account for a placed fragment. Depending on
112 // the shape of the fragment this will either modify the inline or block 104 // the shape of the fragment this will either modify the inline or block
113 // size, or add an exclusion. 105 // size, or add an exclusion.
114 void subtract(const NGFragment); 106 void subtract(const NGFragment);
115 107
116 private: 108 private:
117 NGLogicalSize container_size_; 109 NGLogicalSize container_size_;
118 110
119 unsigned fixed_inline_size_ : 1; 111 unsigned fixed_inline_size_ : 1;
120 unsigned fixed_block_size_ : 1; 112 unsigned fixed_block_size_ : 1;
121 unsigned inline_triggers_scrollbar_ : 1; 113 unsigned inline_triggers_scrollbar_ : 1;
122 unsigned block_triggers_scrollbar_ : 1; 114 unsigned block_triggers_scrollbar_ : 1;
123 unsigned block_fragmentation_type_ : 2; 115 unsigned block_fragmentation_type_ : 2;
124 116
125 DoublyLinkedList<const NGExclusion> exclusions_; 117 DoublyLinkedList<const NGExclusion> exclusions_;
126 }; 118 };
127 119
128 class CORE_EXPORT NGLayoutOpportunityIterator final { 120 class CORE_EXPORT NGLayoutOpportunityIterator final {
129 public: 121 public:
130 NGLayoutOpportunityIterator(const NGConstraintSpace* space, unsigned clear, 122 NGLayoutOpportunityIterator(const NGConstraintSpace* space,
131 NGExclusionFlowType avoid) 123 unsigned clear,
132 : constraint_space_(space), clear_(clear), avoid_(avoid) {} 124 bool for_inline_or_bfc)
125 : constraint_space_(space),
126 clear_(clear),
127 for_inline_or_bfc_(for_inline_or_bfc) {}
133 ~NGLayoutOpportunityIterator() {} 128 ~NGLayoutOpportunityIterator() {}
134 129
135 const NGDerivedConstraintSpace* next(); 130 const NGDerivedConstraintSpace* next();
136 131
137 private: 132 private:
138 const NGConstraintSpace* constraint_space_; 133 const NGConstraintSpace* constraint_space_;
139 unsigned clear_; 134 unsigned clear_;
140 NGExclusionFlowType avoid_; 135 bool for_inline_or_bfc_;
141 }; 136 };
142 137
143 } // namespace blink 138 } // namespace blink
144 139
145 #endif // NGConstraintSpace_h 140 #endif // NGConstraintSpace_h
OLDNEW
« no previous file with comments | « no previous file | 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