Home | History | Annotate | Download | only in message_center
      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_DELEGATE_H_
      6 #define UI_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_DELEGATE_H_
      7 
      8 #include "ui/message_center/message_center_export.h"
      9 
     10 namespace message_center {
     11 
     12 class MessageCenterTray;
     13 
     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() {};
     19 
     20   // Called whenever a change to the visible UI has occurred.
     21   virtual void OnMessageCenterTrayChanged() = 0;
     22 
     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;
     26 
     27   // Remove the popup bubbles from the UI.
     28   virtual void HidePopups() = 0;
     29 
     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;
     33 
     34   // Remove the message center from the UI.
     35   virtual void HideMessageCenter() = 0;
     36 
     37   // Display the notifier settings as a bubble.
     38   virtual bool ShowNotifierSettings() = 0;
     39 
     40   // Returns true if the context menu for a notification is currently enabled.
     41   virtual bool IsContextMenuEnabled() const = 0;
     42 
     43   // Show a platform-specific UI that informs the user how to open the message
     44   // center.
     45   virtual void DisplayFirstRunBalloon() {}
     46 
     47   virtual MessageCenterTray* GetMessageCenterTray() = 0;
     48 };
     49 
     50 }  // namespace message_center
     51 
     52 #endif  // UI_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_DELEGATE_H_
     53