Index: remoting/ios/key_input.mm |
diff --git a/remoting/ios/key_input.mm b/remoting/ios/key_input.mm |
deleted file mode 100644 |
index 00b44d94ddec72b22980e0a82dfa9f1206034788..0000000000000000000000000000000000000000 |
--- a/remoting/ios/key_input.mm |
+++ /dev/null |
@@ -1,150 +0,0 @@ |
-// Copyright 2016 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. |
- |
-#if !defined(__has_feature) || !__has_feature(objc_arc) |
-#error "This file requires ARC support." |
-#endif |
- |
-#import "remoting/ios/key_input.h" |
-#import "remoting/ios/key_map_us.h" |
- |
-@interface KeyInput (Private) |
-- (void)transmitAppropriateKeyCode:(NSString*)text; |
-- (void)transmitKeyCode:(NSInteger)keyCode needShift:(bool)needShift; |
-@end |
- |
-@implementation KeyInput |
- |
-@synthesize delegate = _delegate; |
-@synthesize keyboardVisible = _keyboardVisible; |
-@synthesize keyboardHeight = _keyboardHeight; |
- |
-// Override UIView |
-- (instancetype)initWithFrame:(CGRect)frame { |
- self = [super initWithFrame:frame]; |
- if (self) { |
- NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; |
- [center addObserver:self |
- selector:@selector(keyboardDidShow:) |
- name:UIKeyboardDidShowNotification |
- object:nil]; |
- [center addObserver:self |
- selector:@selector(keyboardWillHide:) |
- name:UIKeyboardWillHideNotification |
- object:nil]; |
- } |
- return self; |
-} |
- |
-// Override NSObject |
-- (void)dealloc { |
- [[NSNotificationCenter defaultCenter] removeObserver:self]; |
-} |
- |
-// Callback from NotificationCenter |
-- (void)keyboardDidShow:(NSNotification*)notification { |
- NSDictionary* userInfo = [notification userInfo]; |
- CGSize keyboardSize = |
- [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size; |
- _keyboardHeight = keyboardSize.height; |
- _keyboardVisible = YES; |
- [_delegate keyboardShown]; |
-} |
- |
-// Callback from NotificationCenter |
-- (void)keyboardWillHide:(NSNotification*)notification { |
- _keyboardHeight = 0.0; |
- _keyboardVisible = NO; |
- [_delegate keyboardDismissed]; |
-} |
- |
-// Override UIKeyInput::UITextInputTraits property. |
-- (UIKeyboardType)keyboardType { |
- return UIKeyboardTypeAlphabet; |
-} |
- |
-// Override UIKeyInput::UITextInputTraits property. |
-// Remove text completion. |
-- (UITextAutocorrectionType)autocorrectionType { |
- return UITextAutocorrectionTypeNo; |
-} |
- |
-// Override UIView::UIResponder, when this interface is the first responder |
-// on-screen keyboard input will create events for Chromoting keyboard input. |
-- (BOOL)canBecomeFirstResponder { |
- return YES; |
-} |
- |
-// @protocol UIKeyInput, Send backspace. |
-- (void)deleteBackward { |
- [self transmitKeyCode:kKeyCodeMetaUS[kBackspaceIndex].code needShift:false]; |
-} |
- |
-// @protocol UIKeyInput, Assume this is a text input. |
-- (BOOL)hasText { |
- return YES; |
-} |
- |
-// @protocol UIKeyInput, Translate inserted text to key presses, one char at a |
-// time. |
-- (void)insertText:(NSString*)text { |
- [self transmitAppropriateKeyCode:text]; |
-} |
- |
-- (void)ctrlAltDel { |
- if (_delegate) { |
- [_delegate keyboardActionKeyCode:kKeyCodeMetaUS[kCtrlIndex].code |
- isKeyDown:YES]; |
- [_delegate keyboardActionKeyCode:kKeyCodeMetaUS[kAltIndex].code |
- isKeyDown:YES]; |
- [_delegate keyboardActionKeyCode:kKeyCodeMetaUS[kDelIndex].code |
- isKeyDown:YES]; |
- [_delegate keyboardActionKeyCode:kKeyCodeMetaUS[kDelIndex].code |
- isKeyDown:NO]; |
- [_delegate keyboardActionKeyCode:kKeyCodeMetaUS[kAltIndex].code |
- isKeyDown:NO]; |
- [_delegate keyboardActionKeyCode:kKeyCodeMetaUS[kCtrlIndex].code |
- isKeyDown:NO]; |
- } |
-} |
- |
-// When inserting multiple characters, process them one at a time. |text| is as |
-// it was output on the device. The shift key is not naturally presented in the |
-// input stream, and must be inserted by inspecting each char and considering |
-// that if the key was input on a traditional keyboard that the character would |
-// have required a shift. Assume caps lock does not exist. |
-- (void)transmitAppropriateKeyCode:(NSString*)text { |
- for (size_t i = 0; i < [text length]; ++i) { |
- NSInteger charToSend = [text characterAtIndex:i]; |
- |
- if (charToSend <= kKeyboardKeyMaxUS) { |
- [self transmitKeyCode:kKeyCodeMetaUS[charToSend].code |
- needShift:kKeyCodeMetaUS[charToSend].needsShift]; |
- } |
- } |
-} |
- |
-// |charToSend| is as it was output on the device. Some call this a |
-// 'key press'. For Chromoting this must be transferred as a key down (press |
-// down with a finger), followed by a key up (finger is removed from the |
-// keyboard). |
-// |
-// The delivery may be an upper case or special character. Chromoting is just |
-// interested in the button that was pushed, so to create an upper case |
-// character, first send a shift press, then the button, then release shift. |
-- (void)transmitKeyCode:(NSInteger)keyCode needShift:(bool)needShift { |
- if (keyCode > 0 && _delegate) { |
- if (needShift) { |
- [_delegate keyboardActionKeyCode:kKeyCodeMetaUS[kShiftIndex].code |
- isKeyDown:YES]; |
- } |
- [_delegate keyboardActionKeyCode:keyCode isKeyDown:YES]; |
- [_delegate keyboardActionKeyCode:keyCode isKeyDown:NO]; |
- if (needShift) { |
- [_delegate keyboardActionKeyCode:kKeyCodeMetaUS[kShiftIndex].code |
- isKeyDown:NO]; |
- } |
- } |
-} |
-@end |