Index: ui/views/bubble/tooltip_icon.h |
diff --git a/chrome/browser/ui/views/autofill/tooltip_icon.h b/ui/views/bubble/tooltip_icon.h |
similarity index 62% |
rename from chrome/browser/ui/views/autofill/tooltip_icon.h |
rename to ui/views/bubble/tooltip_icon.h |
index 482ba0b963ad498f22c1fc40723cdb2593d1cef9..327bdd505b25d1a8dbcd1a13effc037d1e7138db 100644 |
--- a/chrome/browser/ui/views/autofill/tooltip_icon.h |
+++ b/ui/views/bubble/tooltip_icon.h |
@@ -2,50 +2,47 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CHROME_BROWSER_UI_VIEWS_AUTOFILL_TOOLTIP_ICON_H_ |
-#define CHROME_BROWSER_UI_VIEWS_AUTOFILL_TOOLTIP_ICON_H_ |
+#ifndef UI_VIEWS_BUBBLE_TOOLTIP_ICON_H_ |
+#define UI_VIEWS_BUBBLE_TOOLTIP_ICON_H_ |
#include <memory> |
-#include "base/compiler_specific.h" |
#include "base/macros.h" |
#include "base/scoped_observer.h" |
#include "base/strings/string16.h" |
#include "base/timer/timer.h" |
-#include "ui/views/bubble/bubble_border.h" |
#include "ui/views/controls/image_view.h" |
#include "ui/views/mouse_watcher.h" |
#include "ui/views/widget/widget_observer.h" |
-namespace autofill { |
+namespace views { |
class InfoBubble; |
-// A tooltip icon that shows a bubble on hover. Looks like (?). |
-class TooltipIcon : public views::ImageView, |
- public views::MouseWatcherListener, |
- public views::WidgetObserver { |
+// A tooltip icon that shows a bubble on hover. Looks like (i). |
+class VIEWS_EXPORT TooltipIcon : public ImageView, |
+ public MouseWatcherListener, |
+ public WidgetObserver { |
public: |
- static const char kViewClassName[]; |
- |
explicit TooltipIcon(const base::string16& tooltip); |
~TooltipIcon() override; |
- // views::ImageView: |
+ // ImageView: |
const char* GetClassName() const override; |
void OnMouseEntered(const ui::MouseEvent& event) override; |
void OnMouseExited(const ui::MouseEvent& event) override; |
+ bool OnMousePressed(const ui::MouseEvent& event) override; |
void OnGestureEvent(ui::GestureEvent* event) override; |
void GetAccessibleNodeData(ui::AXNodeData* node_data) override; |
- // views::MouseWatcherListener: |
+ // MouseWatcherListener: |
void MouseMovedOutOfHost() override; |
- // views::WidgetObserver: |
- void OnWidgetDestroyed(views::Widget* widget) override; |
+ // WidgetObserver: |
+ void OnWidgetDestroyed(Widget* widget) override; |
- void set_bubble_arrow(views::BubbleBorder::Arrow arrow) { |
- bubble_arrow_ = arrow; |
+ void set_bubble_width(int preferred_width) { |
+ preferred_width_ = preferred_width; |
} |
private: |
@@ -68,20 +65,20 @@ class TooltipIcon : public views::ImageView, |
// A bubble shown on hover. Weak; owns itself. NULL while hiding. |
InfoBubble* bubble_; |
- // The position of the bubble's arrow. |
- views::BubbleBorder::Arrow bubble_arrow_; |
+ // The width the tooltip prefers to be. Default is 0 (no preference). |
+ int preferred_width_; |
// A timer to delay showing |bubble_|. |
base::OneShotTimer show_timer_; |
// A watcher that keeps |bubble_| open if the user's mouse enters it. |
- std::unique_ptr<views::MouseWatcher> mouse_watcher_; |
+ std::unique_ptr<MouseWatcher> mouse_watcher_; |
- ScopedObserver<views::Widget, TooltipIcon> observer_; |
+ ScopedObserver<Widget, TooltipIcon> observer_; |
DISALLOW_COPY_AND_ASSIGN(TooltipIcon); |
}; |
-} // namespace autofill |
+} // namespace views |
-#endif // CHROME_BROWSER_UI_VIEWS_AUTOFILL_TOOLTIP_ICON_H_ |
+#endif // UI_VIEWS_BUBBLE_TOOLTIP_ICON_H_ |