X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=TargetKeyboard.m;h=0d0583ef9731099e9460b9226a1aed944bb1929e;hp=e7bd8e761694dc0459f17ea10c472d37464beb3a;hb=320e3065d251e11370e571df5705675937b76521;hpb=c6fb77859e508aaef686b7a5a6a12abe29178708 diff --git a/TargetKeyboard.m b/TargetKeyboard.m index e7bd8e7..0d0583e 100644 --- a/TargetKeyboard.m +++ b/TargetKeyboard.m @@ -7,32 +7,41 @@ #import "TargetKeyboard.h" +#import "KeyInputTextView.h" + @implementation TargetKeyboard -@synthesize vk, descr; +@synthesize vk; + ++ (NSString *)serializationCode { + return @"key"; +} --(NSString*) stringify { - return [[NSString alloc] initWithFormat: @"key~%d~%@", vk, descr]; +- (NSDictionary *)serialize { + return @{ @"type": @"key", @"key": @(self.vk) }; } -+(TargetKeyboard*) unstringifyImpl: (NSArray*) comps { - NSParameterAssert([comps count] == 3); - TargetKeyboard* target = [[TargetKeyboard alloc] init]; - [target setVk: [comps[1] integerValue]]; - [target setDescr: comps[2]]; ++ (Target *)targetDeserialize:(NSDictionary *)serialization + withConfigs:(NSArray *)configs { + TargetKeyboard *target = [[TargetKeyboard alloc] init]; + target.vk = [serialization[@"key"] intValue]; return target; } -(void) trigger { - CGEventRef keyDown = CGEventCreateKeyboardEvent(NULL, vk, true); + CGEventRef keyDown = CGEventCreateKeyboardEvent(NULL, vk, YES); CGEventPost(kCGHIDEventTap, keyDown); CFRelease(keyDown); } -(void) untrigger { - CGEventRef keyUp = CGEventCreateKeyboardEvent(NULL, vk, false); + CGEventRef keyUp = CGEventCreateKeyboardEvent(NULL, vk, NO); CGEventPost(kCGHIDEventTap, keyUp); CFRelease(keyUp); } +- (NSString *)descr { + return [KeyInputTextView stringForKeyCode:self.vk]; +} + @end