diff options
author | Oystein Eftevaag | 2007-11-18 17:58:53 +0000 |
---|---|---|
committer | Oystein Eftevaag | 2007-11-18 17:58:53 +0000 |
commit | 6a4ce78789a4297a46e3528eaaf48601c1461549 (patch) | |
tree | fc45564e71f217f80e96eacce1840791087233cc /backends/platform/iphone/iphone_keyboard.m | |
parent | 6471eb84f25d156a98bcf0447862e4839f8cc24d (diff) | |
download | scummvm-rg350-6a4ce78789a4297a46e3528eaaf48601c1461549.tar.gz scummvm-rg350-6a4ce78789a4297a46e3528eaaf48601c1461549.tar.bz2 scummvm-rg350-6a4ce78789a4297a46e3528eaaf48601c1461549.zip |
Implemented soft keyboard support, and added a workarond for engines that can't handle mouse-down and mouse-up events coming in two subsequent calls to pollEvent()
svn-id: r29557
Diffstat (limited to 'backends/platform/iphone/iphone_keyboard.m')
-rw-r--r-- | backends/platform/iphone/iphone_keyboard.m | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/backends/platform/iphone/iphone_keyboard.m b/backends/platform/iphone/iphone_keyboard.m new file mode 100644 index 0000000000..923b7be46d --- /dev/null +++ b/backends/platform/iphone/iphone_keyboard.m @@ -0,0 +1,88 @@ +/* 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. + * + * $URL$ + * $Id$ + * + */ + +#import "iphone_keyboard.h" + +// Override settings of the default keyboard implementation +@implementation UIKeyboardImpl (DisableFeatures) + +- (BOOL)autoCapitalizationPreference { + return false; +} + +- (BOOL)autoCorrectionPreference { + return false; +} + +@end + +@implementation TextInputHandler + +- (id)initWithKeyboard:(SoftKeyboard*)keyboard; { + self = [super initWithFrame:CGRectMake(0.0f, 0.0f, 0.0f, 0.0f)]; + softKeyboard = keyboard; + return self; +} + +- (BOOL)webView:(id)fp8 shouldDeleteDOMRange:(id)fp12 { + [softKeyboard handleKeyPress:0x08]; +} + +- (BOOL)webView:(id)fp8 shouldInsertText:(id)character + replacingDOMRange:(id)fp16 + givenAction:(int)fp20 { + + if ([character length] != 1) { + [NSException raise:@"Unsupported" format:@"Unhandled multi-char insert!"]; + return false; + } + [softKeyboard handleKeyPress:[character characterAtIndex:0]]; +} + +@end + + +@implementation SoftKeyboard + +- (id)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + inputDelegate = nil; + inputView = [[TextInputHandler alloc] initWithKeyboard:self]; + return self; +} + +- (UITextView*)inputView { + return inputView; +} + +- (void)setInputDelegate:(id)delegate { + inputDelegate = delegate; +} + +- (void)handleKeyPress:(unichar)c { + [inputDelegate handleKeyPress:c]; +} + +@end
\ No newline at end of file |