Chromium Code Reviews| Index: ui/events/test/event_generator.cc |
| diff --git a/ui/aura/test/event_generator.cc b/ui/events/test/event_generator.cc |
| similarity index 83% |
| copy from ui/aura/test/event_generator.cc |
| copy to ui/events/test/event_generator.cc |
| index a2f36d2207a731e6841e56d3939df625f71190e9..6eff2d1ae838da59f782330fb51f1a62f217ee38 100644 |
| --- a/ui/aura/test/event_generator.cc |
| +++ b/ui/events/test/event_generator.cc |
| @@ -1,16 +1,14 @@ |
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Copyright 2014 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. |
| -#include "ui/aura/test/event_generator.h" |
| +#include "ui/events/test/event_generator.h" |
| #include "base/bind.h" |
| +#include "base/location.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/message_loop/message_loop_proxy.h" |
| #include "base/time/default_tick_clock.h" |
| -#include "ui/aura/client/screen_position_client.h" |
| -#include "ui/aura/window_event_dispatcher.h" |
| -#include "ui/aura/window_tree_host.h" |
| #include "ui/events/event.h" |
| #include "ui/events/event_source.h" |
| #include "ui/events/event_utils.h" |
| @@ -19,8 +17,6 @@ |
| #if defined(USE_X11) |
| #include <X11/Xlib.h> |
| -#include "ui/base/x/x11_util.h" |
| -#include "ui/events/event_utils.h" |
| #include "ui/events/test/events_test_utils_x11.h" |
| #endif |
| @@ -28,35 +24,13 @@ |
| #include "ui/events/keycodes/keyboard_code_conversion.h" |
| #endif |
| -namespace aura { |
| +namespace ui { |
| namespace test { |
| namespace { |
| -void DummyCallback(ui::EventType, const gfx::Vector2dF&) { |
| +void DummyCallback(EventType, const gfx::Vector2dF&) { |
| } |
| -class DefaultEventGeneratorDelegate : public EventGeneratorDelegate { |
| - public: |
| - explicit DefaultEventGeneratorDelegate(Window* root_window) |
| - : root_window_(root_window) {} |
| - virtual ~DefaultEventGeneratorDelegate() {} |
| - |
| - // EventGeneratorDelegate overrides: |
| - virtual WindowTreeHost* GetHostAt(const gfx::Point& point) const OVERRIDE { |
| - return root_window_->GetHost(); |
| - } |
| - |
| - virtual client::ScreenPositionClient* GetScreenPositionClient( |
| - const aura::Window* window) const OVERRIDE { |
| - return NULL; |
| - } |
| - |
| - private: |
| - Window* root_window_; |
| - |
| - DISALLOW_COPY_AND_ASSIGN(DefaultEventGeneratorDelegate); |
| -}; |
| - |
| class TestKeyEvent : public ui::KeyEvent { |
| public: |
| TestKeyEvent(const base::NativeEvent& native_event, int flags, bool is_char) |
| @@ -84,29 +58,31 @@ const int kAllButtonMask = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_RIGHT_MOUSE_BUTTON; |
| } // namespace |
| -EventGenerator::EventGenerator(Window* root_window) |
| - : delegate_(new DefaultEventGeneratorDelegate(root_window)), |
| - current_host_(delegate_->GetHostAt(current_location_)), |
| +EventGenerator::EventGenerator(gfx::NativeWindow root_window) |
| + : delegate_(CreateDefaultPlatformDelegate(this, root_window, NULL)), |
|
tfarina
2014/07/31 00:20:19
So now, with this, events_test_support depends on
tfarina
2014/07/31 00:49:24
And if we try to depend on either it will create a
|
| + current_target_(delegate_->GetTargetAt(current_location_)), |
| flags_(0), |
| grab_(false), |
| async_(false), |
| tick_clock_(new base::DefaultTickClock()) { |
| } |
| -EventGenerator::EventGenerator(Window* root_window, const gfx::Point& point) |
| - : delegate_(new DefaultEventGeneratorDelegate(root_window)), |
| +EventGenerator::EventGenerator(gfx::NativeWindow root_window, |
| + const gfx::Point& point) |
| + : delegate_(CreateDefaultPlatformDelegate(this, root_window, NULL)), |
| current_location_(point), |
| - current_host_(delegate_->GetHostAt(current_location_)), |
| + current_target_(delegate_->GetTargetAt(current_location_)), |
| flags_(0), |
| grab_(false), |
| async_(false), |
| tick_clock_(new base::DefaultTickClock()) { |
| } |
| -EventGenerator::EventGenerator(Window* root_window, Window* window) |
| - : delegate_(new DefaultEventGeneratorDelegate(root_window)), |
| - current_location_(CenterOfWindow(window)), |
| - current_host_(delegate_->GetHostAt(current_location_)), |
| +EventGenerator::EventGenerator(gfx::NativeWindow root_window, |
| + gfx::NativeWindow window) |
| + : delegate_(CreateDefaultPlatformDelegate(this, root_window, window)), |
| + current_location_(delegate_->CenterOfWindow(window)), |
| + current_target_(delegate_->GetTargetAt(current_location_)), |
| flags_(0), |
| grab_(false), |
| async_(false), |
| @@ -115,7 +91,7 @@ EventGenerator::EventGenerator(Window* root_window, Window* window) |
| EventGenerator::EventGenerator(EventGeneratorDelegate* delegate) |
| : delegate_(delegate), |
| - current_host_(delegate_->GetHostAt(current_location_)), |
| + current_target_(delegate_->GetTargetAt(current_location_)), |
| flags_(0), |
| grab_(false), |
| async_(false), |
| @@ -166,7 +142,7 @@ void EventGenerator::MoveMouseWheel(int delta_x, int delta_y) { |
| void EventGenerator::SendMouseExit() { |
| gfx::Point exit_location(current_location_); |
| - ConvertPointToTarget(current_host_->window(), &exit_location); |
| + delegate_->ConvertPointToTarget(current_target_, &exit_location); |
| ui::MouseEvent mouseev(ui::ET_MOUSE_EXITED, exit_location, exit_location, |
| flags_, 0); |
| Dispatch(&mouseev); |
| @@ -179,7 +155,7 @@ void EventGenerator::MoveMouseToInHost(const gfx::Point& point_in_host) { |
| Dispatch(&mouseev); |
| current_location_ = point_in_host; |
| - current_host_->ConvertPointFromHost(¤t_location_); |
| + delegate_->ConvertPointFromHost(current_target_, ¤t_location_); |
| } |
| void EventGenerator::MoveMouseTo(const gfx::Point& point_in_screen, |
| @@ -195,17 +171,17 @@ void EventGenerator::MoveMouseTo(const gfx::Point& point_in_screen, |
| gfx::Point move_point = current_location_ + gfx::ToRoundedVector2d(step); |
| if (!grab_) |
| UpdateCurrentDispatcher(move_point); |
| - ConvertPointToTarget(current_host_->window(), &move_point); |
| + delegate_->ConvertPointToTarget(current_target_, &move_point); |
| ui::MouseEvent mouseev(event_type, move_point, move_point, flags_, 0); |
| Dispatch(&mouseev); |
| } |
| current_location_ = point_in_screen; |
| } |
| -void EventGenerator::MoveMouseRelativeTo(const Window* window, |
| +void EventGenerator::MoveMouseRelativeTo(const EventTarget* window, |
| const gfx::Point& point_in_parent) { |
| gfx::Point point(point_in_parent); |
| - ConvertPointFromTarget(window, &point); |
| + delegate_->ConvertPointFromTarget(window, &point); |
| MoveMouseTo(point); |
| } |
| @@ -215,7 +191,7 @@ void EventGenerator::DragMouseTo(const gfx::Point& point) { |
| ReleaseLeftButton(); |
| } |
| -void EventGenerator::MoveMouseToCenterOf(Window* window) { |
| +void EventGenerator::MoveMouseToCenterOf(EventTarget* window) { |
| MoveMouseTo(CenterOfWindow(window)); |
| } |
| @@ -262,7 +238,7 @@ void EventGenerator::PressMoveAndReleaseTouchTo(const gfx::Point& point) { |
| ReleaseTouch(); |
| } |
| -void EventGenerator::PressMoveAndReleaseTouchToCenterOf(Window* window) { |
| +void EventGenerator::PressMoveAndReleaseTouchToCenterOf(EventTarget* window) { |
| PressMoveAndReleaseTouchTo(CenterOfWindow(window)); |
| } |
| @@ -462,7 +438,7 @@ void EventGenerator::ScrollSequence(const gfx::Point& start, |
| const base::TimeDelta& step_delay, |
| const std::vector<gfx::Point>& offsets, |
| int num_fingers) { |
| - int steps = offsets.size(); |
| + size_t steps = offsets.size(); |
| base::TimeDelta timestamp = Now(); |
| ui::ScrollEvent fling_cancel(ui::ET_SCROLL_FLING_CANCEL, |
| start, |
| @@ -473,7 +449,7 @@ void EventGenerator::ScrollSequence(const gfx::Point& start, |
| num_fingers); |
| Dispatch(&fling_cancel); |
| - for (int i = 0; i < steps; ++i) { |
| + for (size_t i = 0; i < steps; ++i) { |
| timestamp += step_delay; |
| ui::ScrollEvent scroll(ui::ET_SCROLL, |
| start, |
| @@ -550,13 +526,13 @@ void EventGenerator::DispatchKeyEvent(bool is_press, |
| } |
| void EventGenerator::UpdateCurrentDispatcher(const gfx::Point& point) { |
| - current_host_ = delegate_->GetHostAt(point); |
| + current_target_ = delegate_->GetTargetAt(point); |
| } |
| void EventGenerator::PressButton(int flag) { |
| if (!(flags_ & flag)) { |
| flags_ |= flag; |
| - grab_ = flags_ & kAllButtonMask; |
| + grab_ = (flags_ & kAllButtonMask) != 0; |
| gfx::Point location = GetLocationInCurrentRoot(); |
| ui::MouseEvent mouseev(ui::ET_MOUSE_PRESSED, location, location, flags_, |
| flag); |
| @@ -572,41 +548,17 @@ void EventGenerator::ReleaseButton(int flag) { |
| Dispatch(&mouseev); |
| flags_ ^= flag; |
| } |
| - grab_ = flags_ & kAllButtonMask; |
| -} |
| - |
| -void EventGenerator::ConvertPointFromTarget(const aura::Window* target, |
| - gfx::Point* point) const { |
| - DCHECK(point); |
| - aura::client::ScreenPositionClient* client = |
| - delegate_->GetScreenPositionClient(target); |
| - if (client) |
| - client->ConvertPointToScreen(target, point); |
| - else |
| - aura::Window::ConvertPointToTarget(target, target->GetRootWindow(), point); |
| -} |
| - |
| -void EventGenerator::ConvertPointToTarget(const aura::Window* target, |
| - gfx::Point* point) const { |
| - DCHECK(point); |
| - aura::client::ScreenPositionClient* client = |
| - delegate_->GetScreenPositionClient(target); |
| - if (client) |
| - client->ConvertPointFromScreen(target, point); |
| - else |
| - aura::Window::ConvertPointToTarget(target->GetRootWindow(), target, point); |
| + grab_ = (flags_ & kAllButtonMask) != 0; |
| } |
| gfx::Point EventGenerator::GetLocationInCurrentRoot() const { |
| gfx::Point p(current_location_); |
| - ConvertPointToTarget(current_host_->window(), &p); |
| + delegate_->ConvertPointToTarget(current_target_, &p); |
| return p; |
| } |
| -gfx::Point EventGenerator::CenterOfWindow(const Window* window) const { |
| - gfx::Point center = gfx::Rect(window->bounds().size()).CenterPoint(); |
| - ConvertPointFromTarget(window, ¢er); |
| - return center; |
| +gfx::Point EventGenerator::CenterOfWindow(const EventTarget* window) const { |
| + return delegate_->CenterOfTarget(window); |
| } |
| void EventGenerator::DoDispatchEvent(ui::Event* event, bool async) { |
| @@ -633,7 +585,7 @@ void EventGenerator::DoDispatchEvent(ui::Event* event, bool async) { |
| } |
| pending_events_.push_back(pending_event); |
| } else { |
| - ui::EventSource* event_source = current_host_->GetEventSource(); |
| + ui::EventSource* event_source = delegate_->GetEventSource(current_target_); |
| ui::EventSourceTestApi event_source_test(event_source); |
| ui::EventDispatchDetails details = |
| event_source_test.SendEventToProcessor(event); |
| @@ -656,4 +608,4 @@ void EventGenerator::DispatchNextPendingEvent() { |
| } |
| } // namespace test |
| -} // namespace aura |
| +} // namespace ui |