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 13 namespace aura { 14 class Window; 15 } 16 17 namespace gfx { 18 class FontList; 19 } 20 21 namespace views { 22 23 class Widget; 24 25 // TooltipManager implementation for Aura. 26 class TooltipManagerAura : public TooltipManager { 27 public: 28 explicit TooltipManagerAura(Widget* widget); 29 virtual ~TooltipManagerAura(); 30 31 // If |source| has capture this finds the Widget under the mouse and invokes 32 // UpdateTooltip() on it's TooltipManager. This is necessary as when capture 33 // is held mouse events are only delivered to the Window that has capture even 34 // though we may show tooltips for the Window under the mouse. 35 static void UpdateTooltipManagerForCapture(Widget* source); 36 37 // Returns the FontList used by all TooltipManagerAuras. 38 static const gfx::FontList& GetDefaultFontList(); 39 40 // TooltipManager: 41 virtual const gfx::FontList& GetFontList() const OVERRIDE; 42 virtual void UpdateTooltip() OVERRIDE; 43 virtual void TooltipTextChanged(View* view) OVERRIDE; 44 45 private: 46 View* GetViewUnderPoint(const gfx::Point& point); 47 void UpdateTooltipForTarget(View* target, 48 const gfx::Point& point, 49 aura::Window* root_window); 50 51 // Returns the Window the tooltip text is installed on. 52 aura::Window* GetWindow(); 53 54 Widget* widget_; 55 string16 tooltip_text_; 56 57 DISALLOW_COPY_AND_ASSIGN(TooltipManagerAura); 58 }; 59 60 } // namespace views 61 62 #endif // UI_VIEWS_WIDGET_TOOLTIP_MANAGER_AURA_H_ 63