| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 #if !defined(__has_feature) || !__has_feature(objc_arc) | 5 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 6 #error "This file requires ARC support." | 6 #error "This file requires ARC support." |
| 7 #endif | 7 #endif |
| 8 | 8 |
| 9 #import "remoting/ios/client_gestures.h" | 9 #import "remoting/ios/client_gestures.h" |
| 10 | 10 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 [view addGestureRecognizer:_panRecognizer]; | 37 [view addGestureRecognizer:_panRecognizer]; |
| 38 | 38 |
| 39 _flingRecognizer = [[UIPanGestureRecognizer alloc] | 39 _flingRecognizer = [[UIPanGestureRecognizer alloc] |
| 40 initWithTarget:self | 40 initWithTarget:self |
| 41 action:@selector(flingGestureTriggered:)]; | 41 action:@selector(flingGestureTriggered:)]; |
| 42 _flingRecognizer.minimumNumberOfTouches = 1; | 42 _flingRecognizer.minimumNumberOfTouches = 1; |
| 43 _flingRecognizer.maximumNumberOfTouches = 1; | 43 _flingRecognizer.maximumNumberOfTouches = 1; |
| 44 _flingRecognizer.delegate = self; | 44 _flingRecognizer.delegate = self; |
| 45 [view addGestureRecognizer:_flingRecognizer]; | 45 [view addGestureRecognizer:_flingRecognizer]; |
| 46 | 46 |
| 47 _scrollRecognizer = [[UIPanGestureRecognizer alloc] |
| 48 initWithTarget:self |
| 49 action:@selector(scrollGestureTriggered:)]; |
| 50 _scrollRecognizer.minimumNumberOfTouches = 2; |
| 51 _scrollRecognizer.maximumNumberOfTouches = 2; |
| 52 _scrollRecognizer.delegate = self; |
| 53 [view addGestureRecognizer:_scrollRecognizer]; |
| 54 |
| 47 _threeFingerPanRecognizer = [[UIPanGestureRecognizer alloc] | 55 _threeFingerPanRecognizer = [[UIPanGestureRecognizer alloc] |
| 48 initWithTarget:self | 56 initWithTarget:self |
| 49 action:@selector(threeFingerPanGestureTriggered:)]; | 57 action:@selector(threeFingerPanGestureTriggered:)]; |
| 50 _threeFingerPanRecognizer.minimumNumberOfTouches = 3; | 58 _threeFingerPanRecognizer.minimumNumberOfTouches = 3; |
| 51 _threeFingerPanRecognizer.maximumNumberOfTouches = 3; | 59 _threeFingerPanRecognizer.maximumNumberOfTouches = 3; |
| 52 _threeFingerPanRecognizer.delegate = self; | 60 _threeFingerPanRecognizer.delegate = self; |
| 53 [view addGestureRecognizer:_threeFingerPanRecognizer]; | 61 [view addGestureRecognizer:_threeFingerPanRecognizer]; |
| 54 | 62 |
| 55 _pinchRecognizer = [[UIPinchGestureRecognizer alloc] | 63 _pinchRecognizer = [[UIPinchGestureRecognizer alloc] |
| 56 initWithTarget:self | 64 initWithTarget:self |
| (...skipping 23 matching lines...) Expand all Loading... |
| 80 | 88 |
| 81 _inputScheme = HostInputSchemeTouch; | 89 _inputScheme = HostInputSchemeTouch; |
| 82 | 90 |
| 83 [_singleTapRecognizer requireGestureRecognizerToFail:_twoFingerTapRecognizer]; | 91 [_singleTapRecognizer requireGestureRecognizerToFail:_twoFingerTapRecognizer]; |
| 84 [_twoFingerTapRecognizer | 92 [_twoFingerTapRecognizer |
| 85 requireGestureRecognizerToFail:_threeFingerTapRecognizer]; | 93 requireGestureRecognizerToFail:_threeFingerTapRecognizer]; |
| 86 [_pinchRecognizer requireGestureRecognizerToFail:_singleTapRecognizer]; | 94 [_pinchRecognizer requireGestureRecognizerToFail:_singleTapRecognizer]; |
| 87 [_panRecognizer requireGestureRecognizerToFail:_singleTapRecognizer]; | 95 [_panRecognizer requireGestureRecognizerToFail:_singleTapRecognizer]; |
| 88 [_threeFingerPanRecognizer | 96 [_threeFingerPanRecognizer |
| 89 requireGestureRecognizerToFail:_threeFingerTapRecognizer]; | 97 requireGestureRecognizerToFail:_threeFingerTapRecognizer]; |
| 98 [_panRecognizer requireGestureRecognizerToFail:_scrollRecognizer]; |
| 90 | 99 |
| 91 _edgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] | 100 _edgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] |
| 92 initWithTarget:self | 101 initWithTarget:self |
| 93 action:@selector(edgeGestureTriggered:)]; | 102 action:@selector(edgeGestureTriggered:)]; |
| 94 //_edgeGesture.edges = UIRectEdgeLeft; | 103 //_edgeGesture.edges = UIRectEdgeLeft; |
| 95 _edgeGesture.delegate = self; | 104 _edgeGesture.delegate = self; |
| 96 [view addGestureRecognizer:_edgeGesture]; | 105 [view addGestureRecognizer:_edgeGesture]; |
| 97 | 106 |
| 98 _swipeGesture = [[UISwipeGestureRecognizer alloc] | 107 _swipeGesture = [[UISwipeGestureRecognizer alloc] |
| 99 initWithTarget:self | 108 initWithTarget:self |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 // panning. | 248 // panning. |
| 240 - (IBAction)flingGestureTriggered:(UIPanGestureRecognizer*)sender { | 249 - (IBAction)flingGestureTriggered:(UIPanGestureRecognizer*)sender { |
| 241 if ([sender state] == UIGestureRecognizerStateEnded) { | 250 if ([sender state] == UIGestureRecognizerStateEnded) { |
| 242 CGPoint velocity = [sender velocityInView:_view]; | 251 CGPoint velocity = [sender velocityInView:_view]; |
| 243 if (velocity.x != 0 || velocity.y != 0) { | 252 if (velocity.x != 0 || velocity.y != 0) { |
| 244 _client.gestureInterpreter->OneFingerFling(velocity.x, velocity.y); | 253 _client.gestureInterpreter->OneFingerFling(velocity.x, velocity.y); |
| 245 } | 254 } |
| 246 } | 255 } |
| 247 } | 256 } |
| 248 | 257 |
| 258 - (IBAction)scrollGestureTriggered:(UIPanGestureRecognizer*)sender { |
| 259 if ([sender state] == UIGestureRecognizerStateEnded) { |
| 260 CGPoint velocity = [sender velocityInView:_view]; |
| 261 _client.gestureInterpreter->ScrollWithVelocity(velocity.x, velocity.y); |
| 262 return; |
| 263 } |
| 264 |
| 265 CGPoint scrollPoint = [sender locationInView:_view]; |
| 266 CGPoint translation = [sender translationInView:_view]; |
| 267 _client.gestureInterpreter->Scroll(scrollPoint.x, scrollPoint.y, |
| 268 translation.x, translation.y); |
| 269 |
| 270 // Reset translation so next iteration is relative |
| 271 [sender setTranslation:CGPointZero inView:_view]; |
| 272 } |
| 273 |
| 249 // Click-Drag mouse operation. This can occur during a Pan. | 274 // Click-Drag mouse operation. This can occur during a Pan. |
| 250 - (IBAction)longPressGestureTriggered:(UILongPressGestureRecognizer*)sender { | 275 - (IBAction)longPressGestureTriggered:(UILongPressGestureRecognizer*)sender { |
| 251 CGPoint touchPoint = [sender locationInView:_view]; | 276 CGPoint touchPoint = [sender locationInView:_view]; |
| 252 remoting::GestureInterpreter::GestureState state; | 277 remoting::GestureInterpreter::GestureState state; |
| 253 switch ([sender state]) { | 278 switch ([sender state]) { |
| 254 case UIGestureRecognizerStateBegan: | 279 case UIGestureRecognizerStateBegan: |
| 255 state = remoting::GestureInterpreter::GESTURE_BEGAN; | 280 state = remoting::GestureInterpreter::GESTURE_BEGAN; |
| 256 break; | 281 break; |
| 257 case UIGestureRecognizerStateChanged: | 282 case UIGestureRecognizerStateChanged: |
| 258 state = remoting::GestureInterpreter::GESTURE_CHANGED; | 283 state = remoting::GestureInterpreter::GESTURE_CHANGED; |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 otherGestureRecognizer == _edgeGesture) { | 400 otherGestureRecognizer == _edgeGesture) { |
| 376 return YES; | 401 return YES; |
| 377 } | 402 } |
| 378 // TODO(nicholss): If we return NO here, it dismisses the other reconizers. | 403 // TODO(nicholss): If we return NO here, it dismisses the other reconizers. |
| 379 // As we add more types of reconizers, they need to be accounted for in the | 404 // As we add more types of reconizers, they need to be accounted for in the |
| 380 // above logic. | 405 // above logic. |
| 381 return NO; | 406 return NO; |
| 382 } | 407 } |
| 383 | 408 |
| 384 @end | 409 @end |
| OLD | NEW |