Forked Enjoy, mouse movement
[enjoyable.git] / TargetKeyboard.m
diff --git a/TargetKeyboard.m b/TargetKeyboard.m
new file mode 100644 (file)
index 0000000..7bf9f83
--- /dev/null
@@ -0,0 +1,36 @@
+//
+//  TargetKeyboard.m
+//  Enjoy
+//
+//  Created by Sam McCall on 5/05/09.
+//
+
+@implementation TargetKeyboard
+
+@synthesize vk, descr;
+
+-(NSString*) stringify {
+       return [[NSString alloc] initWithFormat: @"key~%d~%@", vk, descr];
+}
+
++(TargetKeyboard*) unstringifyImpl: (NSArray*) comps {
+       NSParameterAssert([comps count] == 3);
+       TargetKeyboard* target = [[TargetKeyboard alloc] init];
+       [target setVk: [[comps objectAtIndex:1] integerValue]];
+       [target setDescr: [comps objectAtIndex:2]];
+       return target;
+}
+
+-(void) trigger {
+       CGEventRef keyDown = CGEventCreateKeyboardEvent(NULL, vk, true);
+       CGEventPost(kCGHIDEventTap, keyDown);
+       CFRelease(keyDown);
+}
+
+-(void) untrigger {
+       CGEventRef keyUp = CGEventCreateKeyboardEvent(NULL, vk, false);
+       CGEventPost(kCGHIDEventTap, keyUp);
+       CFRelease(keyUp);
+}
+
+@end