| // Copyright (c) 2012 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_HANDLER_H_ |
| #define UI_EVENTS_TEST_TEST_EVENT_HANDLER_H_ |
| |
| #include <string> |
| #include <vector> |
| |
| #include "base/compiler_specific.h" |
| #include "base/macros.h" |
| #include "ui/events/event_handler.h" |
| |
| typedef std::vector<std::string> HandlerSequenceRecorder; |
| |
| namespace ui { |
| namespace test { |
| |
| // A simple EventHandler that keeps track of the number of key events that it's |
| // seen. |
| class TestEventHandler : public EventHandler { |
| public: |
| TestEventHandler(); |
| ~TestEventHandler() override; |
| |
| int num_key_events() const { return num_key_events_; } |
| int num_mouse_events() const { return num_mouse_events_; } |
| int num_scroll_events() const { return num_scroll_events_; } |
| int num_touch_events() const { return num_touch_events_; } |
| int num_gesture_events() const { return num_gesture_events_; } |
| |
| void Reset(); |
| |
| void set_recorder(HandlerSequenceRecorder* recorder) { |
| recorder_ = recorder; |
| } |
| void set_handler_name(const std::string& handler_name) { |
| handler_name_ = handler_name; |
| } |
| |
| // EventHandler overrides: |
| void OnKeyEvent(KeyEvent* event) override; |
| void OnMouseEvent(MouseEvent* event) override; |
| void OnScrollEvent(ScrollEvent* event) override; |
| void OnTouchEvent(TouchEvent* event) override; |
| void OnGestureEvent(GestureEvent* event) override; |
| |
| private: |
| // How many events have been received of each type? |
| int num_key_events_; |
| int num_mouse_events_; |
| int num_scroll_events_; |
| int num_touch_events_; |
| int num_gesture_events_; |
| |
| HandlerSequenceRecorder* recorder_; |
| std::string handler_name_; |
| |
| DISALLOW_COPY_AND_ASSIGN(TestEventHandler); |
| }; |
| |
| } // namespace test |
| } // namespace ui |
| |
| #endif // UI_EVENTS_TEST_TEST_EVENT_HANDLER_H_ |