Remove project headers from the prefix header; having everything in the prefix header...
[enjoyable.git] / TargetKeyboard.m
1 //
2 // TargetKeyboard.m
3 // Enjoy
4 //
5 // Created by Sam McCall on 5/05/09.
6 //
7
8 #import "TargetKeyboard.h"
9
10 @implementation TargetKeyboard
11
12 @synthesize vk, descr;
13
14 -(NSString*) stringify {
15 return [[NSString alloc] initWithFormat: @"key~%d~%@", vk, descr];
16 }
17
18 +(TargetKeyboard*) unstringifyImpl: (NSArray*) comps {
19 NSParameterAssert([comps count] == 3);
20 TargetKeyboard* target = [[TargetKeyboard alloc] init];
21 [target setVk: [comps[1] integerValue]];
22 [target setDescr: comps[2]];
23 return target;
24 }
25
26 -(void) trigger {
27 CGEventRef keyDown = CGEventCreateKeyboardEvent(NULL, vk, true);
28 CGEventPost(kCGHIDEventTap, keyDown);
29 CFRelease(keyDown);
30 }
31
32 -(void) untrigger {
33 CGEventRef keyUp = CGEventCreateKeyboardEvent(NULL, vk, false);
34 CGEventPost(kCGHIDEventTap, keyUp);
35 CFRelease(keyUp);
36 }
37
38 @end