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#ifndef UI_VIEWS_WIDGET_TOOLTIP_MANAGER_AURA_H_
6#define UI_VIEWS_WIDGET_TOOLTIP_MANAGER_AURA_H_
7
8#include "base/compiler_specific.h"
9#include "base/strings/string16.h"
10#include "ui/gfx/point.h"
11#include "ui/views/widget/tooltip_manager.h"
12
13namespace aura {
14class RootWindow;
15class Window;
16}
17
18namespace views {
19
20class Widget;
21
22// TooltipManager implementation for Aura.
23class TooltipManagerAura : public TooltipManager {
24 public:
25  TooltipManagerAura(aura::Window* window, Widget* widget);
26  virtual ~TooltipManagerAura();
27
28  // TooltipManager.
29  virtual void UpdateTooltip() OVERRIDE;
30  virtual void TooltipTextChanged(View* view) OVERRIDE;
31  virtual void ShowKeyboardTooltip(View* view) OVERRIDE;
32  virtual void HideKeyboardTooltip() OVERRIDE;
33
34 private:
35  View* GetViewUnderPoint(const gfx::Point& point);
36  void UpdateTooltipForTarget(View* target,
37                              const gfx::Point& point,
38                              aura::RootWindow* root_window);
39
40  aura::Window* window_;
41  Widget* widget_;
42  string16 tooltip_text_;
43
44  DISALLOW_COPY_AND_ASSIGN(TooltipManagerAura);
45};
46
47}  // namespace views
48
49#endif  // UI_VIEWS_WIDGET_TOOLTIP_MANAGER_AURA_H_
50