Index: ash/system/tray/system_tray_bubble.h |
diff --git a/ash/system/tray/system_tray_bubble.h b/ash/system/tray/system_tray_bubble.h |
index fbb2bc0eca3903c06970729faca7f2680cea219b..db313948edea00d2e846c6876b39fd98a2bea7ce 100644 |
--- a/ash/system/tray/system_tray_bubble.h |
+++ b/ash/system/tray/system_tray_bubble.h |
@@ -6,12 +6,12 @@ |
#define ASH_SYSTEM_TRAY_SYSTEM_TRAY_BUBBLE_H_ |
#pragma once |
+#include "ash/system/tray/system_tray_bubble_view.h" |
#include "ash/system/user/login_status.h" |
#include "ash/wm/shelf_auto_hide_behavior.h" |
#include "base/base_export.h" |
#include "base/timer.h" |
#include "ui/aura/event_filter.h" |
-#include "ui/views/bubble/bubble_delegate.h" |
#include "ui/views/widget/widget.h" |
#include <vector> |
@@ -27,52 +27,9 @@ class SystemTrayItem; |
namespace internal { |
-class SystemTrayBubble; |
- |
-class SystemTrayBubbleView : public views::BubbleDelegateView { |
- public: |
- SystemTrayBubbleView(views::View* anchor, |
- views::BubbleBorder::ArrowLocation arrow_location, |
- SystemTrayBubble* host, |
- bool can_activate); |
- virtual ~SystemTrayBubbleView(); |
- |
- void SetBubbleBorder(views::BubbleBorder* border); |
- |
- void UpdateAnchor(); |
- |
- // Called when the host is destroyed. |
- void reset_host() { host_ = NULL; } |
- |
- private: |
- friend class SystemTrayBubble; |
- |
- // Overridden from views::BubbleDelegateView. |
- virtual void Init() OVERRIDE; |
- virtual gfx::Rect GetAnchorRect() OVERRIDE; |
- virtual bool CanActivate() const OVERRIDE; |
- |
- // Overridden from views::View. |
- virtual gfx::Size GetPreferredSize() OVERRIDE; |
- virtual void OnMouseEntered(const views::MouseEvent& event) OVERRIDE; |
- virtual void OnMouseExited(const views::MouseEvent& event) OVERRIDE; |
- virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; |
- virtual void ChildPreferredSizeChanged(View* child) OVERRIDE; |
- virtual void ViewHierarchyChanged(bool is_add, |
- views::View* parent, |
- views::View* child) OVERRIDE; |
- |
- void set_max_height(int height) { max_height_ = height; } |
- |
- SystemTrayBubble* host_; |
- bool can_activate_; |
- int max_height_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SystemTrayBubbleView); |
-}; |
- |
class SystemTrayBubble : public aura::EventFilter, |
- public views::Widget::Observer { |
+ public views::Widget::Observer, |
+ public SystemTrayBubbleView::Host { |
public: |
enum BubbleType { |
BUBBLE_TYPE_DEFAULT, |
@@ -109,7 +66,11 @@ class SystemTrayBubble : public aura::EventFilter, |
// Also creates |bubble_widget_| and sets up animations. |
void InitView(const InitParams& init_params); |
- gfx::Rect GetAnchorRect() const; |
+ // Overridden from SystemTrayBubbleView::Host. |
+ virtual void BubbleViewDestroyed() OVERRIDE; |
+ virtual gfx::Rect GetAnchorRect() const OVERRIDE; |
+ virtual void OnMouseEnteredView() OVERRIDE; |
+ virtual void OnMouseExitedView() OVERRIDE; |
BubbleType bubble_type() const { return bubble_type_; } |
SystemTrayBubbleView* bubble_view() const { return bubble_view_; } |
@@ -119,6 +80,8 @@ class SystemTrayBubble : public aura::EventFilter, |
void StopAutoCloseTimer(); |
void RestartAutoCloseTimer(); |
void Close(); |
+ void SetVisible(bool is_visible); |
+ bool IsVisible(); |
private: |
void CreateItemViews(user::LoginStatus login_status); |