[Scummvm-cvs-logs] SF.net SVN: scummvm: [30133] scummvm/branches/branch-0-11-0/backends/ platform/iphone
vinterstum at users.sourceforge.net
vinterstum at users.sourceforge.net
Wed Jan 2 01:03:17 CET 2008
Revision: 30133
http://scummvm.svn.sourceforge.net/scummvm/?rev=30133&view=rev
Author: vinterstum
Date: 2008-01-01 16:03:17 -0800 (Tue, 01 Jan 2008)
Log Message:
-----------
Quick swipes across the screen now triggers arrow key events. Also, some mouse cursor fixes for landscape mode
Modified Paths:
--------------
scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_common.h
scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_video.h
scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_video.m
scummvm/branches/branch-0-11-0/backends/platform/iphone/osys_iphone.cpp
Modified: scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_common.h
===================================================================
--- scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_common.h 2008-01-01 23:30:29 UTC (rev 30132)
+++ scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_common.h 2008-01-02 00:03:17 UTC (rev 30133)
@@ -32,7 +32,8 @@
kInputOrientationChanged,
kInputKeyPressed,
kInputApplicationSuspended,
- kInputApplicationResumed
+ kInputApplicationResumed,
+ kInputSwipe
};
enum ScreenOrientation {
@@ -41,6 +42,14 @@
kScreenOrientationFlippedLandscape
};
+typedef enum
+{
+ kUIViewSwipeUp = 1,
+ kUIViewSwipeDown = 2,
+ kUIViewSwipeLeft = 4,
+ kUIViewSwipeRight = 8
+} UIViewSwipeDirection;
+
// We need this to be able to call functions from/in Objective-C.
#ifdef __cplusplus
extern "C" {
Modified: scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_video.h
===================================================================
--- scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_video.h 2008-01-01 23:30:29 UTC (rev 30132)
+++ scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_video.h 2008-01-02 00:03:17 UTC (rev 30133)
@@ -35,14 +35,6 @@
#import "iphone_keyboard.h"
-typedef enum
-{
- kUIViewSwipeUp = 1,
- kUIViewSwipeDown = 2,
- kUIViewSwipeLeft = 4,
- kUIViewSwipeRight = 8
-} UIViewSwipeDirection;
-
@interface iPhoneView : UIView
{
CoreSurfaceBufferRef _screenSurface;
Modified: scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_video.m
===================================================================
--- scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_video.m 2008-01-01 23:30:29 UTC (rev 30132)
+++ scummvm/branches/branch-0-11-0/backends/platform/iphone/iphone_video.m 2008-01-02 00:03:17 UTC (rev 30133)
@@ -388,11 +388,20 @@
}
- (BOOL)canHandleSwipes {
- return FALSE;
+ return TRUE;
}
- (int)swipe:(UIViewSwipeDirection)num withEvent:(GSEvent*)event {
//printf("swipe: %i\n", num);
+
+ [self addEvent:
+ [[NSDictionary alloc] initWithObjectsAndKeys:
+ [NSNumber numberWithInt:kInputSwipe], @"type",
+ [NSNumber numberWithFloat:(float)num], @"x",
+ [NSNumber numberWithFloat:0], @"y",
+ nil
+ ]
+ ];
}
- (void)view:(UIView *)view handleTapWithCount:(int)count event:(GSEvent *)event fingerCount:(int)fingerCount{
Modified: scummvm/branches/branch-0-11-0/backends/platform/iphone/osys_iphone.cpp
===================================================================
--- scummvm/branches/branch-0-11-0/backends/platform/iphone/osys_iphone.cpp 2008-01-01 23:30:29 UTC (rev 30132)
+++ scummvm/branches/branch-0-11-0/backends/platform/iphone/osys_iphone.cpp 2008-01-02 00:03:17 UTC (rev 30133)
@@ -403,7 +403,7 @@
break;
}
case kScreenOrientationLandscape: {
- byte *src = &_mouseBuf[_mouseHeight * _mouseWidth - 1];
+ byte *src = &_mouseBuf[(_mouseHeight - 1 - srcY) * _mouseWidth + srcX];
uint16 *dst = &_fullscreen[left * _screenHeight + (_screenHeight - bottom + srcY)];
for (int x = displayWidth; x > srcX; x--) {
for (int y = displayHeight; y > srcY; y--) {
@@ -413,7 +413,7 @@
src -= _mouseWidth;
}
dst -= -_screenHeight + displayHeight - srcY;
- src -= 1 - (displayHeight - srcY) * _mouseWidth;
+ src += 1 - (displayHeight - srcY) * -_mouseWidth;
}
break;
}
@@ -933,7 +933,75 @@
event.kbd.ascii = _queuedInputEvent.kbd.ascii = ascii;
_needEventRestPeriod = true;
break;
-
+
+ case kInputSwipe: {
+ Common::KeyCode keycode = Common::KEYCODE_INVALID;
+ switch (_screenOrientation) {
+ case kScreenOrientationPortrait:
+ switch ((UIViewSwipeDirection)xUnit) {
+ case kUIViewSwipeUp:
+ keycode = Common::KEYCODE_UP;
+ break;
+ case kUIViewSwipeDown:
+ keycode = Common::KEYCODE_DOWN;
+ break;
+ case kUIViewSwipeLeft:
+ keycode = Common::KEYCODE_LEFT;
+ break;
+ case kUIViewSwipeRight:
+ keycode = Common::KEYCODE_RIGHT;
+ break;
+ default:
+ return false;
+ }
+ break;
+ case kScreenOrientationLandscape:
+ switch ((UIViewSwipeDirection)xUnit) {
+ case kUIViewSwipeUp:
+ keycode = Common::KEYCODE_LEFT;
+ break;
+ case kUIViewSwipeDown:
+ keycode = Common::KEYCODE_RIGHT;
+ break;
+ case kUIViewSwipeLeft:
+ keycode = Common::KEYCODE_DOWN;
+ break;
+ case kUIViewSwipeRight:
+ keycode = Common::KEYCODE_UP;
+ break;
+ default:
+ return false;
+ }
+ break;
+ case kScreenOrientationFlippedLandscape:
+ switch ((UIViewSwipeDirection)xUnit) {
+ case kUIViewSwipeUp:
+ keycode = Common::KEYCODE_RIGHT;
+ break;
+ case kUIViewSwipeDown:
+ keycode = Common::KEYCODE_LEFT;
+ break;
+ case kUIViewSwipeLeft:
+ keycode = Common::KEYCODE_UP;
+ break;
+ case kUIViewSwipeRight:
+ keycode = Common::KEYCODE_DOWN;
+ break;
+ default:
+ return false;
+ }
+ break;
+ }
+
+ event.kbd.keycode = _queuedInputEvent.kbd.keycode = keycode;
+ event.kbd.ascii = _queuedInputEvent.kbd.ascii = 0;
+ event.type = Common::EVENT_KEYDOWN;
+ _queuedInputEvent.type = Common::EVENT_KEYUP;
+ event.kbd.flags = _queuedInputEvent.kbd.flags = 0;
+ _needEventRestPeriod = true;
+ break;
+ }
+
default:
break;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list