| // 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_ |