test_event_targeter.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2015 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. #ifndef UI_EVENTS_TEST_TEST_EVENT_TARGETER_H_
  5. #define UI_EVENTS_TEST_TEST_EVENT_TARGETER_H_
  6. #include "base/memory/raw_ptr.h"
  7. #include "ui/events/event_targeter.h"
  8. namespace ui {
  9. namespace test {
  10. class TestEventTarget;
  11. // An EventTargeter which is used to allow a bubbling behaviour in event
  12. // dispatch: if an event is not handled after being dispatched to its
  13. // |initial_target|, the event is dispatched to the next-best target as
  14. // specified by FindNextBestTarget().
  15. // Bubbling behaviour is controlled by |should_bubble| at creation time.
  16. class TestEventTargeter : public EventTargeter {
  17. public:
  18. TestEventTargeter(TestEventTarget* initial_target, bool should_bubble);
  19. TestEventTargeter(const TestEventTargeter&) = delete;
  20. TestEventTargeter& operator=(const TestEventTargeter&) = delete;
  21. ~TestEventTargeter() override;
  22. void set_target(TestEventTarget* target);
  23. private:
  24. // EventTargeter:
  25. EventTarget* FindTargetForEvent(EventTarget* root, Event* event) override;
  26. EventTarget* FindNextBestTarget(EventTarget* previous_target,
  27. Event* event) override;
  28. raw_ptr<TestEventTarget> target_;
  29. bool should_bubble_;
  30. };
  31. } // namespace test
  32. } // namespace ui
  33. #endif // UI_EVENTS_TEST_TEST_EVENT_TARGETER_H_