Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: ui/message_center/message_center_tray.h

Issue 11819048: Implement message center on Windows (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Use notification manager instead of balloon view, remove singleton-ness from MessageCenterTray. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2013 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_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_H_
6 #define UI_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_H_
7
8 #include "base/observer_list.h"
9 #include "ui/message_center/message_center.h"
10 #include "ui/message_center/message_center_export.h"
11 #include "ui/views/bubble/tray_bubble_view.h"
12
13 template <typename T> struct DefaultSingletonTraits;
Jun Mukai 2013/01/22 18:55:34 No one looks singleton in this file. Can we remove
dewittj 2013/01/22 20:49:21 Done.
14
15 namespace message_center {
16 class MessageBubbleBase;
17 class MessagePopupBubble;
18 class QuietModeBubble;
19 }
20
21 namespace views {
22 class Widget;
23 }
24
25 namespace ui {
26
27 class MessageCenterTrayObserver {
28 public:
29 virtual void OnMessageCenterTrayChanged() = 0;
30
31 protected:
32 virtual ~MessageCenterTrayObserver() {}
33 };
34
35 class MessageCenterTrayDelegate {
36 public:
37 static MessageCenterTrayDelegate* CreateForPlatform();
38 virtual ~MessageCenterTrayDelegate() {};
39
40 virtual bool ShowPopups(message_center::MessageBubbleBase* bubble) = 0;
41 virtual void HidePopups() = 0;
42 virtual void UpdatePopups() = 0;
43 virtual bool ShowMessageCenter(message_center::MessageBubbleBase* bubble) = 0;
44 virtual void HideMessageCenter() = 0;
45 virtual void UpdateMessageCenter() = 0;
46 };
47
48 // Class that owns a MessageCenter and hosts it. Manages the popup and message
Jun Mukai 2013/01/22 18:55:34 This class doesn't own MessageCenter but only has
dewittj 2013/01/22 20:49:21 Fixed comment.
49 // center bubbles. Tells the MessageCenterTrayHost when the tray is changed, as
50 // well as when bubbles are shown and hidden.
51 class MESSAGE_CENTER_EXPORT MessageCenterTray
52 : public message_center::MessageCenter::Observer {
53 public:
54 MessageCenterTray(MessageCenterTrayDelegate* delegate,
55 message_center::MessageCenter* message_center);
56 virtual ~MessageCenterTray();
57
58 void AddObserver(MessageCenterTrayObserver* observer);
59 void RemoveObserver(MessageCenterTrayObserver* observer);
60
61 // Shows or updates the message center bubble and hides the popup bubble.
62 void ShowMessageCenterBubble();
63
64 // Returns whether the message center was visible before.
65 bool HideMessageCenterBubble();
66
67 void ToggleMessageCenterBubble();
68
69 // Causes an update if the popup bubble is already shown.
70 void ShowPopupBubble();
71
72 // Returns whether the popup was visible before.
73 bool HidePopupBubble();
74
75 bool message_center_visible() { return message_center_visible_; }
76 bool popups_visible() { return popups_visible_; }
77 MessageCenterTrayDelegate* delegate() { return delegate_; }
78 message_center::MessageCenter* message_center() { return message_center_; }
79
80 // Overridden from message_center::MessageCenter::Observer.
81 virtual void OnMessageCenterChanged(bool new_notification) OVERRIDE;
82
83 private:
84 // Notify each observer of events.
85 void NotifyMessageCenterTrayChanged();
86
87 message_center::MessageCenter* message_center_;
88 bool message_center_visible_;
89 bool popups_visible_;
90 MessageCenterTrayDelegate* delegate_;
91 ObserverList<MessageCenterTrayObserver> observers_;
92
93 DISALLOW_COPY_AND_ASSIGN(MessageCenterTray);
94 };
95
96 } // namespace ui
97
98 #endif // UI_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698