15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef UI_AURA_TEST_EVENT_GENERATOR_DELEGATE_AURA_H_
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define UI_AURA_TEST_EVENT_GENERATOR_DELEGATE_AURA_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/events/test/event_generator.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace aura {
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Window;
12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class WindowTreeHost;
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace client {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ScreenPositionClient;
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace test {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void InitializeAuraEventGeneratorDelegate();
216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Implementation of ui::test::EventGeneratorDelegate for Aura.
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass EventGeneratorDelegateAura : public ui::test::EventGeneratorDelegate {
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EventGeneratorDelegateAura();
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual ~EventGeneratorDelegateAura();
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Returns the host for given point.
29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual WindowTreeHost* GetHostAt(const gfx::Point& point) const = 0;
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Returns the screen position client that determines the
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // coordinates used in EventGenerator. EventGenerator uses
33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // root Window's coordinate if this returns NULL.
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual client::ScreenPositionClient* GetScreenPositionClient(
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const aura::Window* window) const = 0;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // Overridden from ui::test::EventGeneratorDelegate:
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual ui::EventTarget* GetTargetAt(const gfx::Point& location) OVERRIDE;
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual ui::EventSource* GetEventSource(ui::EventTarget* target) OVERRIDE;
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual gfx::Point CenterOfTarget(
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const ui::EventTarget* target) const OVERRIDE;
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual gfx::Point CenterOfWindow(gfx::NativeWindow window) const OVERRIDE;
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void ConvertPointFromTarget(const ui::EventTarget* target,
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                      gfx::Point* point) const OVERRIDE;
45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void ConvertPointToTarget(const ui::EventTarget* target,
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                    gfx::Point* point) const OVERRIDE;
47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void ConvertPointFromHost(const ui::EventTarget* hosted_target,
48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                    gfx::Point* point) const OVERRIDE;
49f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(EventGeneratorDelegateAura);
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace test
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace aura
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif  // UI_AURA_TEST_EVENT_GENERATOR_DELEGATE_AURA_H_
58