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

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

Issue 2456973002: [LayoutNG] Move ng_block_layout_algorithm to use constraint space builder. (Closed)
Patch Set: rebase. Created 4 years, 1 month 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/ng/ng_physical_constraint_space.h" 9 #include "core/layout/ng/ng_physical_constraint_space.h"
10 #include "core/layout/ng/ng_writing_mode.h" 10 #include "core/layout/ng/ng_writing_mode.h"
(...skipping 13 matching lines...) Expand all
24 // logical coordinate system defined by the writing mode given. 24 // logical coordinate system defined by the writing mode given.
25 class CORE_EXPORT NGConstraintSpace final 25 class CORE_EXPORT NGConstraintSpace final
26 : public GarbageCollected<NGConstraintSpace> { 26 : public GarbageCollected<NGConstraintSpace> {
27 public: 27 public:
28 // Constructs a constraint space based on an existing backing 28 // Constructs a constraint space based on an existing backing
29 // NGPhysicalConstraintSpace. Sets this constraint space's size to the 29 // NGPhysicalConstraintSpace. Sets this constraint space's size to the
30 // physical constraint space's container size, converted to logical 30 // physical constraint space's container size, converted to logical
31 // coordinates. 31 // coordinates.
32 NGConstraintSpace(NGWritingMode, NGDirection, NGPhysicalConstraintSpace*); 32 NGConstraintSpace(NGWritingMode, NGDirection, NGPhysicalConstraintSpace*);
33 33
34 // Constructs a derived constraint space that shares the exclusions of the
35 // input constraint space, but has a different container size, writing mode
36 // and direction. Sets the offset to zero. For use by layout algorithms
37 // to use as the basis to find layout opportunities for children.
38 // TODO(layout-dev): Remove once NGConstraintSpaceBuilder exists.
39 NGConstraintSpace(NGWritingMode,
40 NGDirection,
41 const NGConstraintSpace& other,
42 NGLogicalSize);
43
44 // This should live on NGBox or another layout bridge and probably take a root 34 // This should live on NGBox or another layout bridge and probably take a root
45 // NGConstraintSpace or a NGPhysicalConstraintSpace. 35 // NGConstraintSpace or a NGPhysicalConstraintSpace.
46 static NGConstraintSpace* CreateFromLayoutObject(const LayoutBox&); 36 static NGConstraintSpace* CreateFromLayoutObject(const LayoutBox&);
47 37
48 // Mutable Getters. 38 // Mutable Getters.
49 // TODO(layout-dev): remove const constraint from MutablePhysicalSpace method 39 // TODO(layout-dev): remove const constraint from MutablePhysicalSpace method
50 NGPhysicalConstraintSpace* MutablePhysicalSpace() const { 40 NGPhysicalConstraintSpace* MutablePhysicalSpace() const {
51 return physical_space_; 41 return physical_space_;
52 } 42 }
53 43
(...skipping 22 matching lines...) Expand all
76 NGLogicalSize ContainerSize() const; 66 NGLogicalSize ContainerSize() const;
77 67
78 // Offset relative to the root constraint space. 68 // Offset relative to the root constraint space.
79 NGLogicalOffset Offset() const { return offset_; } 69 NGLogicalOffset Offset() const { return offset_; }
80 70
81 // Returns the effective size of the constraint space. Equal to the 71 // Returns the effective size of the constraint space. Equal to the
82 // ContainerSize() for the root constraint space but derived constraint spaces 72 // ContainerSize() for the root constraint space but derived constraint spaces
83 // return the size of the layout opportunity. 73 // return the size of the layout opportunity.
84 virtual NGLogicalSize Size() const { return size_; } 74 virtual NGLogicalSize Size() const { return size_; }
85 75
76 // Sets the effective size of the constraint space.
77 void SetSize(NGLogicalSize);
78
86 // Whether the current constraint space is for the newly established 79 // Whether the current constraint space is for the newly established
87 // Formatting Context. 80 // Formatting Context.
88 bool IsNewFormattingContext() const; 81 bool IsNewFormattingContext() const;
89 82
90 // Whether exceeding the containerSize triggers the presence of a scrollbar 83 // Whether exceeding the containerSize triggers the presence of a scrollbar
91 // for the indicated direction. 84 // for the indicated direction.
92 // If exceeded the current layout should be aborted and invoked again with a 85 // If exceeded the current layout should be aborted and invoked again with a
93 // constraint space modified to reserve space for a scrollbar. 86 // constraint space modified to reserve space for a scrollbar.
94 bool InlineTriggersScrollbar() const; 87 bool InlineTriggersScrollbar() const;
95 bool BlockTriggersScrollbar() const; 88 bool BlockTriggersScrollbar() const;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 }; 127 };
135 128
136 inline std::ostream& operator<<(std::ostream& stream, 129 inline std::ostream& operator<<(std::ostream& stream,
137 const NGConstraintSpace& value) { 130 const NGConstraintSpace& value) {
138 return stream << value.ToString(); 131 return stream << value.ToString();
139 } 132 }
140 133
141 } // namespace blink 134 } // namespace blink
142 135
143 #endif // NGConstraintSpace_h 136 #endif // NGConstraintSpace_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/ng/ng_box.cc ('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