30 lines
1.3 KiB
C++
30 lines
1.3 KiB
C++
// Copyright (c) 2022 The Chromium Embedded Framework 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 CEF_LIBCEF_BROWSER_GEOMETRY_UTIL_H_
|
|
#define CEF_LIBCEF_BROWSER_GEOMETRY_UTIL_H_
|
|
#pragma once
|
|
|
|
namespace gfx {
|
|
class Rect;
|
|
}
|
|
|
|
// Create a new rectangle from the input |rect| rectangle that is fully visible
|
|
// on provided |screen_rect| screen. The width and height of the resulting
|
|
// rectangle are clamped to the screen width and height respectively if they
|
|
// would overflow.
|
|
gfx::Rect MakeVisibleOnScreenRect(const gfx::Rect& rect,
|
|
const gfx::Rect& screen);
|
|
|
|
// Possibly subtract |overlay| from |bounds|. We only want to subtract overlays
|
|
// that are inside |bounds| and close to the edges, so |max_distance| is the
|
|
// maximum allowed distance between |overlay| and |bounds| extents in order to
|
|
// trigger the subtraction. Subtraction will occur from the closest edge. If
|
|
// distances are otherwise equal then top will be preferred followed by left.
|
|
gfx::Rect SubtractOverlayFromBoundingBox(const gfx::Rect& bounds,
|
|
const gfx::Rect& overlay,
|
|
int max_distance);
|
|
|
|
#endif // CEF_LIBCEF_BROWSER_GEOMETRY_UTIL_H_
|