12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef UI_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_DELEGATE_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define UI_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_DELEGATE_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/message_center/message_center_export.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace message_center {
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
122385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdochclass MessageCenterTray;
132385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// A MessageCenterTrayDelegate class is responsible for managing the various UI
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// surfaces that should be displayed when the MessageCenter is changed.
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class MESSAGE_CENTER_EXPORT MessageCenterTrayDelegate {
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual ~MessageCenterTrayDelegate() {};
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Called whenever a change to the visible UI has occurred.
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void OnMessageCenterTrayChanged() = 0;
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Display the popup bubbles for new notifications to the user.  Returns true
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // if popups were actually displayed to the user.
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool ShowPopups() = 0;
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Remove the popup bubbles from the UI.
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void HidePopups() = 0;
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Display the message center containing all undismissed notifications to the
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // user.  Returns true if the center was actually displayed to the user.
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool ShowMessageCenter() = 0;
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Remove the message center from the UI.
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void HideMessageCenter() = 0;
36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // Display the notifier settings as a bubble.
38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual bool ShowNotifierSettings() = 0;
39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  // Returns true if the context menu for a notification is currently enabled.
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual bool IsContextMenuEnabled() const = 0;
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // Show a platform-specific UI that informs the user how to open the message
44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // center.
452385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  virtual void DisplayFirstRunBalloon() {}
462385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
472385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  virtual MessageCenterTray* GetMessageCenterTray() = 0;
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace message_center
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // UI_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_DELEGATE_H_
53