| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef UI_EVENTS_TEST_EVENT_GENERATOR_H_ | 5 #ifndef UI_EVENTS_TEST_EVENT_GENERATOR_H_ |
| 6 #define UI_EVENTS_TEST_EVENT_GENERATOR_H_ | 6 #define UI_EVENTS_TEST_EVENT_GENERATOR_H_ |
| 7 | 7 |
| 8 #include <list> | 8 #include <list> |
| 9 #include <memory> |
| 9 #include <vector> | 10 #include <vector> |
| 10 | 11 |
| 11 #include "base/callback.h" | 12 #include "base/callback.h" |
| 12 #include "base/macros.h" | 13 #include "base/macros.h" |
| 13 #include "base/memory/scoped_ptr.h" | |
| 14 #include "base/time/time.h" | 14 #include "base/time/time.h" |
| 15 #include "ui/events/event_constants.h" | 15 #include "ui/events/event_constants.h" |
| 16 #include "ui/events/keycodes/keyboard_codes.h" | 16 #include "ui/events/keycodes/keyboard_codes.h" |
| 17 #include "ui/gfx/geometry/point.h" | 17 #include "ui/gfx/geometry/point.h" |
| 18 #include "ui/gfx/native_widget_types.h" | 18 #include "ui/gfx/native_widget_types.h" |
| 19 | 19 |
| 20 namespace base { | 20 namespace base { |
| 21 class TickClock; | 21 class TickClock; |
| 22 } | 22 } |
| 23 | 23 |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 void ReleaseKey(KeyboardCode key_code, int flags); | 362 void ReleaseKey(KeyboardCode key_code, int flags); |
| 363 | 363 |
| 364 // Dispatch the event to the WindowEventDispatcher. | 364 // Dispatch the event to the WindowEventDispatcher. |
| 365 void Dispatch(Event* event); | 365 void Dispatch(Event* event); |
| 366 | 366 |
| 367 void set_current_target(EventTarget* target) { | 367 void set_current_target(EventTarget* target) { |
| 368 current_target_ = target; | 368 current_target_ = target; |
| 369 } | 369 } |
| 370 | 370 |
| 371 // Specify an alternative tick clock to be used for simulating time in tests. | 371 // Specify an alternative tick clock to be used for simulating time in tests. |
| 372 void SetTickClock(scoped_ptr<base::TickClock> tick_clock); | 372 void SetTickClock(std::unique_ptr<base::TickClock> tick_clock); |
| 373 | 373 |
| 374 // Get the current time from the tick clock. | 374 // Get the current time from the tick clock. |
| 375 base::TimeDelta Now(); | 375 base::TimeDelta Now(); |
| 376 | 376 |
| 377 // Default delegate set by a platform-specific GeneratorDelegate singleton. | 377 // Default delegate set by a platform-specific GeneratorDelegate singleton. |
| 378 static EventGeneratorDelegate* default_delegate; | 378 static EventGeneratorDelegate* default_delegate; |
| 379 | 379 |
| 380 private: | 380 private: |
| 381 // Set up the test context using the delegate. | 381 // Set up the test context using the delegate. |
| 382 void Init(gfx::NativeWindow root_window, gfx::NativeWindow window_context); | 382 void Init(gfx::NativeWindow root_window, gfx::NativeWindow window_context); |
| 383 | 383 |
| 384 // Dispatch a key event to the WindowEventDispatcher. | 384 // Dispatch a key event to the WindowEventDispatcher. |
| 385 void DispatchKeyEvent(bool is_press, KeyboardCode key_code, int flags); | 385 void DispatchKeyEvent(bool is_press, KeyboardCode key_code, int flags); |
| 386 | 386 |
| 387 void UpdateCurrentDispatcher(const gfx::Point& point); | 387 void UpdateCurrentDispatcher(const gfx::Point& point); |
| 388 void PressButton(int flag); | 388 void PressButton(int flag); |
| 389 void ReleaseButton(int flag); | 389 void ReleaseButton(int flag); |
| 390 | 390 |
| 391 gfx::Point GetLocationInCurrentRoot() const; | 391 gfx::Point GetLocationInCurrentRoot() const; |
| 392 gfx::Point CenterOfWindow(const EventTarget* window) const; | 392 gfx::Point CenterOfWindow(const EventTarget* window) const; |
| 393 | 393 |
| 394 void DispatchNextPendingEvent(); | 394 void DispatchNextPendingEvent(); |
| 395 void DoDispatchEvent(Event* event, bool async); | 395 void DoDispatchEvent(Event* event, bool async); |
| 396 | 396 |
| 397 const EventGeneratorDelegate* delegate() const; | 397 const EventGeneratorDelegate* delegate() const; |
| 398 EventGeneratorDelegate* delegate(); | 398 EventGeneratorDelegate* delegate(); |
| 399 | 399 |
| 400 scoped_ptr<EventGeneratorDelegate> delegate_; | 400 std::unique_ptr<EventGeneratorDelegate> delegate_; |
| 401 gfx::Point current_location_; | 401 gfx::Point current_location_; |
| 402 EventTarget* current_target_; | 402 EventTarget* current_target_; |
| 403 int flags_; | 403 int flags_; |
| 404 bool grab_; | 404 bool grab_; |
| 405 std::list<scoped_ptr<Event>> pending_events_; | 405 std::list<std::unique_ptr<Event>> pending_events_; |
| 406 // Set to true to cause events to be posted asynchronously. | 406 // Set to true to cause events to be posted asynchronously. |
| 407 bool async_; | 407 bool async_; |
| 408 bool targeting_application_; | 408 bool targeting_application_; |
| 409 scoped_ptr<base::TickClock> tick_clock_; | 409 std::unique_ptr<base::TickClock> tick_clock_; |
| 410 | 410 |
| 411 DISALLOW_COPY_AND_ASSIGN(EventGenerator); | 411 DISALLOW_COPY_AND_ASSIGN(EventGenerator); |
| 412 }; | 412 }; |
| 413 | 413 |
| 414 } // namespace test | 414 } // namespace test |
| 415 } // namespace ui | 415 } // namespace ui |
| 416 | 416 |
| 417 #endif // UI_EVENTS_TEST_EVENT_GENERATOR_H_ | 417 #endif // UI_EVENTS_TEST_EVENT_GENERATOR_H_ |
| OLD | NEW |