2015-12-04 18:20:09 +01:00
|
|
|
/* ScummVM - Graphic Adventure Engine
|
|
|
|
*
|
|
|
|
* ScummVM is the legal property of its developers, whose names
|
|
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
|
|
* file distributed with this source distribution.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2016-01-07 12:40:55 +01:00
|
|
|
#include "backends/platform/ios7/ios7_keyboard.h"
|
2015-12-04 18:20:09 +01:00
|
|
|
|
|
|
|
@interface UITextInputTraits
|
|
|
|
- (void)setAutocorrectionType:(int)type;
|
|
|
|
- (void)setAutocapitalizationType:(int)type;
|
|
|
|
- (void)setEnablesReturnKeyAutomatically:(BOOL)val;
|
|
|
|
@end
|
|
|
|
|
|
|
|
@interface TextInputHandler : UITextView {
|
|
|
|
SoftKeyboard *softKeyboard;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (id)initWithKeyboard:(SoftKeyboard *)keyboard;
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
|
|
|
|
@implementation TextInputHandler
|
|
|
|
|
|
|
|
- (id)initWithKeyboard:(SoftKeyboard *)keyboard {
|
|
|
|
self = [super initWithFrame:CGRectMake(0.0f, 0.0f, 0.0f, 0.0f)];
|
|
|
|
softKeyboard = keyboard;
|
|
|
|
|
|
|
|
[self setAutocorrectionType:UITextAutocorrectionTypeNo];
|
|
|
|
[self setAutocapitalizationType:UITextAutocapitalizationTypeNone];
|
|
|
|
[self setEnablesReturnKeyAutomatically:NO];
|
|
|
|
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
|
|
|
|
@implementation SoftKeyboard
|
|
|
|
|
|
|
|
- (id)initWithFrame:(CGRect)frame {
|
|
|
|
self = [super initWithFrame:frame];
|
|
|
|
inputDelegate = nil;
|
|
|
|
inputView = [[TextInputHandler alloc] initWithKeyboard:self];
|
|
|
|
inputView.delegate = self;
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
|
|
|
|
unichar c;
|
|
|
|
if (text.length) {
|
|
|
|
c = [text characterAtIndex:0];
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
c = '\b';
|
|
|
|
}
|
|
|
|
[inputDelegate handleKeyPress:c];
|
|
|
|
return YES;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (UITextView *)inputView {
|
|
|
|
return inputView;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)setInputDelegate:(id)delegate {
|
|
|
|
inputDelegate = delegate;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)handleKeyPress:(unichar)c {
|
|
|
|
[inputDelegate handleKeyPress:c];
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)showKeyboard {
|
|
|
|
[inputView becomeFirstResponder];
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)hideKeyboard {
|
|
|
|
[inputView endEditing:YES];
|
|
|
|
}
|
|
|
|
|
|
|
|
@end
|