| 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 "ui/touch_selection/touch_handle.h" | 5 #include "ui/touch_selection/touch_handle.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 namespace ui { | 9 namespace ui { |
| 10 | 10 |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 BeginDrag(); | 188 BeginDrag(); |
| 189 } break; | 189 } break; |
| 190 | 190 |
| 191 case MotionEvent::ACTION_MOVE: { | 191 case MotionEvent::ACTION_MOVE: { |
| 192 gfx::PointF touch_move_position(event.GetX(), event.GetY()); | 192 gfx::PointF touch_move_position(event.GetX(), event.GetY()); |
| 193 is_drag_within_tap_region_ &= | 193 is_drag_within_tap_region_ &= |
| 194 client_->IsWithinTapSlop(touch_down_position_ - touch_move_position); | 194 client_->IsWithinTapSlop(touch_down_position_ - touch_move_position); |
| 195 | 195 |
| 196 // Note that we signal drag update even if we're inside the tap region, | 196 // Note that we signal drag update even if we're inside the tap region, |
| 197 // as there are cases where characters are narrower than the slop length. | 197 // as there are cases where characters are narrower than the slop length. |
| 198 client_->OnDragUpdate(*this, touch_move_position + touch_drag_offset_); | 198 client_->OnDragEvent(HANDLE_DRAG_UPDATE, *this, |
| 199 touch_move_position + touch_drag_offset_); |
| 199 } break; | 200 } break; |
| 200 | 201 |
| 201 case MotionEvent::ACTION_UP: { | 202 case MotionEvent::ACTION_UP: { |
| 202 if (is_drag_within_tap_region_ && | 203 if (is_drag_within_tap_region_ && |
| 203 (event.GetEventTime() - touch_down_time_) < | 204 (event.GetEventTime() - touch_down_time_) < |
| 204 client_->GetMaxTapDuration()) { | 205 client_->GetMaxTapDuration()) { |
| 205 client_->OnHandleTapped(*this); | 206 client_->OnHandleTapped(*this); |
| 206 } | 207 } |
| 207 | 208 |
| 208 EndDrag(); | 209 EndDrag(); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 return focus - gfx::Vector2dF(focal_offset_x, focal_offset_y); | 331 return focus - gfx::Vector2dF(focal_offset_x, focal_offset_y); |
| 331 } | 332 } |
| 332 | 333 |
| 333 void TouchHandle::BeginDrag() { | 334 void TouchHandle::BeginDrag() { |
| 334 DCHECK(enabled_); | 335 DCHECK(enabled_); |
| 335 if (is_dragging_) | 336 if (is_dragging_) |
| 336 return; | 337 return; |
| 337 EndFade(); | 338 EndFade(); |
| 338 is_dragging_ = true; | 339 is_dragging_ = true; |
| 339 is_drag_within_tap_region_ = true; | 340 is_drag_within_tap_region_ = true; |
| 340 client_->OnDragBegin(*this, focus_bottom()); | 341 client_->OnDragEvent(HANDLE_DRAG_BEGIN, *this, focus_bottom()); |
| 341 } | 342 } |
| 342 | 343 |
| 343 void TouchHandle::EndDrag() { | 344 void TouchHandle::EndDrag() { |
| 344 DCHECK(enabled_); | 345 DCHECK(enabled_); |
| 345 if (!is_dragging_) | 346 if (!is_dragging_) |
| 346 return; | 347 return; |
| 347 | 348 |
| 348 is_dragging_ = false; | 349 is_dragging_ = false; |
| 349 is_drag_within_tap_region_ = false; | 350 is_drag_within_tap_region_ = false; |
| 350 client_->OnDragEnd(*this); | 351 client_->OnDragEvent(HANDLE_DRAG_BEGIN, *this, focus_bottom()); |
| 351 | 352 |
| 352 if (deferred_orientation_ != TouchHandleOrientation::UNDEFINED) { | 353 if (deferred_orientation_ != TouchHandleOrientation::UNDEFINED) { |
| 353 TouchHandleOrientation deferred_orientation = deferred_orientation_; | 354 TouchHandleOrientation deferred_orientation = deferred_orientation_; |
| 354 deferred_orientation_ = TouchHandleOrientation::UNDEFINED; | 355 deferred_orientation_ = TouchHandleOrientation::UNDEFINED; |
| 355 SetOrientation(deferred_orientation); | 356 SetOrientation(deferred_orientation); |
| 356 // Handle layout may be deferred while the handle is dragged. | 357 // Handle layout may be deferred while the handle is dragged. |
| 357 SetUpdateLayoutRequired(); | 358 SetUpdateLayoutRequired(); |
| 358 UpdateHandleLayout(); | 359 UpdateHandleLayout(); |
| 359 } | 360 } |
| 360 | 361 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 drawable_->SetAlpha(alpha); | 400 drawable_->SetAlpha(alpha); |
| 400 } | 401 } |
| 401 | 402 |
| 402 void TouchHandle::SetUpdateLayoutRequired() { | 403 void TouchHandle::SetUpdateLayoutRequired() { |
| 403 // TODO(AviD): Make the layout call explicit to the caller by adding this in | 404 // TODO(AviD): Make the layout call explicit to the caller by adding this in |
| 404 // TouchHandleClient. | 405 // TouchHandleClient. |
| 405 is_handle_layout_update_required_ = true; | 406 is_handle_layout_update_required_ = true; |
| 406 } | 407 } |
| 407 | 408 |
| 408 } // namespace ui | 409 } // namespace ui |
| OLD | NEW |