| // Copyright 2014 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef UI_EVENTS_PLATFORM_PLATFORM_EVENT_OBSERVER_H_ | 
 | #define UI_EVENTS_PLATFORM_PLATFORM_EVENT_OBSERVER_H_ | 
 |  | 
 | #include "ui/events/events_export.h" | 
 | #include "ui/events/platform/platform_event_types.h" | 
 |  | 
 | namespace ui { | 
 |  | 
 | // PlatformEventObserver can be installed on a PlatformEventSource, and it | 
 | // receives all events that are dispatched to the dispatchers. | 
 | class EVENTS_EXPORT PlatformEventObserver { | 
 |  public: | 
 |   // This is called before the dispatcher receives the event. | 
 |   virtual void WillProcessEvent(const PlatformEvent& event) = 0; | 
 |  | 
 |   // This is called after the event has been dispatched to the dispatcher(s). | 
 |   virtual void DidProcessEvent(const PlatformEvent& event) = 0; | 
 |  | 
 |  protected: | 
 |   virtual ~PlatformEventObserver() {} | 
 | }; | 
 |  | 
 | }  // namespace ui | 
 |  | 
 | #endif  // UI_EVENTS_PLATFORM_PLATFORM_EVENT_OBSERVER_H_ |