// Copyright 2016 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 UI_DISPLAY_DISPLAY_FINDER_H_
#define UI_DISPLAY_DISPLAY_FINDER_H_

#include <vector>

#include "ui/display/display_export.h"

namespace gfx {
class Point;
class Rect;
}

namespace display {
class Display;

// Returns the display containing |point|. If no displays contain |point|, then
// this returns the display closest to |point|.
DISPLAY_EXPORT const Display* FindDisplayNearestPoint(
    const std::vector<Display>& displays,
    const gfx::Point& point);

// Returns the display in |displays| with the biggest intersection of |rect|.
// If none of the displays intersect |rect| null is returned.
DISPLAY_EXPORT const Display* FindDisplayWithBiggestIntersection(
    const std::vector<Display>& displays,
    const gfx::Rect& rect);

// Returns an iterator into |displays| of the Display whose bounds contains
// |point_in_screen|, or displays.end() if no Displays contains
// |point_in_screen|.
DISPLAY_EXPORT std::vector<Display>::const_iterator FindDisplayContainingPoint(
    const std::vector<Display>& displays,
    const gfx::Point& point_in_screen);

}  // namespace display

#endif  // UI_DISPLAY_DISPLAY_FINDER_H_
