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

Unified Diff: third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.h

Issue 2214483002: [LayoutNG] Change size members on NGConstraintSpace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove out of date comment. 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.h
diff --git a/third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.h b/third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.h
index 88a401e774f157ffb15262cfd5608216d2fa87b8..e6d8536b8c4346459bf4a653ad70744a480eb4ae 100644
--- a/third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.h
+++ b/third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.h
@@ -46,24 +46,44 @@ public:
class CORE_EXPORT NGConstraintSpace {
public:
- NGConstraintSpace(LayoutUnit inlineSize, LayoutUnit blockSize);
+ NGConstraintSpace(LayoutUnit inlineContainerSize,
+ LayoutUnit blockContainerSize);
~NGConstraintSpace() { }
void addExclusion(const NGExclusion, unsigned options = 0);
- void setOverflowSize(LayoutUnit inlineSize, LayoutUnit blockSize);
+ void setOverflowTriggersScrollbar(bool inlineTriggers,
+ bool blockTriggers);
void setFixedSize(bool inlineFixed, bool blockFixed);
- void setFragmentationType(NGFragmentationType blockFragmentationType);
-
- // Available space in each direction, -1 indicates infinite space.
- LayoutUnit inlineSize() const { return m_inlineSize; }
- LayoutUnit blockSize() const { return m_blockSize; }
+ void setFragmentationType(NGFragmentationType);
+
+ // Size of the container in each direction. Used for the following
+ // three cases:
+ // 1) Percentage resolution.
+ // 2) Resolving absolute positions of children.
+ // 3) Defining the threashold that triggers the presence of a
+ // scrollbar. Only applies if the corresponding scrollbarTrigger
+ // flag has been set for the direction.
+ LayoutUnit inlineContainerSize() const
+ {
+ return m_inlineContainerSize;
+ }
+ LayoutUnit blockContainerSize() const
+ {
+ return m_blockContainerSize;
+ }
- // The size threashold in the inline and block directions respectively that
- // triggers the presence of a scrollbar. If exceeded the current layout
- // should be aborted and invoked again with a constraint space modified to
- // reserve space for a scrollbar. -1 indicates no limit.
- LayoutUnit inlineOverflowSize() const { return m_inlineOverflowSize; }
- LayoutUnit blockOverflowSize() const { return m_blockOverflowSize; }
+ // Whether exceeding the containerSize triggers the presence of a
+ // scrollbar for the indicated direction.
+ // If exceeded the current layout should be aborted and invoked again
+ // with a constraint space modified to reserve space for a scrollbar.
+ bool inlineTriggersScrollbar() const
+ {
+ return m_inlineTriggersScrollbar;
+ }
+ bool blockTriggersScrollbar() const
+ {
+ return m_blockTriggersScrollbar;
+ }
// Some layout modes “stretch” their children to a fixed size (e.g. flex,
// grid). These flags represented whether a layout needs to produce a
@@ -91,13 +111,13 @@ public:
void subtract(const NGFragment);
private:
- LayoutUnit m_inlineSize;
- LayoutUnit m_blockSize;
- LayoutUnit m_inlineOverflowSize;
- LayoutUnit m_blockOverflowSize;
+ LayoutUnit m_inlineContainerSize;
+ LayoutUnit m_blockContainerSize;
unsigned m_fixedInlineSize : 1;
unsigned m_fixedBlockSize : 1;
+ unsigned m_inlineTriggersScrollbar : 1;
+ unsigned m_blockTriggersScrollbar : 1;
unsigned m_blockFragmentationType : 2;
DoublyLinkedList<const NGExclusion> m_exclusions;
@@ -128,20 +148,16 @@ public:
LayoutUnit inlineOffset() const;
LayoutUnit blockOffset() const;
-
- // When creating a derived NGConstraintSpace for the next inline level
- // layout opportunity, inlineSize and blockSize of the NGConstraintSpace
- // may be different from its parent. These properties hold the inline and
- // block size of the original NGConstraintSpaces, allowing percentage
- // resolution to work correctly.
- LayoutUnit inlineSizeForPercentageResolution() const;
- LayoutUnit blockSizeForPercentageResolution() const;
+ LayoutUnit inlineSize() const;
+ LayoutUnit blockSize() const;
private:
NGDerivedConstraintSpace();
LayoutUnit m_inlineOffset;
LayoutUnit m_blockOffset;
+ LayoutUnit m_inlineSize;
+ LayoutUnit m_blockSize;
NGConstraintSpace* m_original;
};
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698