1// Copyright 2014 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_EVENTS_TEST_PLATFORM_EVENT_WAITER_H_ 6#define UI_EVENTS_TEST_PLATFORM_EVENT_WAITER_H_ 7 8#include "base/callback.h" 9#include "ui/events/platform/platform_event_observer.h" 10 11namespace ui { 12 13class PlatformEventWaiter : public PlatformEventObserver { 14 public: 15 typedef base::Callback<bool(const PlatformEvent&)> PlatformEventMatcher; 16 17 static PlatformEventWaiter* Create(const base::Closure& success_callback, 18 const PlatformEventMatcher& event_matcher); 19 20 private: 21 PlatformEventWaiter(const base::Closure& success_callback, 22 const PlatformEventMatcher& event_matcher); 23 virtual ~PlatformEventWaiter(); 24 25 // PlatformEventObserver: 26 virtual void WillProcessEvent(const PlatformEvent& event) OVERRIDE; 27 virtual void DidProcessEvent(const PlatformEvent& event) OVERRIDE; 28 29 base::Closure success_callback_; 30 PlatformEventMatcher event_matcher_; 31 32 DISALLOW_COPY_AND_ASSIGN(PlatformEventWaiter); 33}; 34 35} // namespace ui 36 37#endif // UI_EVENTS_TEST_PLATFORM_EVENT_WAITER_H_ 38