// Copyright 2014 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_INPUT_LAYER_SELECTION_BOUND_H_
#define CC_INPUT_LAYER_SELECTION_BOUND_H_

#include "cc/cc_export.h"
#include "components/viz/common/quads/selection.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/selection_bound.h"

namespace cc {

// Marker for a selection end-point attached to a specific layer.
// TODO(fsamuel): This could be unified with gfx::SelectionBound.
struct CC_EXPORT LayerSelectionBound {
  LayerSelectionBound();
  ~LayerSelectionBound();

  gfx::SelectionBound::Type type;
  gfx::Point edge_top;
  gfx::Point edge_bottom;
  int layer_id;
  // Whether this bound is hidden (clipped out/occluded) within the painted
  // content of the layer (as opposed to being outside of the layer's bounds).
  bool hidden;

  bool operator==(const LayerSelectionBound& other) const;
  bool operator!=(const LayerSelectionBound& other) const;
};

using LayerSelection = viz::Selection<LayerSelectionBound>;

}  // namespace cc

#endif  // CC_INPUT_LAYER_SELECTION_BOUND_H_
