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 11 namespace ui { 12 13 class 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