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

Unified Diff: ui/views/widget/tooltip_manager_win.cc

Issue 25478006: Nukes some dead TooltipManager code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nuke field Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/widget/tooltip_manager_win.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/widget/tooltip_manager_win.cc
diff --git a/ui/views/widget/tooltip_manager_win.cc b/ui/views/widget/tooltip_manager_win.cc
index 362ff33e8864dd19619ee808ff402edf37e39d7a..31e6f6fa13b222ec8444d8d1d59ec89e21de6682 100644
--- a/ui/views/widget/tooltip_manager_win.cc
+++ b/ui/views/widget/tooltip_manager_win.cc
@@ -29,10 +29,6 @@ namespace views {
static int tooltip_height_ = 0;
-// Default timeout for the tooltip displayed using keyboard.
-// Timeout is measured in milliseconds.
-static const int kDefaultTimeout = 4000;
-
// static
int TooltipManager::GetTooltipHeight() {
DCHECK_GT(tooltip_height_, 0);
@@ -77,9 +73,7 @@ TooltipManagerWin::TooltipManagerWin(Widget* widget)
tooltip_showing_(false),
last_tooltip_view_(NULL),
last_view_out_of_sync_(false),
- tooltip_width_(0),
- keyboard_tooltip_hwnd_(NULL),
- keyboard_tooltip_factory_(this) {
+ tooltip_width_(0) {
DCHECK(widget);
DCHECK(widget->GetNativeView());
}
@@ -87,8 +81,6 @@ TooltipManagerWin::TooltipManagerWin(Widget* widget)
TooltipManagerWin::~TooltipManagerWin() {
if (tooltip_hwnd_)
DestroyWindow(tooltip_hwnd_);
- if (keyboard_tooltip_hwnd_)
- DestroyWindow(keyboard_tooltip_hwnd_);
}
bool TooltipManagerWin::Init() {
@@ -147,75 +139,76 @@ LRESULT TooltipManagerWin::OnNotify(int w_param,
NMHDR* l_param,
bool* handled) {
*handled = false;
- if (l_param->hwndFrom == tooltip_hwnd_ && keyboard_tooltip_hwnd_ == NULL) {
sky 2013/10/01 22:51:24 Making this an early return means I can indent all
- switch (l_param->code) {
- case TTN_GETDISPINFO: {
- if (last_view_out_of_sync_) {
- // View under the mouse is out of sync, determine it now.
- View* root_view = widget_->GetRootView();
- last_tooltip_view_ =
- root_view->GetTooltipHandlerForPoint(last_mouse_pos_);
- last_view_out_of_sync_ = false;
- }
- // Tooltip control is asking for the tooltip to display.
- NMTTDISPINFOW* tooltip_info =
- reinterpret_cast<NMTTDISPINFOW*>(l_param);
- // Initialize the string, if we have a valid tooltip the string will
- // get reset below.
- tooltip_info->szText[0] = TEXT('\0');
- tooltip_text_.clear();
- tooltip_info->lpszText = NULL;
- clipped_text_.clear();
- if (last_tooltip_view_ != NULL) {
- tooltip_text_.clear();
- // Mouse is over a View, ask the View for its tooltip.
- gfx::Point view_loc = last_mouse_pos_;
- View::ConvertPointToTarget(widget_->GetRootView(),
- last_tooltip_view_, &view_loc);
- if (last_tooltip_view_->GetTooltipText(view_loc, &tooltip_text_) &&
- !tooltip_text_.empty()) {
- // View has a valid tip, copy it into TOOLTIPINFO.
- clipped_text_ = tooltip_text_;
- gfx::Point screen_loc = last_mouse_pos_;
- View::ConvertPointToScreen(widget_->GetRootView(), &screen_loc);
- TrimTooltipToFit(&clipped_text_, &tooltip_width_, &line_count_,
- screen_loc.x(), screen_loc.y(),
- widget_->GetNativeView());
- // Adjust the clipped tooltip text for locale direction.
- base::i18n::AdjustStringForLocaleDirection(&clipped_text_);
- tooltip_info->lpszText = const_cast<WCHAR*>(clipped_text_.c_str());
- } else {
- tooltip_text_.clear();
- }
- }
- *handled = true;
- return 0;
+ if (l_param->hwndFrom != tooltip_hwnd_)
+ return 0;
+
+ switch (l_param->code) {
+ case TTN_GETDISPINFO: {
+ if (last_view_out_of_sync_) {
+ // View under the mouse is out of sync, determine it now.
+ View* root_view = widget_->GetRootView();
+ last_tooltip_view_ =
+ root_view->GetTooltipHandlerForPoint(last_mouse_pos_);
+ last_view_out_of_sync_ = false;
}
- case TTN_POP:
- tooltip_showing_ = false;
- *handled = true;
- return 0;
- case TTN_SHOW: {
- *handled = true;
- tooltip_showing_ = true;
- // The tooltip is about to show, allow the view to position it
- gfx::Point text_origin;
- if (tooltip_height_ == 0)
- tooltip_height_ = CalcTooltipHeight();
+ // Tooltip control is asking for the tooltip to display.
+ NMTTDISPINFOW* tooltip_info =
+ reinterpret_cast<NMTTDISPINFOW*>(l_param);
+ // Initialize the string, if we have a valid tooltip the string will
+ // get reset below.
+ tooltip_info->szText[0] = TEXT('\0');
+ tooltip_text_.clear();
+ tooltip_info->lpszText = NULL;
+ clipped_text_.clear();
+ if (last_tooltip_view_ != NULL) {
+ tooltip_text_.clear();
+ // Mouse is over a View, ask the View for its tooltip.
gfx::Point view_loc = last_mouse_pos_;
View::ConvertPointToTarget(widget_->GetRootView(),
last_tooltip_view_, &view_loc);
- if (last_tooltip_view_->GetTooltipTextOrigin(view_loc, &text_origin) &&
- SetTooltipPosition(text_origin.x(), text_origin.y())) {
- // Return true, otherwise the rectangle we specified is ignored.
- return TRUE;
+ if (last_tooltip_view_->GetTooltipText(view_loc, &tooltip_text_) &&
+ !tooltip_text_.empty()) {
+ // View has a valid tip, copy it into TOOLTIPINFO.
+ clipped_text_ = tooltip_text_;
+ gfx::Point screen_loc = last_mouse_pos_;
+ View::ConvertPointToScreen(widget_->GetRootView(), &screen_loc);
+ TrimTooltipToFit(&clipped_text_, &tooltip_width_, &line_count_,
+ screen_loc.x(), screen_loc.y(),
+ widget_->GetNativeView());
+ // Adjust the clipped tooltip text for locale direction.
+ base::i18n::AdjustStringForLocaleDirection(&clipped_text_);
+ tooltip_info->lpszText = const_cast<WCHAR*>(clipped_text_.c_str());
+ } else {
+ tooltip_text_.clear();
}
- return 0;
}
- default:
- // Fall through.
- break;
+ *handled = true;
+ return 0;
+ }
+ case TTN_POP:
+ tooltip_showing_ = false;
+ *handled = true;
+ return 0;
+ case TTN_SHOW: {
+ *handled = true;
+ tooltip_showing_ = true;
+ // The tooltip is about to show, allow the view to position it
+ gfx::Point text_origin;
+ if (tooltip_height_ == 0)
+ tooltip_height_ = CalcTooltipHeight();
+ gfx::Point view_loc = last_mouse_pos_;
+ View::ConvertPointToTarget(widget_->GetRootView(),
+ last_tooltip_view_, &view_loc);
+ if (last_tooltip_view_->GetTooltipTextOrigin(view_loc, &text_origin) &&
+ SetTooltipPosition(text_origin.x(), text_origin.y())) {
+ // Return true, otherwise the rectangle we specified is ignored.
+ return TRUE;
+ }
+ return 0;
}
+ default:
+ // Fall through.
+ break;
}
return 0;
}
@@ -313,7 +306,6 @@ void TooltipManagerWin::OnMouse(UINT u_msg, WPARAM w_param, LPARAM l_param) {
if (u_msg != WM_MOUSEMOVE || last_mouse_pos_ != mouse_pos) {
last_mouse_pos_ = mouse_pos;
- HideKeyboardTooltip();
UpdateTooltip(mouse_pos);
}
// Forward the message onto the tooltip.
@@ -325,75 +317,4 @@ void TooltipManagerWin::OnMouse(UINT u_msg, WPARAM w_param, LPARAM l_param) {
SendMessage(tooltip_hwnd_, TTM_RELAYEVENT, 0, (LPARAM)&msg);
}
-void TooltipManagerWin::ShowKeyboardTooltip(View* focused_view) {
- if (tooltip_showing_) {
- SendMessage(tooltip_hwnd_, TTM_POP, 0, 0);
- tooltip_text_.clear();
- }
- HideKeyboardTooltip();
- string16 tooltip_text;
- if (!focused_view->GetTooltipText(gfx::Point(), &tooltip_text))
- return;
- gfx::Rect focused_bounds = focused_view->bounds();
- gfx::Point screen_point;
- focused_view->ConvertPointToScreen(focused_view, &screen_point);
- keyboard_tooltip_hwnd_ = CreateWindowEx(
- WS_EX_TRANSPARENT | l10n_util::GetExtendedTooltipStyles(),
- TOOLTIPS_CLASS, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
- if (!keyboard_tooltip_hwnd_)
- return;
-
- SendMessage(keyboard_tooltip_hwnd_, TTM_SETMAXTIPWIDTH, 0,
- std::numeric_limits<int16>::max());
- int tooltip_width;
- int line_count;
- TrimTooltipToFit(&tooltip_text, &tooltip_width, &line_count,
- screen_point.x(), screen_point.y(),
- widget_->GetNativeView());
- ReplaceSubstringsAfterOffset(&tooltip_text, 0, L"\n", L"\r\n");
- TOOLINFO keyboard_toolinfo;
- memset(&keyboard_toolinfo, 0, sizeof(keyboard_toolinfo));
- keyboard_toolinfo.cbSize = sizeof(keyboard_toolinfo);
- keyboard_toolinfo.hwnd = GetParent();
- keyboard_toolinfo.uFlags = TTF_TRACK | TTF_TRANSPARENT | TTF_IDISHWND;
- keyboard_toolinfo.lpszText = const_cast<WCHAR*>(tooltip_text.c_str());
- SendMessage(keyboard_tooltip_hwnd_, TTM_ADDTOOL, 0,
- reinterpret_cast<LPARAM>(&keyboard_toolinfo));
- SendMessage(keyboard_tooltip_hwnd_, TTM_TRACKACTIVATE, TRUE,
- reinterpret_cast<LPARAM>(&keyboard_toolinfo));
- if (!tooltip_height_)
- tooltip_height_ = CalcTooltipHeight();
- RECT rect_bounds = {screen_point.x(),
- screen_point.y() + focused_bounds.height(),
- screen_point.x() + tooltip_width,
- screen_point.y() + focused_bounds.height() +
- line_count * tooltip_height_ };
- gfx::Rect monitor_bounds =
- views::GetMonitorBoundsForRect(gfx::Rect(rect_bounds));
- gfx::Rect fitted_bounds = gfx::Rect(rect_bounds);
- fitted_bounds.AdjustToFit(monitor_bounds);
- rect_bounds = fitted_bounds.ToRECT();
- ::SetWindowPos(keyboard_tooltip_hwnd_, NULL, rect_bounds.left,
- rect_bounds.top, 0, 0,
- SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOSIZE);
- base::MessageLoop::current()->PostDelayedTask(
- FROM_HERE,
- base::Bind(&TooltipManagerWin::DestroyKeyboardTooltipWindow,
- keyboard_tooltip_factory_.GetWeakPtr(),
- keyboard_tooltip_hwnd_),
- base::TimeDelta::FromMilliseconds(kDefaultTimeout));
-}
-
-void TooltipManagerWin::HideKeyboardTooltip() {
- if (keyboard_tooltip_hwnd_ != NULL) {
- SendMessage(keyboard_tooltip_hwnd_, WM_CLOSE, 0, 0);
- keyboard_tooltip_hwnd_ = NULL;
- }
-}
-
-void TooltipManagerWin::DestroyKeyboardTooltipWindow(HWND window_to_destroy) {
- if (keyboard_tooltip_hwnd_ == window_to_destroy)
- HideKeyboardTooltip();
-}
-
} // namespace views
« no previous file with comments | « ui/views/widget/tooltip_manager_win.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698