Forked Enjoy, mouse movement
[enjoyable.git] / Target.m
diff --git a/Target.m b/Target.m
new file mode 100644 (file)
index 0000000..35ebfc2
--- /dev/null
+++ b/Target.m
@@ -0,0 +1,55 @@
+//
+//  Target.m
+//  Enjoy
+//
+//  Created by Sam McCall on 5/05/09.
+//
+
+@implementation Target
+
++(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];
+    if([typeTag isEqualToString:@"mmove"])
+        return [TargetMouseMove unstringifyImpl:components];
+    if([typeTag isEqualToString:@"mbtn"])
+        return [TargetMouseBtn unstringifyImpl:components];
+               
+       NSParameterAssert(NO);
+       return NULL;
+}
+
+-(NSString*) stringify {
+       [self doesNotRecognizeSelector:_cmd];
+       return NULL;
+}
+
+-(void) trigger {
+       [self doesNotRecognizeSelector:_cmd];
+}
+
+-(void) untrigger {
+       // no-op by default
+}
+
+-(BOOL) running {
+       return running;
+}
+-(void) setRunning: (BOOL) newRunning {
+       if(newRunning == running)
+               return;
+       if(newRunning)
+               [self trigger];
+       else
+               [self untrigger];
+       running = newRunning;           
+}
+
+@synthesize inputValue;
+
+@end