| Index: ui/events/test/mock_motion_event.cc
|
| diff --git a/ui/events/test/mock_motion_event.cc b/ui/events/test/mock_motion_event.cc
|
| index 98fceae1a8ed9d27e92c6ba6dd5c179074413ddb..24d81596bc62629f73accd78aa7110abc3d78292 100644
|
| --- a/ui/events/test/mock_motion_event.cc
|
| +++ b/ui/events/test/mock_motion_event.cc
|
| @@ -10,29 +10,37 @@ using base::TimeTicks;
|
|
|
| namespace ui {
|
| namespace test {
|
| +namespace {
|
| +
|
| +PointerProperties CreatePointer() {
|
| + PointerProperties pointer;
|
| + pointer.touch_major = MockMotionEvent::TOUCH_MAJOR;
|
| + return pointer;
|
| +}
|
| +
|
| +PointerProperties CreatePointer(float x, float y, int id) {
|
| + PointerProperties pointer(x, y);
|
| + pointer.touch_major = MockMotionEvent::TOUCH_MAJOR;
|
| + pointer.id = id;
|
| + return pointer;
|
| +}
|
| +
|
| +
|
| +} // namespace
|
|
|
| MockMotionEvent::MockMotionEvent()
|
| - : action(ACTION_CANCEL), pointer_count(1), touch_major(TOUCH_MAJOR), id(0),
|
| - button_state(0) {
|
| + : MotionEventGeneric(ACTION_CANCEL, base::TimeTicks(), CreatePointer()) {
|
| }
|
|
|
| MockMotionEvent::MockMotionEvent(Action action)
|
| - : action(action), pointer_count(1), touch_major(TOUCH_MAJOR), id(0),
|
| - button_state(0) {
|
| + : MotionEventGeneric(action, base::TimeTicks(), CreatePointer()) {
|
| }
|
|
|
| MockMotionEvent::MockMotionEvent(Action action,
|
| TimeTicks time,
|
| - float x,
|
| - float y)
|
| - : action(action),
|
| - pointer_count(1),
|
| - time(time),
|
| - touch_major(TOUCH_MAJOR),
|
| - id(0),
|
| - button_state(0) {
|
| - points[0].SetPoint(x, y);
|
| - tool_types[0] = TOOL_TYPE_UNKNOWN;
|
| + float x0,
|
| + float y0)
|
| + : MotionEventGeneric(action, time, CreatePointer(x0, y0, 0)) {
|
| }
|
|
|
| MockMotionEvent::MockMotionEvent(Action action,
|
| @@ -41,16 +49,10 @@ MockMotionEvent::MockMotionEvent(Action action,
|
| float y0,
|
| float x1,
|
| float y1)
|
| - : action(action),
|
| - pointer_count(2),
|
| - time(time),
|
| - touch_major(TOUCH_MAJOR),
|
| - id(0),
|
| - button_state(0) {
|
| - points[0].SetPoint(x0, y0);
|
| - tool_types[0] = TOOL_TYPE_UNKNOWN;
|
| - points[1].SetPoint(x1, y1);
|
| - tool_types[1] = TOOL_TYPE_UNKNOWN;
|
| + : MotionEventGeneric(action, time, CreatePointer(x0, y0, 0)) {
|
| + PushPointer(x1, y1);
|
| + if (action == ACTION_POINTER_UP || action == ACTION_POINTER_DOWN)
|
| + set_action_index(1);
|
| }
|
|
|
| MockMotionEvent::MockMotionEvent(Action action,
|
| @@ -61,179 +63,114 @@ MockMotionEvent::MockMotionEvent(Action action,
|
| float y1,
|
| float x2,
|
| float y2)
|
| - : action(action),
|
| - pointer_count(3),
|
| - time(time),
|
| - touch_major(TOUCH_MAJOR),
|
| - id(0),
|
| - button_state(0) {
|
| - points[0].SetPoint(x0, y0);
|
| - tool_types[0] = TOOL_TYPE_UNKNOWN;
|
| - points[1].SetPoint(x1, y1);
|
| - tool_types[1] = TOOL_TYPE_UNKNOWN;
|
| - points[2].SetPoint(x2, y2);
|
| - tool_types[2] = TOOL_TYPE_UNKNOWN;
|
| -}
|
| -
|
| -MockMotionEvent::MockMotionEvent(const MockMotionEvent& other)
|
| - : action(other.action),
|
| - pointer_count(other.pointer_count),
|
| - time(other.time),
|
| - touch_major(other.touch_major),
|
| - id(other.GetId()),
|
| - button_state(other.GetButtonState()) {
|
| - for (size_t i = 0; i < pointer_count; ++i) {
|
| - points[i] = other.points[i];
|
| - tool_types[i] = other.tool_types[i];
|
| - }
|
| -}
|
| -
|
| -MockMotionEvent::~MockMotionEvent() {}
|
| -
|
| -MotionEvent::Action MockMotionEvent::GetAction() const { return action; }
|
| -
|
| -int MockMotionEvent::GetActionIndex() const {
|
| - return static_cast<int>(pointer_count) - 1;
|
| -}
|
| -
|
| -size_t MockMotionEvent::GetPointerCount() const { return pointer_count; }
|
| -
|
| -int MockMotionEvent::GetId() const {
|
| - return id;
|
| -}
|
| -
|
| -int MockMotionEvent::GetPointerId(size_t pointer_index) const {
|
| - DCHECK(pointer_index < pointer_count);
|
| - return static_cast<int>(pointer_index);
|
| -}
|
| -
|
| -float MockMotionEvent::GetX(size_t pointer_index) const {
|
| - return points[pointer_index].x();
|
| -}
|
| -
|
| -float MockMotionEvent::GetY(size_t pointer_index) const {
|
| - return points[pointer_index].y();
|
| -}
|
| -
|
| -float MockMotionEvent::GetRawX(size_t pointer_index) const {
|
| - return GetX(pointer_index) + raw_offset.x();
|
| -}
|
| -
|
| -float MockMotionEvent::GetRawY(size_t pointer_index) const {
|
| - return GetY(pointer_index) + raw_offset.y();
|
| -}
|
| -
|
| -float MockMotionEvent::GetTouchMajor(size_t pointer_index) const {
|
| - return touch_major;
|
| -}
|
| -
|
| -float MockMotionEvent::GetPressure(size_t pointer_index) const {
|
| - return 0;
|
| -}
|
| -
|
| -TimeTicks MockMotionEvent::GetEventTime() const { return time; }
|
| -
|
| -size_t MockMotionEvent::GetHistorySize() const { return 0; }
|
| -
|
| -TimeTicks MockMotionEvent::GetHistoricalEventTime(
|
| - size_t historical_index) const {
|
| - return TimeTicks();
|
| -}
|
| -
|
| -float MockMotionEvent::GetHistoricalTouchMajor(size_t pointer_index,
|
| - size_t historical_index) const {
|
| - return 0;
|
| + : MotionEventGeneric(action, time, CreatePointer(x0, y0, 0)) {
|
| + PushPointer(x1, y1);
|
| + PushPointer(x2, y2);
|
| + if (action == ACTION_POINTER_UP || action == ACTION_POINTER_DOWN)
|
| + set_action_index(2);
|
| }
|
|
|
| -float MockMotionEvent::GetHistoricalX(size_t pointer_index,
|
| - size_t historical_index) const {
|
| - return 0;
|
| -}
|
| -
|
| -float MockMotionEvent::GetHistoricalY(size_t pointer_index,
|
| - size_t historical_index) const {
|
| - return 0;
|
| +MockMotionEvent::MockMotionEvent(Action action,
|
| + base::TimeTicks time,
|
| + const std::vector<gfx::PointF>& positions) {
|
| + set_action(action);
|
| + set_event_time(time);
|
| + if (action == ACTION_POINTER_UP || action == ACTION_POINTER_DOWN)
|
| + set_action_index(static_cast<int>(positions.size()) - 1);
|
| + for (size_t i = 0; i < positions.size(); ++i)
|
| + PushPointer(positions[i].x(), positions[i].y());
|
| }
|
|
|
| -MotionEvent::ToolType MockMotionEvent::GetToolType(size_t pointer_index) const {
|
| - DCHECK_LT(pointer_index, pointer_count);
|
| - return tool_types[pointer_index];
|
| +MockMotionEvent::MockMotionEvent(const MockMotionEvent& other)
|
| + : MotionEventGeneric(other) {
|
| }
|
|
|
| -int MockMotionEvent::GetButtonState() const {
|
| - return button_state;
|
| -}
|
| +MockMotionEvent::~MockMotionEvent() {}
|
|
|
| scoped_ptr<MotionEvent> MockMotionEvent::Clone() const {
|
| return scoped_ptr<MotionEvent>(new MockMotionEvent(*this));
|
| }
|
|
|
| scoped_ptr<MotionEvent> MockMotionEvent::Cancel() const {
|
| - scoped_ptr<MockMotionEvent> cancel_event(new MockMotionEvent(*this));
|
| - cancel_event->action = MotionEvent::ACTION_CANCEL;
|
| - return cancel_event.PassAs<MotionEvent>();
|
| -}
|
| -
|
| -void MockMotionEvent::SetId(int new_id) {
|
| - id = new_id;
|
| -}
|
| -
|
| -void MockMotionEvent::SetTime(base::TimeTicks new_time) {
|
| - time = new_time;
|
| + scoped_ptr<MockMotionEvent> event(new MockMotionEvent(*this));
|
| + event->set_action(MotionEvent::ACTION_CANCEL);
|
| + return event.PassAs<MotionEvent>();
|
| }
|
|
|
| void MockMotionEvent::PressPoint(float x, float y) {
|
| - // Reset the pointer count if the previously released and/or cancelled pointer
|
| - // was the last pointer in the event.
|
| - if (pointer_count == 1 && (action == ACTION_UP || action == ACTION_CANCEL))
|
| - pointer_count = 0;
|
| -
|
| - DCHECK_LT(pointer_count, static_cast<size_t>(MAX_POINTERS));
|
| - points[pointer_count++] = gfx::PointF(x, y);
|
| - tool_types[pointer_count] = TOOL_TYPE_UNKNOWN;
|
| - action = pointer_count > 1 ? ACTION_POINTER_DOWN : ACTION_DOWN;
|
| + ResolvePointers();
|
| + PushPointer(x, y);
|
| + if (GetPointerCount() > 1) {
|
| + set_action_index(static_cast<int>(GetPointerCount()) - 1);
|
| + set_action(ACTION_POINTER_DOWN);
|
| + } else {
|
| + set_action(ACTION_DOWN);
|
| + }
|
| }
|
|
|
| void MockMotionEvent::MovePoint(size_t index, float x, float y) {
|
| - DCHECK_LT(index, pointer_count);
|
| - points[index] = gfx::PointF(x, y);
|
| - tool_types[index] = TOOL_TYPE_UNKNOWN;
|
| - action = ACTION_MOVE;
|
| + ResolvePointers();
|
| + DCHECK_LT(index, GetPointerCount());
|
| + PointerProperties& p = pointer(index);
|
| + float dx = x - p.x;
|
| + float dy = x - p.y;
|
| + p.x = x;
|
| + p.y = y;
|
| + p.raw_x += dx;
|
| + p.raw_y += dy;
|
| + set_action(ACTION_MOVE);
|
| }
|
|
|
| void MockMotionEvent::ReleasePoint() {
|
| - DCHECK_GT(pointer_count, 0U);
|
| - if (pointer_count > 1) {
|
| - --pointer_count;
|
| - action = ACTION_POINTER_UP;
|
| + ResolvePointers();
|
| + DCHECK_GT(GetPointerCount(), 0U);
|
| + if (GetPointerCount() > 1) {
|
| + set_action_index(static_cast<int>(GetPointerCount()) - 1);
|
| + set_action(ACTION_POINTER_UP);
|
| } else {
|
| - action = ACTION_UP;
|
| + set_action(ACTION_UP);
|
| }
|
| }
|
|
|
| void MockMotionEvent::CancelPoint() {
|
| - DCHECK_GT(pointer_count, 0U);
|
| - if (pointer_count > 1)
|
| - --pointer_count;
|
| - action = ACTION_CANCEL;
|
| + ResolvePointers();
|
| + DCHECK_GT(GetPointerCount(), 0U);
|
| + set_action(ACTION_CANCEL);
|
| }
|
|
|
| void MockMotionEvent::SetTouchMajor(float new_touch_major) {
|
| - touch_major = new_touch_major;
|
| + for (size_t i = 0; i < GetPointerCount(); ++i)
|
| + pointer(i).touch_major = new_touch_major;
|
| }
|
|
|
| void MockMotionEvent::SetRawOffset(float raw_offset_x, float raw_offset_y) {
|
| - raw_offset.set_x(raw_offset_x);
|
| - raw_offset.set_y(raw_offset_y);
|
| + for (size_t i = 0; i < GetPointerCount(); ++i) {
|
| + pointer(i).raw_x = pointer(i).x + raw_offset_x;
|
| + pointer(i).raw_y = pointer(i).y + raw_offset_y;
|
| + }
|
| }
|
|
|
| void MockMotionEvent::SetToolType(size_t pointer_index, ToolType tool_type) {
|
| - DCHECK_LT(pointer_index, pointer_count);
|
| - tool_types[pointer_index] = tool_type;
|
| + DCHECK_LT(pointer_index, GetPointerCount());
|
| + pointer(pointer_index).tool_type = tool_type;
|
| }
|
|
|
| -void MockMotionEvent::SetButtonState(int new_button_state) {
|
| - button_state = new_button_state;
|
| +void MockMotionEvent::PushPointer(float x, float y) {
|
| + MotionEventGeneric::PushPointer(
|
| + CreatePointer(x, y, static_cast<int>(GetPointerCount())));
|
| +}
|
| +
|
| +void MockMotionEvent::ResolvePointers() {
|
| + set_action_index(-1);
|
| + switch (GetAction()) {
|
| + case ACTION_UP:
|
| + case ACTION_POINTER_UP:
|
| + case ACTION_CANCEL:
|
| + PopPointer();
|
| + return;
|
| + default:
|
| + break;
|
| + }
|
| }
|
|
|
| } // namespace test
|
|
|