Chromium Code Reviews| Index: third_party/WebKit/Source/core/page/scrolling/StickyPositionViewportConstraints.h |
| diff --git a/third_party/WebKit/Source/core/page/scrolling/StickyPositionViewportConstraints.h b/third_party/WebKit/Source/core/page/scrolling/StickyPositionViewportConstraints.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1508d210ea6ae3d0a3300818e471c276dc966196 |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/core/page/scrolling/StickyPositionViewportConstraints.h |
| @@ -0,0 +1,72 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef StickyPositionViewportConstraints_h |
| +#define StickyPositionViewportConstraints_h |
| + |
| +#include "core/page/scrolling/ViewportConstraints.h" |
| + |
| +namespace blink { |
| + |
| +class StickyPositionViewportConstraints final : public ViewportConstraints { |
|
chrishtr
2016/01/30 01:49:03
On further reflection, StickyPositionScrollingCons
flackr
2016/02/22 22:55:23
Done.
|
| +public: |
| + StickyPositionViewportConstraints() |
| + : m_leftOffset(0) |
| + , m_rightOffset(0) |
| + , m_topOffset(0) |
| + , m_bottomOffset(0) |
| + { } |
| + |
| + StickyPositionViewportConstraints(const StickyPositionViewportConstraints& other) |
| + : ViewportConstraints(other) |
| + , m_leftOffset(other.m_leftOffset) |
| + , m_rightOffset(other.m_rightOffset) |
| + , m_topOffset(other.m_topOffset) |
| + , m_bottomOffset(other.m_bottomOffset) |
| + , m_absoluteContainingBlockRect(other.m_absoluteContainingBlockRect) |
| + , m_absoluteStickyBoxRect(other.m_absoluteStickyBoxRect) |
| + { } |
| + |
| + FloatSize computeStickyOffset(const FloatRect& viewportRect) const; |
| + |
| + float leftOffset() const { return m_leftOffset; } |
| + float rightOffset() const { return m_rightOffset; } |
| + float topOffset() const { return m_topOffset; } |
| + float bottomOffset() const { return m_bottomOffset; } |
| + |
| + void setLeftOffset(float offset) { m_leftOffset = offset; } |
| + void setRightOffset(float offset) { m_rightOffset = offset; } |
| + void setTopOffset(float offset) { m_topOffset = offset; } |
| + void setBottomOffset(float offset) { m_bottomOffset = offset; } |
| + |
| + void setAbsoluteContainingBlockRect(const FloatRect& rect) { m_absoluteContainingBlockRect = rect; } |
|
chrishtr
2016/01/30 01:49:03
setScrollContainerRelativeContainingBlockRect
flackr
2016/02/22 22:55:23
Done.
|
| + |
| + void setAbsoluteStickyBoxRect(const FloatRect& rect) { m_absoluteStickyBoxRect = rect; } |
|
chrishtr
2016/01/30 01:49:03
setScrollContainerRelativeStickyBoxRect
flackr
2016/02/22 22:55:23
Done.
|
| + |
| + bool operator==(const StickyPositionViewportConstraints& other) const |
| + { |
| + return m_leftOffset == other.m_leftOffset |
| + && m_rightOffset == other.m_rightOffset |
| + && m_topOffset == other.m_topOffset |
| + && m_bottomOffset == other.m_bottomOffset |
| + && m_absoluteContainingBlockRect == other.m_absoluteContainingBlockRect |
| + && m_absoluteStickyBoxRect == other.m_absoluteStickyBoxRect; |
| + } |
| + |
| + bool operator!=(const StickyPositionViewportConstraints& other) const { return !(*this == other); } |
| + |
| +private: |
| + ConstraintType constraintType() const override { return StickyPositionConstraint; } |
| + |
| + float m_leftOffset; |
| + float m_rightOffset; |
| + float m_topOffset; |
| + float m_bottomOffset; |
| + FloatRect m_absoluteContainingBlockRect; |
| + FloatRect m_absoluteStickyBoxRect; |
| +}; |
| + |
| +} // namespace blink |
| + |
| +#endif // StickyPositionViewportConstraints_h |