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