From cb41b574bf0685ad3537bab8768b24fc8415b51a Mon Sep 17 00:00:00 2001 From: Matej Jan Date: Thu, 30 Sep 2010 19:03:48 +0000 Subject: [PATCH] adding input git-svn-id: http://xni.googlecode.com/svn/XNI@32 ac433895-eea3-a490-d80a-17149a75e588 --- .../Input/Retronator.Xni.Framework.Input.h | 0 .../Xni/Framework/Input/Touch/Enums.h | 20 ++++++++ .../Xni/Framework/Input/Touch/GestureSample.h | 30 +++++++++++ .../Xni/Framework/Input/Touch/GestureSample.m | 21 ++++++++ ...onator.Xni.Framework.Input.Touch.classes.h | 5 ++ .../Retronator.Xni.Framework.Input.Touch.h | 7 +++ .../Framework/Input/Touch/TouchCollection.h | 22 ++++++++ .../Framework/Input/Touch/TouchCollection.m | 40 +++++++++++++++ .../Xni/Framework/Input/Touch/TouchLocation.h | 24 +++++++++ .../Xni/Framework/Input/Touch/TouchLocation.m | 18 +++++++ .../Xni/Framework/Input/Touch/TouchPanel.h | 34 +++++++++++++ .../Xni/Framework/Input/Touch/TouchPanel.m | 51 +++++++++++++++++++ 12 files changed, 272 insertions(+) create mode 100644 Classes/Retronator/Xni/Framework/Input/Retronator.Xni.Framework.Input.h create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/Enums.h create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/GestureSample.h create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/GestureSample.m create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/Retronator.Xni.Framework.Input.Touch.classes.h create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/Retronator.Xni.Framework.Input.Touch.h create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.h create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.m create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.h create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.h create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m diff --git a/Classes/Retronator/Xni/Framework/Input/Retronator.Xni.Framework.Input.h b/Classes/Retronator/Xni/Framework/Input/Retronator.Xni.Framework.Input.h new file mode 100644 index 0000000..e69de29 diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/Enums.h b/Classes/Retronator/Xni/Framework/Input/Touch/Enums.h new file mode 100644 index 0000000..1e3bf3a --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/Enums.h @@ -0,0 +1,20 @@ +typedef enum { + TouchLocationStateInvalid, + TouchLocationStateMoved, + TouchLocationStatePressed, + TouchLocationStateReleased +} TouchLocationState; + +typedef enum { + GestureTypeNone = 0, + GestureTypeTap = 1, + GestureTypeDoubleTap = 2, + GestureTypeHold = 4, + GestureTypeHorizontalDrag = 8, + GestureTypeVerticalDrag = 16, + GestureTypeFreeDrag = 32, + GestureTypePinch = 64, + GestureTypeFlick = 128, + GestureTypeDragComplete = 256, + GestureTypePinchComplete = 512 +} GestureType; \ No newline at end of file diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/GestureSample.h b/Classes/Retronator/Xni/Framework/Input/Touch/GestureSample.h new file mode 100644 index 0000000..4de8166 --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/GestureSample.h @@ -0,0 +1,30 @@ +// +// GestureSample.h +// XNI +// +// Created by Matej Jan on 29.9.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import + +#import "Retronator.Xni.Framework.classes.h" +#import "Retronator.Xni.Framework.Input.Touch.classes.h" + +@interface GestureSample : NSObject { + Vector2 *delta; + Vector2 *delta2; + GestureType gestureType; + Vector2 *position; + Vector2 *position2; + NSTimeInterval timestamp; +} + +@property (nonatomic, readonly) Vector2 *delta; +@property (nonatomic, readonly) Vector2 *delta2; +@property (nonatomic, readonly) GestureType gestureType; +@property (nonatomic, readonly) Vector2 *position; +@property (nonatomic, readonly) Vector2 *position2; +@property (nonatomic, readonly) NSTimeInterval timestamp; + +@end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/GestureSample.m b/Classes/Retronator/Xni/Framework/Input/Touch/GestureSample.m new file mode 100644 index 0000000..91a9b75 --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/GestureSample.m @@ -0,0 +1,21 @@ +// +// GestureSample.m +// XNI +// +// Created by Matej Jan on 29.9.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import "GestureSample.h" + + +@implementation GestureSample + +@synthesize delta; +@synthesize delta2; +@synthesize gestureType; +@synthesize position; +@synthesize position2; +@synthesize timestamp; + +@end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/Retronator.Xni.Framework.Input.Touch.classes.h b/Classes/Retronator/Xni/Framework/Input/Touch/Retronator.Xni.Framework.Input.Touch.classes.h new file mode 100644 index 0000000..aa7eef6 --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/Retronator.Xni.Framework.Input.Touch.classes.h @@ -0,0 +1,5 @@ +#import "Enums.h" + +@class TouchPanel, TouchCollection, TouchLocation; + +@class GestureSample; \ No newline at end of file diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/Retronator.Xni.Framework.Input.Touch.h b/Classes/Retronator/Xni/Framework/Input/Touch/Retronator.Xni.Framework.Input.Touch.h new file mode 100644 index 0000000..16cf2bf --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/Retronator.Xni.Framework.Input.Touch.h @@ -0,0 +1,7 @@ +#import "Enums.h" + +#import "TouchPanel.h" +#import "TouchCollection.h" +#import "TouchLocation.h" + +#import "GestureSample.h" \ No newline at end of file diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.h b/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.h new file mode 100644 index 0000000..228579e --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.h @@ -0,0 +1,22 @@ +// +// TouchCollection.h +// XNI +// +// Created by Matej Jan on 29.9.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import + +#import "Retronator.Xni.Framework.Input.Touch.classes.h" + +@interface TouchCollection : NSObject { + NSMutableArray *collection; +} + +- (int) count; +- (TouchLocation*)objectAtIndex:(NSUInteger)index; +- (void)addObject:(TouchLocation*)anObject; +- (void)insertObject:(TouchLocation*)anObject atIndex:(NSUInteger)index; + +@end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.m b/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.m new file mode 100644 index 0000000..231243d --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.m @@ -0,0 +1,40 @@ +// +// TouchCollection.m +// XNI +// +// Created by Matej Jan on 29.9.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import "TouchCollection.h" + +#import "Retronator.Xni.Framework.Input.Touch.h" + +@implementation TouchCollection + +- (id) init +{ + self = [super init]; + if (self != nil) { + collection = [[NSMutableArray alloc] init]; + } + return self; +} + +- (int) count { + return [collection count]; +} + +- (TouchLocation*)objectAtIndex:(NSUInteger)index { + return (TouchLocation*)[collection objectAtIndex:index]; +} + +- (void)addObject:(TouchLocation*)anObject { + [collection addObject:anObject]; +} + +- (void)insertObject:(TouchLocation*)anObject atIndex:(NSUInteger)index { + [collection insertObject:anObject atIndex:index]; +} + +@end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.h b/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.h new file mode 100644 index 0000000..2da033d --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.h @@ -0,0 +1,24 @@ +// +// TouchLocation.h +// XNI +// +// Created by Matej Jan on 29.9.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import + +#import "Retronator.Xni.Framework.classes.h" +#import "Retronator.Xni.Framework.Input.Touch.classes.h" + +@interface TouchLocation : NSObject { + int id; + Vector2 *position; + TouchLocationState state; +} + +@property (nonatomic, readonly) int id; +@property (nonatomic, readonly) Vector2 *position; +@property (nonatomic, readonly) TouchLocationState state; + +@end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m b/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m new file mode 100644 index 0000000..e2c7a03 --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m @@ -0,0 +1,18 @@ +// +// TouchLocation.m +// XNI +// +// Created by Matej Jan on 29.9.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import "TouchLocation.h" + + +@implementation TouchLocation + +@synthesize id; +@synthesize position; +@synthesize state; + +@end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.h b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.h new file mode 100644 index 0000000..1442620 --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.h @@ -0,0 +1,34 @@ +// +// TouchPanel.h +// XNI +// +// Created by Matej Jan on 29.9.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import + +#import "Retronator.Xni.Framework.classes.h" +#import "Retronator.Xni.Framework.Input.Touch.classes.h" + +@interface TouchPanel : NSObject { + +} + ++ (int) getDisplayWidth; ++ (void) setDisplayWidth:(int)value; + ++ (int) getDisplayHeight; ++ (void) setDisplayHeight:(int)value; + ++ (DisplayOrientation) getDisplayOrientation; ++ (void) setDisplayOrientation:(DisplayOrientation)value; + ++ (GestureType) getEnabledGestures; ++ (void) setEnabledGestures:(GestureType)value; + ++ (BOOL) isGestureAvailable; ++ (TouchCollection*) getState; ++ (GestureSample*) readGesture; + +@end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m new file mode 100644 index 0000000..54fa968 --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m @@ -0,0 +1,51 @@ +// +// TouchPanel.m +// XNI +// +// Created by Matej Jan on 29.9.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import "TouchPanel.h" + +#import "Retronator.Xni.Framework.Input.Touch.h" + +@implementation TouchPanel + ++ (int) getDisplayWidth { +} + ++ (void) setDisplayWidth:(int)value{ +} + ++ (int) getDisplayHeight{ +} + ++ (void) setDisplayHeight:(int)value{ +} + ++ (DisplayOrientation) getDisplayOrientation{ +} + ++ (void) setDisplayOrientation:(DisplayOrientation)value{ +} + ++ (GestureType) getEnabledGestures{ +} + ++ (void) setEnabledGestures:(GestureType)value{ +} + + ++ (BOOL) isGestureAvailable{ +} + ++ (TouchCollection*) getState{ + +} + ++ (GestureSample*) readGesture{ +} + + +@end