Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: ui/views/corewm/tooltip_win.cc

Issue 1679393002: Multiple DPI Tracking for ScreenWin (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR Feedback EXCEPT rect_util Rename Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/corewm/tooltip_win.h" 5 #include "ui/views/corewm/tooltip_win.h"
6 6
7 #include <winuser.h> 7 #include <winuser.h>
8 8
9 #include "base/debug/stack_trace.h" 9 #include "base/debug/stack_trace.h"
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "ui/base/l10n/l10n_util_win.h" 12 #include "ui/base/l10n/l10n_util_win.h"
13 #include "ui/gfx/geometry/rect.h" 13 #include "ui/gfx/geometry/rect.h"
14 #include "ui/gfx/screen.h" 14 #include "ui/gfx/screen.h"
15 #include "ui/gfx/win/dpi.h" 15 #include "ui/gfx/screen_win.h"
16 #include "ui/views/corewm/cursor_height_provider_win.h" 16 #include "ui/views/corewm/cursor_height_provider_win.h"
17 17
18 namespace views { 18 namespace views {
19 namespace corewm { 19 namespace corewm {
20 20
21 TooltipWin::TooltipWin(HWND parent) 21 TooltipWin::TooltipWin(HWND parent)
22 : parent_hwnd_(parent), 22 : parent_hwnd_(parent),
23 tooltip_hwnd_(NULL), 23 tooltip_hwnd_(NULL),
24 showing_(false) { 24 showing_(false) {
25 memset(&toolinfo_, 0, sizeof(toolinfo_)); 25 memset(&toolinfo_, 0, sizeof(toolinfo_));
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 } 70 }
71 71
72 l10n_util::AdjustUIFontForWindow(tooltip_hwnd_); 72 l10n_util::AdjustUIFontForWindow(tooltip_hwnd_);
73 73
74 SendMessage(tooltip_hwnd_, TTM_ADDTOOL, 0, 74 SendMessage(tooltip_hwnd_, TTM_ADDTOOL, 0,
75 reinterpret_cast<LPARAM>(&toolinfo_)); 75 reinterpret_cast<LPARAM>(&toolinfo_));
76 return true; 76 return true;
77 } 77 }
78 78
79 void TooltipWin::PositionTooltip() { 79 void TooltipWin::PositionTooltip() {
80 gfx::Point screen_point = gfx::win::DIPToScreenPoint(location_); 80 gfx::Point screen_point = gfx::ScreenWin::DIPToScreenPoint(location_);
81 const int cursoroffset = GetCurrentCursorVisibleHeight(); 81 const int cursoroffset = GetCurrentCursorVisibleHeight();
82 screen_point.Offset(0, cursoroffset); 82 screen_point.Offset(0, cursoroffset);
83 83
84 DWORD tooltip_size = SendMessage(tooltip_hwnd_, TTM_GETBUBBLESIZE, 0, 84 DWORD tooltip_size = SendMessage(tooltip_hwnd_, TTM_GETBUBBLESIZE, 0,
85 reinterpret_cast<LPARAM>(&toolinfo_)); 85 reinterpret_cast<LPARAM>(&toolinfo_));
86 const gfx::Size size(LOWORD(tooltip_size), HIWORD(tooltip_size)); 86 const gfx::Size size(LOWORD(tooltip_size), HIWORD(tooltip_size));
87 87
88 const gfx::Display display( 88 const gfx::Display display(
89 gfx::Screen::GetScreen()->GetDisplayNearestPoint(screen_point)); 89 gfx::Screen::GetScreen()->GetDisplayNearestPoint(location_));
90 90
91 gfx::Rect tooltip_bounds(screen_point, size); 91 gfx::Rect tooltip_bounds(screen_point, size);
92 tooltip_bounds.AdjustToFit(gfx::win::DIPToScreenRect(display.work_area())); 92 tooltip_bounds.AdjustToFit(
93 gfx::ScreenWin::DIPToScreenRect(parent_hwnd_, display.work_area()));
93 SetWindowPos(tooltip_hwnd_, NULL, tooltip_bounds.x(), tooltip_bounds.y(), 0, 94 SetWindowPos(tooltip_hwnd_, NULL, tooltip_bounds.x(), tooltip_bounds.y(), 0,
94 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); 95 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
95 } 96 }
96 97
97 int TooltipWin::GetMaxWidth(const gfx::Point& location) const { 98 int TooltipWin::GetMaxWidth(const gfx::Point& location) const {
98 const gfx::Point screen_point = gfx::win::DIPToScreenPoint(location); 99 const gfx::Point screen_point = gfx::ScreenWin::DIPToScreenPoint(location);
99 gfx::Display display( 100 gfx::Display display(
100 gfx::Screen::GetScreen()->GetDisplayNearestPoint(screen_point)); 101 gfx::Screen::GetScreen()->GetDisplayNearestPoint(screen_point));
101 const gfx::Rect monitor_bounds = display.bounds(); 102 const gfx::Rect monitor_bounds = display.bounds();
102 return (monitor_bounds.width() + 1) / 2; 103 return (monitor_bounds.width() + 1) / 2;
103 } 104 }
104 105
105 void TooltipWin::SetText(aura::Window* window, 106 void TooltipWin::SetText(aura::Window* window,
106 const base::string16& tooltip_text, 107 const base::string16& tooltip_text,
107 const gfx::Point& location) { 108 const gfx::Point& location) {
108 if (!EnsureTooltipWindow()) 109 if (!EnsureTooltipWindow())
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 SendMessage(tooltip_hwnd_, TTM_TRACKACTIVATE, FALSE, 145 SendMessage(tooltip_hwnd_, TTM_TRACKACTIVATE, FALSE,
145 reinterpret_cast<LPARAM>(&toolinfo_)); 146 reinterpret_cast<LPARAM>(&toolinfo_));
146 } 147 }
147 148
148 bool TooltipWin::IsVisible() { 149 bool TooltipWin::IsVisible() {
149 return showing_; 150 return showing_;
150 } 151 }
151 152
152 } // namespace corewm 153 } // namespace corewm
153 } // namespace views 154 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/controls/menu/menu_controller.cc ('k') | ui/views/widget/desktop_aura/desktop_window_tree_host_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698