Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: ui/aura/test/event_generator.h

Issue 11825015: [Cleanup] consolidate DISABLED macros in mouse_cursor_event_filter_unittests.cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/wm/activation_controller_unittest.cc ('k') | ui/aura/test/event_generator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_AURA_TEST_EVENT_GENERATOR_H_ 5 #ifndef UI_AURA_TEST_EVENT_GENERATOR_H_
6 #define UI_AURA_TEST_EVENT_GENERATOR_H_ 6 #define UI_AURA_TEST_EVENT_GENERATOR_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/memory/scoped_ptr.h"
9 #include "ui/base/keycodes/keyboard_codes.h" 10 #include "ui/base/keycodes/keyboard_codes.h"
10 #include "ui/gfx/point.h" 11 #include "ui/gfx/point.h"
11 12
12 namespace base { 13 namespace base {
13 class TimeDelta; 14 class TimeDelta;
14 } 15 }
15 16
16 namespace ui { 17 namespace ui {
17 class Event; 18 class Event;
18 } 19 }
19 20
20 namespace aura { 21 namespace aura {
21 class RootWindow; 22 class RootWindow;
22 class Window; 23 class Window;
23 24
25 namespace client {
26 class ScreenPositionClient;
27 }
28
24 namespace test { 29 namespace test {
25 30
26 // EventGenerator is a tool that generates and dispatch events. 31 // A delegate interface for EventGenerator that provides a way to
32 // locate aura root window for given point.
33 class EventGeneratorDelegate {
34 public:
35 virtual ~EventGeneratorDelegate() {}
36
37 // Returns a root window for given point.
38 virtual RootWindow* GetRootWindowAt(const gfx::Point& point) const = 0;
39
40 // Returns the screen position client that determines the
41 // coordinates used in EventGenerator. EventGenerator uses
42 // RootWindow's coordinate if this retruns NULL.
43 virtual client::ScreenPositionClient* GetScreenPositionClient(
44 const aura::Window* window) const = 0;
45 };
46
47 // EventGenerator is a tool that generates and dispatch events. The
48 // coordinates of the points in API is determined by the
49 // EventGeneratorDelegate.
27 class EventGenerator { 50 class EventGenerator {
28 public: 51 public:
29 // Creates an EventGenerator with the mouse/touch location (0,0). 52 // Creates an EventGenerator with the mouse/touch location (0,0),
53 // which uses the |root_window|'s coordinates.
30 explicit EventGenerator(RootWindow* root_window); 54 explicit EventGenerator(RootWindow* root_window);
31 55
56 // Create an EventGenerator with EventGeneratorDelegate,
57 // which uses the coordinates used by |delegate|.
58 explicit EventGenerator(EventGeneratorDelegate* delegate);
59
32 // Creates an EventGenerator with the mouse/touch location 60 // Creates an EventGenerator with the mouse/touch location
33 // at |initial_location|. 61 // at |initial_location|, which uses the |root_window|'s coordinates.
34 EventGenerator(RootWindow* root_window, const gfx::Point& initial_location); 62 EventGenerator(RootWindow* root_window, const gfx::Point& initial_location);
35 63
36 // Creates an EventGenerator with the mouse/touch location 64 // Creates an EventGenerator with the mouse/touch location
37 // centered over |window|. 65 // centered over |window|, which uses the |root_window|'s coordinates.
38 EventGenerator(RootWindow* root_window, Window* window); 66 EventGenerator(RootWindow* root_window, Window* window);
39 67
40 virtual ~EventGenerator(); 68 virtual ~EventGenerator();
41 69
42 // Explicitly sets the location used by mouse/touch events. This is set by the 70 // Explicitly sets the location used by mouse/touch events. This is set by the
43 // various methods that take a location but can be manipulated directly, 71 // various methods that take a location but can be manipulated directly,
44 // typically for touch. 72 // typically for touch.
45 void set_current_location(const gfx::Point& location) { 73 void set_current_location(const gfx::Point& location) {
46 current_location_ = location; 74 current_location_ = location;
47 } 75 }
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 197
170 // Generates a key release event. On platforms except Windows and X11, a key 198 // Generates a key release event. On platforms except Windows and X11, a key
171 // event without native_event() is generated. Note that ui::EF_ flags should 199 // event without native_event() is generated. Note that ui::EF_ flags should
172 // be passed as |flags|, not the native ones like 'ShiftMask' in <X11/X.h>. 200 // be passed as |flags|, not the native ones like 'ShiftMask' in <X11/X.h>.
173 // TODO(yusukes): Support native_event() on all platforms. 201 // TODO(yusukes): Support native_event() on all platforms.
174 void ReleaseKey(ui::KeyboardCode key_code, int flags); 202 void ReleaseKey(ui::KeyboardCode key_code, int flags);
175 203
176 // Dispatch the |event| to the RootWindow. 204 // Dispatch the |event| to the RootWindow.
177 void Dispatch(ui::Event& event); 205 void Dispatch(ui::Event& event);
178 206
207 void set_current_root_window(RootWindow* root_window) {
208 current_root_window_ = root_window;
209 }
210
179 private: 211 private:
180 // Dispatch a key event to the RootWindow. 212 // Dispatch a key event to the RootWindow.
181 void DispatchKeyEvent(bool is_press, ui::KeyboardCode key_code, int flags); 213 void DispatchKeyEvent(bool is_press, ui::KeyboardCode key_code, int flags);
182 214
183 RootWindow* root_window_; 215 void UpdateCurrentRootWindow(const gfx::Point& point);
216 void PressButton(int flag);
217 void ReleaseButton(int flag);
218
219 // Convert a point between API's coordinates and
220 // |target|'s coordinates.
221 void ConvertPointFromTarget(const aura::Window* target,
222 gfx::Point* point) const;
223 void ConvertPointToTarget(const aura::Window* target,
224 gfx::Point* point) const;
225
226 gfx::Point GetLocationInCurrentRoot() const;
227 gfx::Point CenterOfWindow(const Window* window) const;
228
229 scoped_ptr<EventGeneratorDelegate> delegate_;
230 gfx::Point current_location_;
231 RootWindow* current_root_window_;
184 int flags_; 232 int flags_;
185 gfx::Point current_location_; 233 bool grab_;
186 234
187 DISALLOW_COPY_AND_ASSIGN(EventGenerator); 235 DISALLOW_COPY_AND_ASSIGN(EventGenerator);
188 }; 236 };
189 237
190 } // namespace test 238 } // namespace test
191 } // namespace aura 239 } // namespace aura
192 240
193 #endif // UI_AURA_TEST_EVENT_GENERATOR_H_ 241 #endif // UI_AURA_TEST_EVENT_GENERATOR_H_
OLDNEW
« no previous file with comments | « ash/wm/activation_controller_unittest.cc ('k') | ui/aura/test/event_generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698