Forked Enjoy, mouse movement
[enjoyable.git] / Target.m
1 //
2 // Target.m
3 // Enjoy
4 //
5 // Created by Sam McCall on 5/05/09.
6 //
7
8 @implementation Target
9
10 +(Target*) unstringify: (NSString*) str withConfigList: (NSArray*) configs {
11 NSArray* components = [str componentsSeparatedByString:@"~"];
12 NSParameterAssert([components count]);
13 NSString* typeTag = [components objectAtIndex:0];
14 if([typeTag isEqualToString:@"key"])
15 return [TargetKeyboard unstringifyImpl:components];
16 if([typeTag isEqualToString:@"cfg"])
17 return [TargetConfig unstringifyImpl:components withConfigList:configs];
18 if([typeTag isEqualToString:@"mmove"])
19 return [TargetMouseMove unstringifyImpl:components];
20 if([typeTag isEqualToString:@"mbtn"])
21 return [TargetMouseBtn unstringifyImpl:components];
22
23 NSParameterAssert(NO);
24 return NULL;
25 }
26
27 -(NSString*) stringify {
28 [self doesNotRecognizeSelector:_cmd];
29 return NULL;
30 }
31
32 -(void) trigger {
33 [self doesNotRecognizeSelector:_cmd];
34 }
35
36 -(void) untrigger {
37 // no-op by default
38 }
39
40 -(BOOL) running {
41 return running;
42 }
43 -(void) setRunning: (BOOL) newRunning {
44 if(newRunning == running)
45 return;
46 if(newRunning)
47 [self trigger];
48 else
49 [self untrigger];
50 running = newRunning;
51 }
52
53 @synthesize inputValue;
54
55 @end