| Index: cc/layers/layer_sticky_position_constraint.cc
|
| diff --git a/cc/layers/layer_sticky_position_constraint.cc b/cc/layers/layer_sticky_position_constraint.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0fc0af84a8e890436cdb68c3a934637253f63038
|
| --- /dev/null
|
| +++ b/cc/layers/layer_sticky_position_constraint.cc
|
| @@ -0,0 +1,95 @@
|
| +// Copyright 2013 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.
|
| +
|
| +#include "cc/layers/layer_sticky_position_constraint.h"
|
| +#include "cc/proto/gfx_conversions.h"
|
| +#include "cc/proto/layer_sticky_position_constraint.pb.h"
|
| +
|
| +namespace cc {
|
| +
|
| +LayerStickyPositionConstraint::LayerStickyPositionConstraint()
|
| + : is_sticky(false),
|
| + is_anchored_left(false),
|
| + is_anchored_right(false),
|
| + is_anchored_top(false),
|
| + is_anchored_bottom(false),
|
| + left_offset(0.f),
|
| + right_offset(0.f),
|
| + top_offset(0.f),
|
| + bottom_offset(0.f) {}
|
| +
|
| +LayerStickyPositionConstraint::LayerStickyPositionConstraint(
|
| + const LayerStickyPositionConstraint& other)
|
| + : is_sticky(other.is_sticky),
|
| + is_anchored_left(other.is_anchored_left),
|
| + is_anchored_right(other.is_anchored_right),
|
| + is_anchored_top(other.is_anchored_top),
|
| + is_anchored_bottom(other.is_anchored_bottom),
|
| + left_offset(other.left_offset),
|
| + right_offset(other.right_offset),
|
| + top_offset(other.top_offset),
|
| + bottom_offset(other.bottom_offset),
|
| + scroll_container_relative_sticky_box_rect(
|
| + other.scroll_container_relative_sticky_box_rect),
|
| + scroll_container_relative_containing_block_rect(
|
| + other.scroll_container_relative_containing_block_rect) {}
|
| +
|
| +void LayerStickyPositionConstraint::ToProtobuf(
|
| + proto::LayerStickyPositionConstraint* proto) const {
|
| + proto->set_is_sticky(is_sticky);
|
| + proto->set_is_anchored_left(is_anchored_left);
|
| + proto->set_is_anchored_right(is_anchored_right);
|
| + proto->set_is_anchored_top(is_anchored_top);
|
| + proto->set_is_anchored_bottom(is_anchored_bottom);
|
| + proto->set_left_offset(left_offset);
|
| + proto->set_right_offset(right_offset);
|
| + proto->set_top_offset(top_offset);
|
| + proto->set_bottom_offset(bottom_offset);
|
| + RectToProto(scroll_container_relative_sticky_box_rect,
|
| + proto->mutable_scroll_container_relative_sticky_box_rect());
|
| + RectToProto(scroll_container_relative_containing_block_rect,
|
| + proto->mutable_scroll_container_relative_containing_block_rect());
|
| +}
|
| +
|
| +void LayerStickyPositionConstraint::FromProtobuf(
|
| + const proto::LayerStickyPositionConstraint& proto) {
|
| + is_sticky = proto.is_sticky();
|
| + is_anchored_left = proto.is_anchored_left();
|
| + is_anchored_right = proto.is_anchored_right();
|
| + is_anchored_top = proto.is_anchored_top();
|
| + is_anchored_bottom = proto.is_anchored_bottom();
|
| + left_offset = proto.left_offset();
|
| + right_offset = proto.right_offset();
|
| + top_offset = proto.top_offset();
|
| + bottom_offset = proto.bottom_offset();
|
| + scroll_container_relative_sticky_box_rect =
|
| + ProtoToRect(proto.scroll_container_relative_sticky_box_rect());
|
| + scroll_container_relative_containing_block_rect =
|
| + ProtoToRect(proto.scroll_container_relative_containing_block_rect());
|
| +}
|
| +
|
| +bool LayerStickyPositionConstraint::operator==(
|
| + const LayerStickyPositionConstraint& other) const {
|
| + if (!is_sticky && !other.is_sticky)
|
| + return true;
|
| + return is_sticky == other.is_sticky &&
|
| + is_anchored_left == other.is_anchored_left &&
|
| + is_anchored_right == other.is_anchored_right &&
|
| + is_anchored_top == other.is_anchored_top &&
|
| + is_anchored_bottom == other.is_anchored_bottom &&
|
| + left_offset == other.left_offset &&
|
| + right_offset == other.right_offset && top_offset == other.top_offset &&
|
| + bottom_offset == other.bottom_offset &&
|
| + scroll_container_relative_sticky_box_rect ==
|
| + other.scroll_container_relative_sticky_box_rect &&
|
| + scroll_container_relative_containing_block_rect ==
|
| + other.scroll_container_relative_containing_block_rect;
|
| +}
|
| +
|
| +bool LayerStickyPositionConstraint::operator!=(
|
| + const LayerStickyPositionConstraint& other) const {
|
| + return !(*this == other);
|
| +}
|
| +
|
| +} // namespace cc
|
|
|