diff -r bcbd910c797f -r 01682ec58eb0 cocoaTouch/SDLOverrides/SDL_uikitview.m --- a/cocoaTouch/SDLOverrides/SDL_uikitview.m Fri Mar 19 19:49:33 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,456 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2009 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga, mods for Hedgewars by Vittorio Giovara - slouken@libsdl.org, vittorio.giovara@gmail.com - */ - -#import "PascalImports.h" -#import "CGPointUtils.h" -#import "SDL_uikitview.h" -#import "SDL_uikitappdelegate.h" - -#if SDL_IPHONE_KEYBOARD -#import "SDL_keyboard_c.h" -#import "keyinfotable.h" -#import "SDL_uikitwindow.h" -#endif - -@implementation SDL_uikitview - -// they have to be global variables to allow showControls() to use them -//UIButton *attackButton, *menuButton; -UIView *menuView; --(void) dealloc { -#if SDL_IPHONE_KEYBOARD - SDL_DelKeyboard(0); - [textField release]; -#endif - [super dealloc]; -} - --(id) initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - -#if SDL_IPHONE_KEYBOARD - [self initializeKeyboard]; -#endif - - int i; - for (i=0; i= kMinimumGestureLength && deltaX <= kMaximumVariance) { - NSLog(@"Horizontal swipe detected, begX:%f curX:%f", gestureStartPoint.x, currentPosition.x); - if (horizDiff > 0) HW_walkLeft(); - else HW_walkRight(); - } else if (deltaX >= kMinimumGestureLength && deltaY <= kMaximumVariance){ - NSLog(@"Vertical swipe detected, begY:%f curY:%f", gestureStartPoint.y, currentPosition.y); - if (vertDiff < 0) HW_aimUp(); - else HW_aimDown(); - } - */ - break; - case 2: - twoTouches = [touches allObjects]; - UITouch *first = [twoTouches objectAtIndex:0]; - UITouch *second = [twoTouches objectAtIndex:1]; - CGFloat currentDistanceOfPinching = distanceBetweenPoints([first locationInView:self], [second locationInView:self]); - - if (0 == initialDistanceForPinching) - initialDistanceForPinching = currentDistanceOfPinching; - - if (currentDistanceOfPinching < initialDistanceForPinching + kMinimumPinchDelta) - HW_zoomOut(); - else if (currentDistanceOfPinching > initialDistanceForPinching + kMinimumPinchDelta) - HW_zoomIn(); - - currentDistanceOfPinching = initialDistanceForPinching; - break; - default: - break; - } -} - -/* -#pragma mark - -#pragma mark Keyboard related functionality -#if SDL_IPHONE_KEYBOARD -// Is the iPhone virtual keyboard visible onscreen? -- (BOOL)keyboardVisible { - return keyboardVisible; -} - -// Set ourselves up as a UITextFieldDelegate -- (void)initializeKeyboard { - - textField = [[[UITextField alloc] initWithFrame: CGRectZero] autorelease]; - textField.delegate = self; - // placeholder so there is something to delete! - textField.text = @" "; - - // set UITextInputTrait properties, mostly to defaults - textField.autocapitalizationType = UITextAutocapitalizationTypeNone; - textField.autocorrectionType = UITextAutocorrectionTypeNo; - textField.enablesReturnKeyAutomatically = NO; - textField.keyboardAppearance = UIKeyboardAppearanceDefault; - textField.keyboardType = UIKeyboardTypeDefault; - textField.returnKeyType = UIReturnKeyDefault; - textField.secureTextEntry = NO; - - textField.hidden = YES; - keyboardVisible = NO; - // add the UITextField (hidden) to our view - [self addSubview: textField]; - - // create our SDL_Keyboard - SDL_Keyboard keyboard; - SDL_zero(keyboard); - SDL_AddKeyboard(&keyboard, 0); - SDLKey keymap[SDL_NUM_SCANCODES]; - SDL_GetDefaultKeymap(keymap); - SDL_SetKeymap(0, 0, keymap, SDL_NUM_SCANCODES); - -} - -// reveal onscreen virtual keyboard -- (void)showKeyboard { - keyboardVisible = YES; - [textField becomeFirstResponder]; -} - -// hide onscreen virtual keyboard -- (void)hideKeyboard { - keyboardVisible = NO; - [textField resignFirstResponder]; -} - -// UITextFieldDelegate method. Invoked when user types something. -- (BOOL)textField:(UITextField *)_textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { - - if ([string length] == 0) { - // it wants to replace text with nothing, ie a delete - SDL_SendKeyboardKey( 0, SDL_PRESSED, SDL_SCANCODE_DELETE); - SDL_SendKeyboardKey( 0, SDL_RELEASED, SDL_SCANCODE_DELETE); - } - else { - // go through all the characters in the string we've been sent and convert them to key presses - int i; - for (i=0; i<[string length]; i++) { - - unichar c = [string characterAtIndex: i]; - - Uint16 mod = 0; - SDL_scancode code; - - if (c < 127) { - // figure out the SDL_scancode and SDL_keymod for this unichar - code = unicharToUIKeyInfoTable[c].code; - mod = unicharToUIKeyInfoTable[c].mod; - } - else { - // we only deal with ASCII right now - code = SDL_SCANCODE_UNKNOWN; - mod = 0; - } - - if (mod & KMOD_SHIFT) { - // If character uses shift, press shift down - SDL_SendKeyboardKey( 0, SDL_PRESSED, SDL_SCANCODE_LSHIFT); - } - // send a keydown and keyup even for the character - SDL_SendKeyboardKey( 0, SDL_PRESSED, code); - SDL_SendKeyboardKey( 0, SDL_RELEASED, code); - if (mod & KMOD_SHIFT) { - // If character uses shift, press shift back up - SDL_SendKeyboardKey( 0, SDL_RELEASED, SDL_SCANCODE_LSHIFT); - } - } - } - return NO; // don't allow the edit! (keep placeholder text there) -} - -// Terminates the editing session -- (BOOL)textFieldShouldReturn:(UITextField*)_textField { - [self hideKeyboard]; - return YES; -} - -#endif -*/ -@end -/* -// iPhone keyboard addition functions -#if SDL_IPHONE_KEYBOARD - -int SDL_iPhoneKeyboardShow(SDL_Window *window) { - SDL_WindowData *data; - SDL_uikitview *view; - - if (NULL == window) { - SDL_SetError("Window does not exist"); - return -1; - } - - data = (SDL_WindowData *)window->driverdata; - view = data->view; - - if (nil == view) { - SDL_SetError("Window has no view"); - return -1; - } - else { - [view showKeyboard]; - return 0; - } -} - -int SDL_iPhoneKeyboardHide(SDL_Window *window) { - SDL_WindowData *data; - SDL_uikitview *view; - - if (NULL == window) { - SDL_SetError("Window does not exist"); - return -1; - } - - data = (SDL_WindowData *)window->driverdata; - view = data->view; - - if (NULL == view) { - SDL_SetError("Window has no view"); - return -1; - } - else { - [view hideKeyboard]; - return 0; - } -} - -SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window *window) { - SDL_WindowData *data; - SDL_uikitview *view; - - if (NULL == window) { - SDL_SetError("Window does not exist"); - return -1; - } - - data = (SDL_WindowData *)window->driverdata; - view = data->view; - - if (NULL == view) { - SDL_SetError("Window has no view"); - return 0; - } - else { - return view.keyboardVisible; - } -} - -int SDL_iPhoneKeyboardToggle(SDL_Window *window) { - SDL_WindowData *data; - SDL_uikitview *view; - - if (NULL == window) { - SDL_SetError("Window does not exist"); - return -1; - } - - data = (SDL_WindowData *)window->driverdata; - view = data->view; - - if (NULL == view) { - SDL_SetError("Window has no view"); - return -1; - } - else { - if (SDL_iPhoneKeyboardIsShown(window)) { - SDL_iPhoneKeyboardHide(window); - } - else { - SDL_iPhoneKeyboardShow(window); - } - return 0; - } -} - -#else - -// stubs, used if compiled without keyboard support - -int SDL_iPhoneKeyboardShow(SDL_Window *window) { - SDL_SetError("Not compiled with keyboard support"); - return -1; -} - -int SDL_iPhoneKeyboardHide(SDL_Window *window) { - SDL_SetError("Not compiled with keyboard support"); - return -1; -} - -SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window *window) { - return 0; -} - -int SDL_iPhoneKeyboardToggle(SDL_Window *window) { - SDL_SetError("Not compiled with keyboard support"); - return -1; -} - -#endif /* SDL_IPHONE_KEYBOARD */