Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(448)

Unified Diff: remoting/ios/client_gestures.mm

Issue 2904703003: [CRD iOS] Add support for three-finger gestures (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« remoting/ios/client_gestures.h ('K') | « remoting/ios/client_gestures.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/ios/client_gestures.mm
diff --git a/remoting/ios/client_gestures.mm b/remoting/ios/client_gestures.mm
index a868d44b348441b7a35e76ab31d1c0097f4fe01b..4a1404f2a1b5941d5af7569e11f69890f75a8156 100644
--- a/remoting/ios/client_gestures.mm
+++ b/remoting/ios/client_gestures.mm
@@ -8,6 +8,7 @@
#import "remoting/ios/client_gestures.h"
+#import "remoting/ios/app/host_view_controller.h"
#import "remoting/ios/session/remoting_client.h"
#include "base/logging.h"
@@ -27,9 +28,10 @@ remoting::GestureInterpreter::GestureState toGestureState(
@implementation ClientGestures
-- (instancetype)initWithView:(UIView*)view client:(RemotingClient*)client {
- _view = view;
- _client = client;
+- (instancetype)initWithHostViewController:(HostViewController*)controller {
+ _view = controller.view;
+ _client = controller.client;
+ _controller = controller;
_inputScheme = HostInputSchemeTouch;
@@ -37,7 +39,7 @@ remoting::GestureInterpreter::GestureState toGestureState(
initWithTarget:self
action:@selector(longPressGestureTriggered:)];
_longPressRecognizer.delegate = self;
- [view addGestureRecognizer:_longPressRecognizer];
+ [_view addGestureRecognizer:_longPressRecognizer];
_panRecognizer = [[UIPanGestureRecognizer alloc]
initWithTarget:self
@@ -45,7 +47,7 @@ remoting::GestureInterpreter::GestureState toGestureState(
_panRecognizer.minimumNumberOfTouches = 1;
_panRecognizer.maximumNumberOfTouches = 2;
_panRecognizer.delegate = self;
- [view addGestureRecognizer:_panRecognizer];
+ [_view addGestureRecognizer:_panRecognizer];
_flingRecognizer = [[UIPanGestureRecognizer alloc]
initWithTarget:self
@@ -53,7 +55,7 @@ remoting::GestureInterpreter::GestureState toGestureState(
_flingRecognizer.minimumNumberOfTouches = 1;
_flingRecognizer.maximumNumberOfTouches = 1;
_flingRecognizer.delegate = self;
- [view addGestureRecognizer:_flingRecognizer];
+ [_view addGestureRecognizer:_flingRecognizer];
_scrollRecognizer = [[UIPanGestureRecognizer alloc]
initWithTarget:self
@@ -61,7 +63,7 @@ remoting::GestureInterpreter::GestureState toGestureState(
_scrollRecognizer.minimumNumberOfTouches = 2;
_scrollRecognizer.maximumNumberOfTouches = 2;
_scrollRecognizer.delegate = self;
- [view addGestureRecognizer:_scrollRecognizer];
+ [_view addGestureRecognizer:_scrollRecognizer];
_threeFingerPanRecognizer = [[UIPanGestureRecognizer alloc]
initWithTarget:self
@@ -69,33 +71,33 @@ remoting::GestureInterpreter::GestureState toGestureState(
_threeFingerPanRecognizer.minimumNumberOfTouches = 3;
_threeFingerPanRecognizer.maximumNumberOfTouches = 3;
_threeFingerPanRecognizer.delegate = self;
- [view addGestureRecognizer:_threeFingerPanRecognizer];
+ [_view addGestureRecognizer:_threeFingerPanRecognizer];
_pinchRecognizer = [[UIPinchGestureRecognizer alloc]
initWithTarget:self
action:@selector(pinchGestureTriggered:)];
_pinchRecognizer.delegate = self;
- [view addGestureRecognizer:_pinchRecognizer];
+ [_view addGestureRecognizer:_pinchRecognizer];
_singleTapRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(tapGestureTriggered:)];
_singleTapRecognizer.delegate = self;
- [view addGestureRecognizer:_singleTapRecognizer];
+ [_view addGestureRecognizer:_singleTapRecognizer];
_twoFingerTapRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(twoFingerTapGestureTriggered:)];
_twoFingerTapRecognizer.numberOfTouchesRequired = 2;
_twoFingerTapRecognizer.delegate = self;
- [view addGestureRecognizer:_twoFingerTapRecognizer];
+ [_view addGestureRecognizer:_twoFingerTapRecognizer];
_threeFingerTapRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(threeFingerTapGestureTriggered:)];
_threeFingerTapRecognizer.numberOfTouchesRequired = 3;
_threeFingerPanRecognizer.delegate = self;
- [view addGestureRecognizer:_threeFingerTapRecognizer];
+ [_view addGestureRecognizer:_threeFingerTapRecognizer];
_inputScheme = HostInputSchemeTouch;
@@ -103,6 +105,7 @@ remoting::GestureInterpreter::GestureState toGestureState(
[_twoFingerTapRecognizer
requireGestureRecognizerToFail:_threeFingerTapRecognizer];
[_pinchRecognizer requireGestureRecognizerToFail:_singleTapRecognizer];
+ [_pinchRecognizer requireGestureRecognizerToFail:_threeFingerPanRecognizer];
[_panRecognizer requireGestureRecognizerToFail:_singleTapRecognizer];
[_threeFingerPanRecognizer
requireGestureRecognizerToFail:_threeFingerTapRecognizer];
@@ -113,14 +116,14 @@ remoting::GestureInterpreter::GestureState toGestureState(
action:@selector(edgeGestureTriggered:)];
//_edgeGesture.edges = UIRectEdgeLeft;
_edgeGesture.delegate = self;
- [view addGestureRecognizer:_edgeGesture];
+ [_view addGestureRecognizer:_edgeGesture];
_swipeGesture = [[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(swipeGestureTriggered:)];
_swipeGesture.numberOfTouchesRequired = 2;
_swipeGesture.delegate = self;
- [view addGestureRecognizer:_swipeGesture];
+ [_view addGestureRecognizer:_swipeGesture];
return self;
}
@@ -325,29 +328,24 @@ remoting::GestureInterpreter::GestureState toGestureState(
}
- (IBAction)threeFingerTapGestureTriggered:(UITapGestureRecognizer*)sender {
- // LOG_TRACE(INFO) << "threeFingerTapGestureTriggered";
- if (_inputScheme == HostInputSchemeTouch) {
- // disabled
- return;
- }
-
- // if ([_scene containsTouchPoint:[sender locationInView:self.view]]) {
- // [Utility middleClickOn:_clientToHostProxy at:_scene.mousePosition];
- // }
+ CGPoint touchPoint = [sender locationInView:_view];
+ _client.gestureInterpreter->ThreeFingerTap(touchPoint.x, touchPoint.y);
}
- (IBAction)threeFingerPanGestureTriggered:(UIPanGestureRecognizer*)sender {
// LOG_TRACE(INFO) << "threeFingerPanGestureTriggered";
- // if ([sender state] == UIGestureRecognizerStateChanged) {
- // CGPoint translation = [sender translationInView:self.view];
- // if (translation.y > 0) {
- // // Swiped down - do nothing
- // } else if (translation.y < 0) {
- // // Swiped up
- // [_keyEntryView becomeFirstResponder];
- // }
- // [sender setTranslation:CGPointZero inView:self.view];
- // }
+ if ([sender state] != UIGestureRecognizerStateEnded) {
+ return;
+ }
+
+ CGPoint translation = [sender translationInView:_view];
+ if (translation.y > 0) {
+ // Swiped down - hide keyboard (for now)
+ [_controller hideKeyboard];
+ } else if (translation.y < 0) {
+ // Swiped up - show keyboard
+ [_controller showKeyboard];
+ }
}
- (IBAction)edgeGestureTriggered:(UIScreenEdgePanGestureRecognizer*)sender {
« remoting/ios/client_gestures.h ('K') | « remoting/ios/client_gestures.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698