• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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/widget/tooltip_manager.h"
6 
7 #include "ui/gfx/rect.h"
8 #include "ui/gfx/screen.h"
9 #include "ui/gfx/text_elider.h"
10 
11 namespace views {
12 
13 const size_t kMaxTooltipLength = 1024;
14 
15 // static
16 const char TooltipManager::kGroupingPropertyKey[] = "GroupingPropertyKey";
17 
18 // static
GetMaxWidth(int x,int y,gfx::NativeView context)19 int TooltipManager::GetMaxWidth(int x, int y, gfx::NativeView context) {
20   return GetMaxWidth(gfx::Screen::GetScreenFor(context)->GetDisplayNearestPoint(
21                          gfx::Point(x, y)));
22 }
23 
24 // static
GetMaxWidth(const gfx::Display & display)25 int TooltipManager::GetMaxWidth(const gfx::Display& display) {
26   return (display.bounds().width() + 1) / 2;
27 }
28 
29 // static
TrimTooltipText(base::string16 * text)30 void TooltipManager::TrimTooltipText(base::string16* text) {
31   // Clamp the tooltip length to kMaxTooltipLength so that we don't
32   // accidentally DOS the user with a mega tooltip.
33   *text = gfx::TruncateString(*text, kMaxTooltipLength);
34 }
35 
36 }  // namespace views
37