• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_