// Copyright 2013 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_TEST_TEST_EVENT_PROCESSOR_H_ #define UI_EVENTS_TEST_TEST_EVENT_PROCESSOR_H_ #include "base/memory/scoped_ptr.h" #include "ui/events/event_processor.h" namespace ui { namespace test { class TestEventProcessor : public EventProcessor { public: TestEventProcessor(); ~TestEventProcessor() override; int num_times_processing_started() const { return num_times_processing_started_; } int num_times_processing_finished() const { return num_times_processing_finished_; } void set_should_processing_occur(bool occur) { should_processing_occur_ = occur; } void SetRoot(scoped_ptr root); void Reset(); // EventProcessor: bool CanDispatchToTarget(EventTarget* target) override; EventTarget* GetRootTarget() override; EventDispatchDetails OnEventFromSource(Event* event) override; void OnEventProcessingStarted(Event* event) override; void OnEventProcessingFinished(Event* event) override; private: scoped_ptr root_; // Used in our override of OnEventProcessingStarted(). If this value is // false, mark incoming events as handled. bool should_processing_occur_; // Counts the number of times OnEventProcessingStarted() has been called. int num_times_processing_started_; // Counts the number of times OnEventProcessingFinished() has been called. int num_times_processing_finished_; DISALLOW_COPY_AND_ASSIGN(TestEventProcessor); }; } // namespace test } // namespace ui #endif // UI_EVENTS_TEST_TEST_EVENT_PROCESSOR_H_