// 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_POSITION_CONSTRAINT_H_
#define CC_LAYERS_LAYER_POSITION_CONSTRAINT_H_

#include "cc/cc_export.h"

namespace cc {

class CC_EXPORT LayerPositionConstraint {
 public:
  LayerPositionConstraint();

  void set_is_fixed_position(bool fixed) { is_fixed_position_ = fixed; }
  bool is_fixed_position() const { return is_fixed_position_; }
  void set_is_fixed_to_right_edge(bool fixed) {
    is_fixed_to_right_edge_ = fixed;
  }
  bool is_fixed_to_right_edge() const { return is_fixed_to_right_edge_; }
  void set_is_fixed_to_bottom_edge(bool fixed) {
    is_fixed_to_bottom_edge_ = fixed;
  }
  bool is_fixed_to_bottom_edge() const { return is_fixed_to_bottom_edge_; }

  bool operator==(const LayerPositionConstraint&) const;
  bool operator!=(const LayerPositionConstraint&) const;

 private:
  bool is_fixed_position_       : 1;
  bool is_fixed_to_right_edge_  : 1;
  bool is_fixed_to_bottom_edge_ : 1;
};

}  // namespace cc

#endif  // CC_LAYERS_LAYER_POSITION_CONSTRAINT_H_
