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