| // 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_TARGET_H_ |
| #define UI_EVENTS_TEST_TEST_EVENT_TARGET_H_ |
| |
| #include <set> |
| #include <string> |
| #include <vector> |
| |
| #include "base/memory/scoped_vector.h" |
| #include "ui/events/event_target.h" |
| |
| typedef std::vector<std::string> HandlerSequenceRecorder; |
| |
| namespace gfx { |
| class Point; |
| } |
| |
| namespace ui { |
| namespace test { |
| |
| class TestEventTarget : public EventTarget { |
| public: |
| TestEventTarget(); |
| ~TestEventTarget() override; |
| |
| void AddChild(scoped_ptr<TestEventTarget> child); |
| scoped_ptr<TestEventTarget> RemoveChild(TestEventTarget* child); |
| |
| TestEventTarget* parent() { return parent_; } |
| |
| void set_mark_events_as_handled(bool handle) { |
| mark_events_as_handled_ = handle; |
| } |
| |
| TestEventTarget* child_at(int index) { return children_[index]; } |
| size_t child_count() const { return children_.size(); } |
| |
| void SetEventTargeter(scoped_ptr<EventTargeter> targeter); |
| |
| bool DidReceiveEvent(ui::EventType type) const; |
| void ResetReceivedEvents(); |
| |
| void set_recorder(HandlerSequenceRecorder* recorder) { |
| recorder_ = recorder; |
| } |
| void set_target_name(const std::string& target_name) { |
| target_name_ = target_name; |
| } |
| |
| protected: |
| bool Contains(TestEventTarget* target) const; |
| |
| // EventTarget: |
| bool CanAcceptEvent(const ui::Event& event) override; |
| EventTarget* GetParentTarget() override; |
| scoped_ptr<EventTargetIterator> GetChildIterator() override; |
| EventTargeter* GetEventTargeter() override; |
| |
| // EventHandler: |
| void OnEvent(Event* event) override; |
| |
| private: |
| void set_parent(TestEventTarget* parent) { parent_ = parent; } |
| |
| TestEventTarget* parent_; |
| ScopedVector<TestEventTarget> children_; |
| scoped_ptr<EventTargeter> targeter_; |
| bool mark_events_as_handled_; |
| |
| std::set<ui::EventType> received_; |
| |
| HandlerSequenceRecorder* recorder_; |
| std::string target_name_; |
| |
| DISALLOW_COPY_AND_ASSIGN(TestEventTarget); |
| }; |
| |
| } // namespace test |
| } // namespace ui |
| |
| #endif // UI_EVENTS_TEST_TEST_EVENT_TARGET_H_ |