1 // Copyright 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_VIEWS_MESSAGE_CENTER_CONTROLLER_H_ 6 #define UI_MESSAGE_CENTER_VIEWS_MESSAGE_CENTER_CONTROLLER_H_ 7 8 #include <string> 9 10 #include "ui/message_center/notifier_settings.h" 11 12 namespace message_center { 13 14 // Interface used by views to report clicks and other user actions. The views 15 // by themselves do not know how to perform those operations, they ask 16 // MessageCenterController to do them. Implemented by MessageCeneterView and 17 // MessagePopupCollection. 18 class MessageCenterController { 19 public: 20 virtual void ClickOnNotification(const std::string& notification_id) = 0; 21 virtual void RemoveNotification(const std::string& notification_id, 22 bool by_user) = 0; 23 virtual void DisableNotificationsFromThisSource( 24 const NotifierId& notifier_id) = 0; 25 virtual void ShowNotifierSettingsBubble() = 0; 26 virtual bool HasClickedListener(const std::string& notification_id) = 0; 27 virtual void ClickOnNotificationButton(const std::string& notification_id, 28 int button_index) = 0; 29 virtual void ExpandNotification(const std::string& notification_id) = 0; 30 virtual void GroupBodyClicked(const std::string& last_notification_id) = 0; 31 virtual void ExpandGroup(const NotifierId& notifier_id) = 0; 32 virtual void RemoveGroup(const NotifierId& notifier_id) = 0; 33 }; 34 35 } // namespace message_center 36 37 #endif // UI_MESSAGE_CENTER_VIEWS_MESSAGE_CENTER_CONTROLLER_H_