Improve size in a number of pathological cases.
[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 #import "KeyInputTextView.h"
11
12 @implementation TargetKeyboard
13
14 + (NSString *)serializationCode {
15 return @"key";
16 }
17
18 - (NSDictionary *)serialize {
19 return @{ @"type": @"key", @"key": @(_vk) };
20 }
21
22 + (Target *)targetDeserialize:(NSDictionary *)serialization
23 withConfigs:(NSArray *)configs {
24 TargetKeyboard *target = [[TargetKeyboard alloc] init];
25 target.vk = [serialization[@"key"] intValue];
26 return target;
27 }
28
29 - (void)trigger {
30 CGEventRef keyDown = CGEventCreateKeyboardEvent(NULL, _vk, YES);
31 CGEventPost(kCGHIDEventTap, keyDown);
32 CFRelease(keyDown);
33 }
34
35 - (void)untrigger {
36 CGEventRef keyUp = CGEventCreateKeyboardEvent(NULL, _vk, NO);
37 CGEventPost(kCGHIDEventTap, keyUp);
38 CFRelease(keyUp);
39 }
40
41 @end