OLD | NEW |
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 #include "ui/aura/test/event_generator.h" | 5 #include "ui/aura/test/event_generator.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/message_loop/message_loop_proxy.h" | 9 #include "base/message_loop/message_loop_proxy.h" |
10 #include "ui/aura/client/screen_position_client.h" | 10 #include "ui/aura/client/screen_position_client.h" |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 } | 143 } |
144 | 144 |
145 void EventGenerator::ReleaseRightButton() { | 145 void EventGenerator::ReleaseRightButton() { |
146 ReleaseButton(ui::EF_RIGHT_MOUSE_BUTTON); | 146 ReleaseButton(ui::EF_RIGHT_MOUSE_BUTTON); |
147 } | 147 } |
148 | 148 |
149 void EventGenerator::SendMouseExit() { | 149 void EventGenerator::SendMouseExit() { |
150 gfx::Point exit_location(current_location_); | 150 gfx::Point exit_location(current_location_); |
151 ConvertPointToTarget(current_root_window_->window(), &exit_location); | 151 ConvertPointToTarget(current_root_window_->window(), &exit_location); |
152 ui::MouseEvent mouseev(ui::ET_MOUSE_EXITED, exit_location, exit_location, | 152 ui::MouseEvent mouseev(ui::ET_MOUSE_EXITED, exit_location, exit_location, |
153 flags_); | 153 flags_, 0); |
154 Dispatch(&mouseev); | 154 Dispatch(&mouseev); |
155 } | 155 } |
156 | 156 |
157 void EventGenerator::MoveMouseToInHost(const gfx::Point& point_in_host) { | 157 void EventGenerator::MoveMouseToInHost(const gfx::Point& point_in_host) { |
158 const ui::EventType event_type = (flags_ & ui::EF_LEFT_MOUSE_BUTTON) ? | 158 const ui::EventType event_type = (flags_ & ui::EF_LEFT_MOUSE_BUTTON) ? |
159 ui::ET_MOUSE_DRAGGED : ui::ET_MOUSE_MOVED; | 159 ui::ET_MOUSE_DRAGGED : ui::ET_MOUSE_MOVED; |
160 ui::MouseEvent mouseev(event_type, point_in_host, point_in_host, flags_); | 160 ui::MouseEvent mouseev(event_type, point_in_host, point_in_host, flags_, 0); |
161 Dispatch(&mouseev); | 161 Dispatch(&mouseev); |
162 | 162 |
163 current_location_ = point_in_host; | 163 current_location_ = point_in_host; |
164 current_root_window_->ConvertPointFromHost(¤t_location_); | 164 current_root_window_->ConvertPointFromHost(¤t_location_); |
165 } | 165 } |
166 | 166 |
167 void EventGenerator::MoveMouseTo(const gfx::Point& point_in_screen, | 167 void EventGenerator::MoveMouseTo(const gfx::Point& point_in_screen, |
168 int count) { | 168 int count) { |
169 DCHECK_GT(count, 0); | 169 DCHECK_GT(count, 0); |
170 const ui::EventType event_type = (flags_ & ui::EF_LEFT_MOUSE_BUTTON) ? | 170 const ui::EventType event_type = (flags_ & ui::EF_LEFT_MOUSE_BUTTON) ? |
171 ui::ET_MOUSE_DRAGGED : ui::ET_MOUSE_MOVED; | 171 ui::ET_MOUSE_DRAGGED : ui::ET_MOUSE_MOVED; |
172 | 172 |
173 gfx::Vector2dF diff(point_in_screen - current_location_); | 173 gfx::Vector2dF diff(point_in_screen - current_location_); |
174 for (float i = 1; i <= count; i++) { | 174 for (float i = 1; i <= count; i++) { |
175 gfx::Vector2dF step(diff); | 175 gfx::Vector2dF step(diff); |
176 step.Scale(i / count); | 176 step.Scale(i / count); |
177 gfx::Point move_point = current_location_ + gfx::ToRoundedVector2d(step); | 177 gfx::Point move_point = current_location_ + gfx::ToRoundedVector2d(step); |
178 if (!grab_) | 178 if (!grab_) |
179 UpdateCurrentRootWindow(move_point); | 179 UpdateCurrentRootWindow(move_point); |
180 ConvertPointToTarget(current_root_window_->window(), &move_point); | 180 ConvertPointToTarget(current_root_window_->window(), &move_point); |
181 ui::MouseEvent mouseev(event_type, move_point, move_point, flags_); | 181 ui::MouseEvent mouseev(event_type, move_point, move_point, flags_, 0); |
182 Dispatch(&mouseev); | 182 Dispatch(&mouseev); |
183 } | 183 } |
184 current_location_ = point_in_screen; | 184 current_location_ = point_in_screen; |
185 } | 185 } |
186 | 186 |
187 void EventGenerator::MoveMouseRelativeTo(const Window* window, | 187 void EventGenerator::MoveMouseRelativeTo(const Window* window, |
188 const gfx::Point& point_in_parent) { | 188 const gfx::Point& point_in_parent) { |
189 gfx::Point point(point_in_parent); | 189 gfx::Point point(point_in_parent); |
190 ConvertPointFromTarget(window, &point); | 190 ConvertPointFromTarget(window, &point); |
191 MoveMouseTo(point); | 191 MoveMouseTo(point); |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 | 504 |
505 void EventGenerator::UpdateCurrentRootWindow(const gfx::Point& point) { | 505 void EventGenerator::UpdateCurrentRootWindow(const gfx::Point& point) { |
506 current_root_window_ = delegate_->GetRootWindowAt(point); | 506 current_root_window_ = delegate_->GetRootWindowAt(point); |
507 } | 507 } |
508 | 508 |
509 void EventGenerator::PressButton(int flag) { | 509 void EventGenerator::PressButton(int flag) { |
510 if (!(flags_ & flag)) { | 510 if (!(flags_ & flag)) { |
511 flags_ |= flag; | 511 flags_ |= flag; |
512 grab_ = flags_ & kAllButtonMask; | 512 grab_ = flags_ & kAllButtonMask; |
513 gfx::Point location = GetLocationInCurrentRoot(); | 513 gfx::Point location = GetLocationInCurrentRoot(); |
514 ui::MouseEvent mouseev(ui::ET_MOUSE_PRESSED, location, location, flags_); | 514 ui::MouseEvent mouseev(ui::ET_MOUSE_PRESSED, location, location, flags_, |
| 515 flag); |
515 Dispatch(&mouseev); | 516 Dispatch(&mouseev); |
516 } | 517 } |
517 } | 518 } |
518 | 519 |
519 void EventGenerator::ReleaseButton(int flag) { | 520 void EventGenerator::ReleaseButton(int flag) { |
520 if (flags_ & flag) { | 521 if (flags_ & flag) { |
521 gfx::Point location = GetLocationInCurrentRoot(); | 522 gfx::Point location = GetLocationInCurrentRoot(); |
522 ui::MouseEvent mouseev(ui::ET_MOUSE_RELEASED, location, | 523 ui::MouseEvent mouseev(ui::ET_MOUSE_RELEASED, location, |
523 location, flags_); | 524 location, flags_, flag); |
524 Dispatch(&mouseev); | 525 Dispatch(&mouseev); |
525 flags_ ^= flag; | 526 flags_ ^= flag; |
526 } | 527 } |
527 grab_ = flags_ & kAllButtonMask; | 528 grab_ = flags_ & kAllButtonMask; |
528 } | 529 } |
529 | 530 |
530 void EventGenerator::ConvertPointFromTarget(const aura::Window* target, | 531 void EventGenerator::ConvertPointFromTarget(const aura::Window* target, |
531 gfx::Point* point) const { | 532 gfx::Point* point) const { |
532 DCHECK(point); | 533 DCHECK(point); |
533 aura::client::ScreenPositionClient* client = | 534 aura::client::ScreenPositionClient* client = |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
615 base::MessageLoopProxy::current()->PostTask( | 616 base::MessageLoopProxy::current()->PostTask( |
616 FROM_HERE, | 617 FROM_HERE, |
617 base::Bind(&EventGenerator::DispatchNextPendingEvent, | 618 base::Bind(&EventGenerator::DispatchNextPendingEvent, |
618 base::Unretained(this))); | 619 base::Unretained(this))); |
619 } | 620 } |
620 } | 621 } |
621 | 622 |
622 | 623 |
623 } // namespace test | 624 } // namespace test |
624 } // namespace aura | 625 } // namespace aura |
OLD | NEW |