// Created by Sam McCall on 5/05/09.
//
-@implementation Target
+@implementation Target {
+ BOOL running;
+}
+
+@synthesize magnitude;
+// TODO: Should just be NSCoding? Or like a dictionary?
+(Target*) unstringify: (NSString*) str withConfigList: (NSArray*) configs {
- NSArray* components = [str componentsSeparatedByString:@"~"];
- NSParameterAssert([components count]);
- NSString* typeTag = [components objectAtIndex:0];
- if([typeTag isEqualToString:@"key"])
- return [TargetKeyboard unstringifyImpl:components];
- if([typeTag isEqualToString:@"cfg"])
- return [TargetConfig unstringifyImpl:components withConfigList:configs];
+ NSArray* components = [str componentsSeparatedByString:@"~"];
+ NSParameterAssert([components count]);
+ NSString* typeTag = components[0];
+ if([typeTag isEqualToString:@"key"])
+ return [TargetKeyboard unstringifyImpl:components];
+ if([typeTag isEqualToString:@"cfg"])
+ return [TargetConfig unstringifyImpl:components withConfigList:configs];
if([typeTag isEqualToString:@"mmove"])
return [TargetMouseMove unstringifyImpl:components];
if([typeTag isEqualToString:@"mbtn"])
return [TargetMouseBtn unstringifyImpl:components];
-
- NSParameterAssert(NO);
- return NULL;
+ if([typeTag isEqualToString:@"mscroll"])
+ return [TargetMouseScroll unstringifyImpl:components];
+ if([typeTag isEqualToString:@"mtoggle"])
+ return [TargetToggleMouseScope unstringifyImpl:components];
+
+ NSParameterAssert(NO);
+ return NULL;
+}
+
+- (NSString *)stringify {
+ [self doesNotRecognizeSelector:_cmd];
+ return NULL;
}
--(NSString*) stringify {
- [self doesNotRecognizeSelector:_cmd];
- return NULL;
+- (void)trigger {
}
--(void) trigger {
- [self doesNotRecognizeSelector:_cmd];
+- (void)untrigger {
}
--(void) untrigger {
- // no-op by default
+- (BOOL)update:(JoystickController *)jc {
+ return NO;
}
--(BOOL) running {
- return running;
+- (BOOL)isContinuous {
+ return NO;
}
--(void) setRunning: (BOOL) newRunning {
- if(newRunning == running)
- return;
- if(newRunning)
- [self trigger];
- else
- [self untrigger];
- running = newRunning;
+
+- (BOOL)running {
+ return running;
+}
+
+- (void)setRunning:(BOOL)newRunning {
+ if (running != newRunning) {
+ running = newRunning;
+ if (running)
+ [self trigger];
+ else
+ [self untrigger];
+ }
}
-@synthesize inputValue;
@end