1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef UI_MESSAGE_CENTER_MESSAGE_CENTER_OBSERVER_H_ 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define UI_MESSAGE_CENTER_MESSAGE_CENTER_OBSERVER_H_ 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include <string> 9a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "ui/message_center/message_center_export.h" 1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "ui/message_center/message_center_types.h" 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace message_center { 14a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)class NotificationBlocker; 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// An observer class for the change of notifications in the MessageCenter. 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class MESSAGE_CENTER_EXPORT MessageCenterObserver { 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~MessageCenterObserver() {} 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Called when the notification associated with |notification_id| is added 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // to the notification_list. 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void OnNotificationAdded(const std::string& notification_id) {} 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Called when the notification associated with |notification_id| is removed 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // from the notification_list. 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void OnNotificationRemoved(const std::string& notification_id, 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool by_user) {} 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Called when the contents of the notification associated with 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // |notification_id| is updated. 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void OnNotificationUpdated(const std::string& notification_id) {} 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Called when a click event happens on the notification associated with 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // |notification_id|. 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void OnNotificationClicked(const std::string& notification_id) {} 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Called when a click event happens on a button indexed by |button_index| 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // of the notification associated with |notification_id|. 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void OnNotificationButtonClicked(const std::string& notification_id, 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int button_index) {} 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Called when the notification associated with |notification_id| is actually 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // displayed. 45010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual void OnNotificationDisplayed( 46010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const std::string& notification_id, 47010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const DisplaySource source) {} 48868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 4958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Called when the notification center is shown or hidden. 5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void OnCenterVisibilityChanged(Visibility visibility) {} 51424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 52424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) // Called whenever the quiet mode changes as a result of user action or when 53424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) // quiet mode expires. 54424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) virtual void OnQuietModeChanged(bool in_quiet_mode) {} 55a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 56a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // Called when the blocking state of |blocker| is changed. 57a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual void OnBlockingStateChanged(NotificationBlocker* blocker) {} 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace message_center 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif // UI_MESSAGE_CENTER_MESSAGE_CENTER_OBSERVER_H_ 63