1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ui/views/rect_based_targeting_utils.h" 6 7 #include "ui/gfx/point.h" 8 #include "ui/gfx/rect.h" 9 10 namespace views { 11 12 bool UsePointBasedTargeting(const gfx::Rect& rect) { 13 return rect.width() == 1 && rect.height() == 1; 14 } 15 16 float PercentCoveredBy(const gfx::Rect& rect_1, const gfx::Rect& rect_2) { 17 gfx::Rect intersection(rect_1); 18 intersection.Intersect(rect_2); 19 int intersect_area = intersection.size().GetArea(); 20 int rect_1_area = rect_1.size().GetArea(); 21 return rect_1_area ? 22 static_cast<float>(intersect_area) / static_cast<float>(rect_1_area) : 0; 23 } 24 25 int DistanceSquaredFromCenterToPoint(const gfx::Point& point, 26 const gfx::Rect& rect) { 27 gfx::Point center_point = rect.CenterPoint(); 28 int dx = center_point.x() - point.x(); 29 int dy = center_point.y() - point.y(); 30 return (dx * dx) + (dy * dy); 31 } 32 33 } // namespace views 34