| Index: cc/layers/layer_sticky_position_constraint.h
|
| diff --git a/cc/layers/layer_sticky_position_constraint.h b/cc/layers/layer_sticky_position_constraint.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b575a23aa26bf1978baaf11a462c0818222e7af4
|
| --- /dev/null
|
| +++ b/cc/layers/layer_sticky_position_constraint.h
|
| @@ -0,0 +1,55 @@
|
| +// 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.
|
| +
|
| +#ifndef CC_LAYERS_LAYER_STICKY_POSITION_CONSTRAINT_H_
|
| +#define CC_LAYERS_LAYER_STICKY_POSITION_CONSTRAINT_H_
|
| +
|
| +#include "cc/base/cc_export.h"
|
| +
|
| +#include "ui/gfx/geometry/rect.h"
|
| +
|
| +namespace cc {
|
| +
|
| +namespace proto {
|
| +class LayerStickyPositionConstraint;
|
| +}
|
| +
|
| +struct CC_EXPORT LayerStickyPositionConstraint {
|
| + LayerStickyPositionConstraint();
|
| + LayerStickyPositionConstraint(const LayerStickyPositionConstraint& other);
|
| +
|
| + bool is_sticky : 1;
|
| + bool is_anchored_left : 1;
|
| + bool is_anchored_right : 1;
|
| + bool is_anchored_top : 1;
|
| + bool is_anchored_bottom : 1;
|
| +
|
| + // The offset from each edge of the ancestor scroller (or the viewport) to
|
| + // try to maintain to the sticky box as we scroll.
|
| + float left_offset;
|
| + float right_offset;
|
| + float top_offset;
|
| + float bottom_offset;
|
| +
|
| + // The rectangle corresponding to original layout position of the sticky box
|
| + // relative to the scroll ancestor. The sticky box is only offset once the
|
| + // scroll has passed its initial position (e.g. top_offset will only push
|
| + // the element down from its original position).
|
| + gfx::Rect scroll_container_relative_sticky_box_rect;
|
| +
|
| + // The layout rectangle of the sticky box's containing block relative to the
|
| + // scroll ancestor. The sticky box is only moved as far as its containing
|
| + // block boundary.
|
| + gfx::Rect scroll_container_relative_containing_block_rect;
|
| +
|
| + void ToProtobuf(proto::LayerStickyPositionConstraint* proto) const;
|
| + void FromProtobuf(const proto::LayerStickyPositionConstraint& proto);
|
| +
|
| + bool operator==(const LayerStickyPositionConstraint&) const;
|
| + bool operator!=(const LayerStickyPositionConstraint&) const;
|
| +};
|
| +
|
| +} // namespace cc
|
| +
|
| +#endif // CC_LAYERS_LAYER_STICKY_POSITION_CONSTRAINT_H_
|
|
|