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 #include "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/logging.h" | 6 #include "base/logging.h" |
7 #include "ui/aura/client/screen_position_client.h" | 7 #include "ui/aura/client/screen_position_client.h" |
8 #include "ui/aura/env.h" | 8 #include "ui/aura/env.h" |
9 #include "ui/aura/test/aura_test_utils.h" | 9 #include "ui/aura/test/aura_test_utils.h" |
10 #include "ui/aura/test/ui_controls_factory_aura.h" | 10 #include "ui/aura/test/ui_controls_factory_aura.h" |
11 #include "ui/aura/window_tree_host.h" | 11 #include "ui/aura/window_tree_host.h" |
12 #include "ui/base/test/ui_controls_aura.h" | 12 #include "ui/base/test/ui_controls_aura.h" |
13 #include "ui/events/test/events_test_utils.h" | 13 #include "ui/events/test/events_test_utils.h" |
14 | 14 |
15 namespace aura { | 15 namespace aura { |
16 namespace test { | 16 namespace test { |
17 namespace { | 17 namespace { |
18 | 18 |
19 class UIControlsOzone : public ui_controls::UIControlsAura { | 19 class UIControlsOzone : public ui_controls::UIControlsAura { |
20 public: | 20 public: |
21 UIControlsOzone(WindowTreeHost* host) : host_(host) {} | 21 UIControlsOzone(WindowTreeHost* host) : host_(host) {} |
22 | 22 |
23 virtual bool SendKeyPress(gfx::NativeWindow window, | 23 bool SendKeyPress(gfx::NativeWindow window, |
24 ui::KeyboardCode key, | 24 ui::KeyboardCode key, |
25 bool control, | 25 bool control, |
26 bool shift, | 26 bool shift, |
27 bool alt, | 27 bool alt, |
28 bool command) override { | 28 bool command) override { |
29 return SendKeyPressNotifyWhenDone( | 29 return SendKeyPressNotifyWhenDone( |
30 window, key, control, shift, alt, command, base::Closure()); | 30 window, key, control, shift, alt, command, base::Closure()); |
31 } | 31 } |
32 virtual bool SendKeyPressNotifyWhenDone( | 32 bool SendKeyPressNotifyWhenDone( |
33 gfx::NativeWindow window, | 33 gfx::NativeWindow window, |
34 ui::KeyboardCode key, | 34 ui::KeyboardCode key, |
35 bool control, | 35 bool control, |
36 bool shift, | 36 bool shift, |
37 bool alt, | 37 bool alt, |
38 bool command, | 38 bool command, |
39 const base::Closure& closure) override { | 39 const base::Closure& closure) override { |
40 int flags = button_down_mask_; | 40 int flags = button_down_mask_; |
41 | 41 |
42 if (control) { | 42 if (control) { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 | 79 |
80 if (command) { | 80 if (command) { |
81 flags &= ~ui::EF_COMMAND_DOWN; | 81 flags &= ~ui::EF_COMMAND_DOWN; |
82 PostKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_LWIN, flags); | 82 PostKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_LWIN, flags); |
83 } | 83 } |
84 | 84 |
85 RunClosureAfterAllPendingUIEvents(closure); | 85 RunClosureAfterAllPendingUIEvents(closure); |
86 return true; | 86 return true; |
87 } | 87 } |
88 | 88 |
89 virtual bool SendMouseMove(long screen_x, long screen_y) override { | 89 bool SendMouseMove(long screen_x, long screen_y) override { |
90 return SendMouseMoveNotifyWhenDone(screen_x, screen_y, base::Closure()); | 90 return SendMouseMoveNotifyWhenDone(screen_x, screen_y, base::Closure()); |
91 } | 91 } |
92 virtual bool SendMouseMoveNotifyWhenDone( | 92 bool SendMouseMoveNotifyWhenDone( |
93 long screen_x, | 93 long screen_x, |
94 long screen_y, | 94 long screen_y, |
95 const base::Closure& closure) override { | 95 const base::Closure& closure) override { |
96 gfx::Point root_location(screen_x, screen_y); | 96 gfx::Point root_location(screen_x, screen_y); |
97 aura::client::ScreenPositionClient* screen_position_client = | 97 aura::client::ScreenPositionClient* screen_position_client = |
98 aura::client::GetScreenPositionClient(host_->window()); | 98 aura::client::GetScreenPositionClient(host_->window()); |
99 if (screen_position_client) { | 99 if (screen_position_client) { |
100 screen_position_client->ConvertPointFromScreen(host_->window(), | 100 screen_position_client->ConvertPointFromScreen(host_->window(), |
101 &root_location); | 101 &root_location); |
102 } | 102 } |
103 | 103 |
104 gfx::Point host_location = root_location; | 104 gfx::Point host_location = root_location; |
105 host_->ConvertPointToHost(&host_location); | 105 host_->ConvertPointToHost(&host_location); |
106 | 106 |
107 ui::EventType event_type; | 107 ui::EventType event_type; |
108 | 108 |
109 if (button_down_mask_) | 109 if (button_down_mask_) |
110 event_type = ui::ET_MOUSE_DRAGGED; | 110 event_type = ui::ET_MOUSE_DRAGGED; |
111 else | 111 else |
112 event_type = ui::ET_MOUSE_MOVED; | 112 event_type = ui::ET_MOUSE_MOVED; |
113 | 113 |
114 PostMouseEvent(event_type, host_location, 0, 0); | 114 PostMouseEvent(event_type, host_location, 0, 0); |
115 | 115 |
116 RunClosureAfterAllPendingUIEvents(closure); | 116 RunClosureAfterAllPendingUIEvents(closure); |
117 return true; | 117 return true; |
118 } | 118 } |
119 virtual bool SendMouseEvents(ui_controls::MouseButton type, | 119 bool SendMouseEvents(ui_controls::MouseButton type, int state) override { |
120 int state) override { | |
121 return SendMouseEventsNotifyWhenDone(type, state, base::Closure()); | 120 return SendMouseEventsNotifyWhenDone(type, state, base::Closure()); |
122 } | 121 } |
123 virtual bool SendMouseEventsNotifyWhenDone( | 122 bool SendMouseEventsNotifyWhenDone( |
124 ui_controls::MouseButton type, | 123 ui_controls::MouseButton type, |
125 int state, | 124 int state, |
126 const base::Closure& closure) override { | 125 const base::Closure& closure) override { |
127 gfx::Point root_location = aura::Env::GetInstance()->last_mouse_location(); | 126 gfx::Point root_location = aura::Env::GetInstance()->last_mouse_location(); |
128 aura::client::ScreenPositionClient* screen_position_client = | 127 aura::client::ScreenPositionClient* screen_position_client = |
129 aura::client::GetScreenPositionClient(host_->window()); | 128 aura::client::GetScreenPositionClient(host_->window()); |
130 if (screen_position_client) { | 129 if (screen_position_client) { |
131 screen_position_client->ConvertPointFromScreen(host_->window(), | 130 screen_position_client->ConvertPointFromScreen(host_->window(), |
132 &root_location); | 131 &root_location); |
133 } | 132 } |
(...skipping 25 matching lines...) Expand all Loading... |
159 } | 158 } |
160 if (state & ui_controls::UP) { | 159 if (state & ui_controls::UP) { |
161 button_down_mask_ &= ~flag; | 160 button_down_mask_ &= ~flag; |
162 PostMouseEvent(ui::ET_MOUSE_RELEASED, host_location, | 161 PostMouseEvent(ui::ET_MOUSE_RELEASED, host_location, |
163 button_down_mask_ | flag, flag); | 162 button_down_mask_ | flag, flag); |
164 } | 163 } |
165 | 164 |
166 RunClosureAfterAllPendingUIEvents(closure); | 165 RunClosureAfterAllPendingUIEvents(closure); |
167 return true; | 166 return true; |
168 } | 167 } |
169 virtual bool SendMouseClick(ui_controls::MouseButton type) override { | 168 bool SendMouseClick(ui_controls::MouseButton type) override { |
170 return SendMouseEvents(type, ui_controls::UP | ui_controls::DOWN); | 169 return SendMouseEvents(type, ui_controls::UP | ui_controls::DOWN); |
171 } | 170 } |
172 virtual void RunClosureAfterAllPendingUIEvents( | 171 void RunClosureAfterAllPendingUIEvents( |
173 const base::Closure& closure) override { | 172 const base::Closure& closure) override { |
174 if (!closure.is_null()) | 173 if (!closure.is_null()) |
175 base::MessageLoop::current()->PostTask(FROM_HERE, closure); | 174 base::MessageLoop::current()->PostTask(FROM_HERE, closure); |
176 } | 175 } |
177 | 176 |
178 private: | 177 private: |
179 void SendEventToProcessor(ui::Event* event) { | 178 void SendEventToProcessor(ui::Event* event) { |
180 ui::EventSourceTestApi event_source_test(host_->GetEventSource()); | 179 ui::EventSourceTestApi event_source_test(host_->GetEventSource()); |
181 ui::EventDispatchDetails details = | 180 ui::EventDispatchDetails details = |
182 event_source_test.SendEventToProcessor(event); | 181 event_source_test.SendEventToProcessor(event); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 }; | 235 }; |
237 | 236 |
238 } // namespace | 237 } // namespace |
239 | 238 |
240 ui_controls::UIControlsAura* CreateUIControlsAura(WindowTreeHost* host) { | 239 ui_controls::UIControlsAura* CreateUIControlsAura(WindowTreeHost* host) { |
241 return new UIControlsOzone(host); | 240 return new UIControlsOzone(host); |
242 } | 241 } |
243 | 242 |
244 } // namespace test | 243 } // namespace test |
245 } // namespace aura | 244 } // namespace aura |
OLD | NEW |