Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ui / message_center / message_center_tray_delegate.h
blobd1d31ac23f07905a95adb0efc61668dbbceb2af3
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.
5 #ifndef UI_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_DELEGATE_H_
6 #define UI_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_DELEGATE_H_
8 #include "ui/message_center/message_center_export.h"
10 namespace message_center {
12 class MessageCenterTray;
14 // A MessageCenterTrayDelegate class is responsible for managing the various UI
15 // surfaces that should be displayed when the MessageCenter is changed.
16 class MESSAGE_CENTER_EXPORT MessageCenterTrayDelegate {
17 public:
18 virtual ~MessageCenterTrayDelegate() {};
20 // Called whenever a change to the visible UI has occurred.
21 virtual void OnMessageCenterTrayChanged() = 0;
23 // Display the popup bubbles for new notifications to the user. Returns true
24 // if popups were actually displayed to the user.
25 virtual bool ShowPopups() = 0;
27 // Remove the popup bubbles from the UI.
28 virtual void HidePopups() = 0;
30 // Display the message center containing all undismissed notifications to the
31 // user. Returns true if the center was actually displayed to the user.
32 virtual bool ShowMessageCenter() = 0;
34 // Remove the message center from the UI.
35 virtual void HideMessageCenter() = 0;
37 // Display the notifier settings as a bubble.
38 virtual bool ShowNotifierSettings() = 0;
40 // Returns true if the context menu for a notification is currently enabled.
41 virtual bool IsContextMenuEnabled() const = 0;
43 // Show a platform-specific UI that informs the user how to open the message
44 // center.
45 virtual void DisplayFirstRunBalloon() {}
47 virtual MessageCenterTray* GetMessageCenterTray() = 0;
50 } // namespace message_center
52 #endif // UI_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_DELEGATE_H_