1 // Copyright (c) 2012 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.
5 #ifndef UI_MESSAGE_CENTER_VIEWS_MESSAGE_CENTER_BUBBLE_H_
6 #define UI_MESSAGE_CENTER_VIEWS_MESSAGE_CENTER_BUBBLE_H_
8 #include "base/memory/weak_ptr.h"
9 #include "ui/message_center/message_center_export.h"
10 #include "ui/message_center/views/message_bubble_base.h"
11 #include "ui/views/widget/widget_observer.h"
13 namespace message_center
{
15 class MessageCenterView
;
17 // Bubble for message center.
18 class MESSAGE_CENTER_EXPORT MessageCenterBubble
19 : public MessageBubbleBase
,
20 public views::WidgetObserver
,
21 public base::SupportsWeakPtr
<MessageCenterBubble
> {
23 MessageCenterBubble(MessageCenter
* message_center
,
24 MessageCenterTray
* tray
,
25 bool first_item_has_no_margin
);
27 virtual ~MessageCenterBubble();
29 void SetSettingsVisible();
31 // Overridden from views::WidgetObserver:
32 virtual void OnWidgetClosing(views::Widget
* widget
) OVERRIDE
;
34 // Overridden from MessageBubbleBase:
35 virtual views::TrayBubbleView::InitParams
GetInitParams(
36 views::TrayBubbleView::AnchorAlignment anchor_alignment
) OVERRIDE
;
37 virtual void InitializeContents(views::TrayBubbleView
* bubble_view
) OVERRIDE
;
38 virtual void OnBubbleViewDestroyed() OVERRIDE
;
39 virtual void UpdateBubbleView() OVERRIDE
;
40 virtual void OnMouseEnteredView() OVERRIDE
;
41 virtual void OnMouseExitedView() OVERRIDE
;
43 size_t NumMessageViewsForTest() const;
46 MessageCenterView
* message_center_view_
;
51 // Use settings view as the initially visible content if true.
52 bool initially_settings_visible_
;
54 // True if the first message which gets shown should have no margin against
56 bool first_item_has_no_margin_
;
58 DISALLOW_COPY_AND_ASSIGN(MessageCenterBubble
);
61 } // namespace message_center
63 #endif // UI_MESSAGE_CENTER_VIEWS_MESSAGE_CENTER_BUBBLE_H_