Chromium Code Reviews| Index: third_party/WebKit/Source/core/style/StyleScrollSnapData.h |
| diff --git a/third_party/WebKit/Source/core/style/StyleScrollSnapData.h b/third_party/WebKit/Source/core/style/StyleScrollSnapData.h |
| index 517f57b52660b114a6c33e07baa4ff1533141b97..0414c939adba77303074c3c26998f19bded00b37 100644 |
| --- a/third_party/WebKit/Source/core/style/StyleScrollSnapData.h |
| +++ b/third_party/WebKit/Source/core/style/StyleScrollSnapData.h |
| @@ -26,7 +26,7 @@ |
| #ifndef StyleScrollSnapData_h |
| #define StyleScrollSnapData_h |
| -#include "core/style/ScrollSnapPoints.h" |
| +#include "core/style/ComputedStyleConstants.h" |
| #include "platform/LengthPoint.h" |
| #include "platform/wtf/Allocator.h" |
| #include "platform/wtf/RefCounted.h" |
| @@ -34,6 +34,107 @@ |
| namespace blink { |
| +struct ScrollSnapType { |
| + DISALLOW_NEW(); |
| + |
| + ScrollSnapType() |
| + : axis(kSnapAxisNone), strictness(kSnapStrictnessProximity) {} |
|
majidvp
2017/06/13 19:20:54
snap type value grammar is "none | [ x | y | block
sunyunjia
2017/06/14 18:36:21
Done.
|
| + |
| + ScrollSnapType(const ScrollSnapType& other) |
| + : axis(other.axis), strictness(other.strictness) {} |
| + |
| + bool operator==(const ScrollSnapType& other) const { |
| + return axis == other.axis && strictness == other.strictness; |
| + } |
| + |
| + bool operator!=(const ScrollSnapType& other) const { |
| + return !(*this == other); |
| + } |
| + |
| + SnapAxis axis; |
| + SnapStrictness strictness; |
| +}; |
| + |
| +struct ScrollSnapAlign { |
| + DISALLOW_NEW(); |
| + |
| + ScrollSnapAlign() |
| + : alignmentX(kSnapAlignmentNone), alignmentY(kSnapAlignmentNone) {} |
| + |
| + ScrollSnapAlign(const ScrollSnapAlign& other) |
| + : alignmentX(other.alignmentX), alignmentY(other.alignmentY) {} |
| + |
| + bool operator==(const ScrollSnapAlign& other) const { |
| + return alignmentX == other.alignmentX && alignmentY == other.alignmentY; |
| + } |
| + |
| + bool operator!=(const ScrollSnapAlign& other) const { |
| + return !(*this == other); |
| + } |
| + |
| + SnapAlignment alignmentX; |
| + SnapAlignment alignmentY; |
| +}; |
| + |
| +struct ScrollPadding { |
| + DISALLOW_NEW(); |
| + |
| + ScrollPadding() : top(kFixed), right(kFixed), bottom(kFixed), left(kFixed) {} |
|
majidvp
2017/06/13 19:20:53
I don't think you should be initializing this to a
sunyunjia
2017/06/14 18:36:21
Done.
|
| + |
| + explicit ScrollPadding(Length length) |
| + : top(length), right(length), bottom(length), left(length) {} |
| + |
| + ScrollPadding(const ScrollPadding& other) |
| + : top(other.top), |
| + right(other.right), |
| + bottom(other.bottom), |
| + left(other.left) {} |
| + |
| + bool operator==(const ScrollPadding& other) const { |
| + return top == other.top && right == other.right && bottom == other.bottom && |
| + left == other.left; |
| + } |
| + |
| + bool operator!=(const ScrollPadding& other) const { |
| + return !(*this == other); |
| + } |
| + |
| + Length top; |
| + Length right; |
| + Length bottom; |
| + Length left; |
| +}; |
| + |
| +struct ScrollSnapMargin { |
|
majidvp
2017/06/13 19:20:54
I think you can factor out a common class for both
sunyunjia
2017/06/14 18:36:21
Done.
|
| + DISALLOW_NEW(); |
| + |
| + ScrollSnapMargin() |
| + : top(kFixed), right(kFixed), bottom(kFixed), left(kFixed) {} |
| + |
| + explicit ScrollSnapMargin(Length length) |
| + : top(length), right(length), bottom(length), left(length) {} |
| + |
| + ScrollSnapMargin(const ScrollSnapMargin& other) |
| + : top(other.top), |
| + right(other.right), |
| + bottom(other.bottom), |
| + left(other.left) {} |
| + |
| + bool operator==(const ScrollSnapMargin& other) const { |
| + return top == other.top && right == other.right && bottom == other.bottom && |
| + left == other.left; |
| + } |
| + |
| + bool operator!=(const ScrollSnapMargin& other) const { |
| + return !(*this == other); |
| + } |
| + |
| + Length top; |
| + Length right; |
| + Length bottom; |
| + Length left; |
| +}; |
| + |
| class StyleScrollSnapData : public RefCounted<StyleScrollSnapData> { |
| public: |
| static PassRefPtr<StyleScrollSnapData> Create() { |
| @@ -43,14 +144,14 @@ class StyleScrollSnapData : public RefCounted<StyleScrollSnapData> { |
| return AdoptRef(new StyleScrollSnapData(*this)); |
| } |
| - ScrollSnapPoints x_points_; |
| - ScrollSnapPoints y_points_; |
| - LengthPoint destination_; |
| - Vector<LengthPoint> coordinates_; |
| + ScrollSnapType type_; |
| + ScrollSnapAlign align_; |
| + ScrollPadding padding_; |
| + ScrollSnapMargin margin_; |
| private: |
| StyleScrollSnapData(); |
| - StyleScrollSnapData(const StyleScrollSnapData&); |
| + StyleScrollSnapData(const StyleScrollSnapData& other); |
| }; |
| bool operator==(const StyleScrollSnapData&, const StyleScrollSnapData&); |