blob: aea0d3ca352c89b5349bd2175dc21508181ade3e [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef REMOTING_CLIENT_IOS_CLIENT_GESTURES_H_
#define REMOTING_CLIENT_IOS_CLIENT_GESTURES_H_
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#include "base/logging.h"
#import "remoting/client/ios/key_input.h"
typedef NS_ENUM(NSInteger, HostInputScheme) {
// Mouse cursor is shown
// Dragging or Panning, moves the mouse cursor
// Tapping causes mouse input at the cursor location
HostInputSchemeTrackpad = 0, // Default
// Mouse cursor is not shown
// Dragging or Panning is similar to a map
// Tapping causes mouse input at the tap location
HostInputSchemeTouch = 1
};
typedef NS_ENUM(NSInteger, MouseButton) {
NO_BUTTON = 0,
LEFT_BUTTON = 1,
MIDDLE_BUTTON = 2,
RIGHT_BUTTON = 3,
};
@interface ClientGestures : NSObject<UIGestureRecognizerDelegate> {
@private
UILongPressGestureRecognizer* _longPressRecognizer;
UIPanGestureRecognizer* _panRecognizer;
UIPanGestureRecognizer* _threeFingerPanRecognizer;
UIPinchGestureRecognizer* _pinchRecognizer;
UITapGestureRecognizer* _singleTapRecognizer;
UITapGestureRecognizer* _twoFingerTapRecognizer;
UITapGestureRecognizer* _threeFingerTapRecognizer;
UIScreenEdgePanGestureRecognizer* _edgeGesture;
UISwipeGestureRecognizer* _swipeGesture;
HostInputScheme _inputScheme;
}
- (instancetype)initWithView:(UIView*)view;
// Zoom in/out
- (IBAction)pinchGestureTriggered:(UIPinchGestureRecognizer*)sender;
// Left mouse click, moves cursor
- (IBAction)tapGestureTriggered:(UITapGestureRecognizer*)sender;
// Scroll the view in 2d
- (IBAction)panGestureTriggered:(UIPanGestureRecognizer*)sender;
// Right mouse click and drag, moves cursor
- (IBAction)longPressGestureTriggered:(UILongPressGestureRecognizer*)sender;
// Right mouse click
- (IBAction)twoFingerTapGestureTriggered:(UITapGestureRecognizer*)sender;
// Middle mouse click
- (IBAction)threeFingerTapGestureTriggered:(UITapGestureRecognizer*)sender;
// Show hidden menus. Swipe up for keyboard, swipe down for navigation menu
- (IBAction)threeFingerPanGestureTriggered:(UIPanGestureRecognizer*)sender;
@end
#endif // REMOTING_CLIENT_IOS_CLIENT_GESTURES_H_