X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=TargetKeyboard.m;h=0d0583ef9731099e9460b9226a1aed944bb1929e;hp=40661b8c2a4b41e42d8f534efaef1569c763af1a;hb=44fe6f649589488b367eee7ffff240cecf8669ad;hpb=61f8cdec21ab083b29c22aa11fda54d6005666ca diff --git a/TargetKeyboard.m b/TargetKeyboard.m index 40661b8..0d0583e 100644 --- a/TargetKeyboard.m +++ b/TargetKeyboard.m @@ -5,32 +5,43 @@ // Created by Sam McCall on 5/05/09. // +#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 objectAtIndex:1] integerValue]]; - [target setDescr: [comps objectAtIndex:2]]; ++ (Target *)targetDeserialize:(NSDictionary *)serialization + withConfigs:(NSArray *)configs { + TargetKeyboard *target = [[TargetKeyboard alloc] init]; + target.vk = [serialization[@"key"] intValue]; return target; } --(void) trigger: (JoystickController *)jc { - CGEventRef keyDown = CGEventCreateKeyboardEvent(NULL, vk, true); +-(void) trigger { + CGEventRef keyDown = CGEventCreateKeyboardEvent(NULL, vk, YES); CGEventPost(kCGHIDEventTap, keyDown); CFRelease(keyDown); } --(void) untrigger: (JoystickController *)jc { - CGEventRef keyUp = CGEventCreateKeyboardEvent(NULL, vk, false); +-(void) untrigger { + CGEventRef keyUp = CGEventCreateKeyboardEvent(NULL, vk, NO); CGEventPost(kCGHIDEventTap, keyUp); CFRelease(keyUp); } +- (NSString *)descr { + return [KeyInputTextView stringForKeyCode:self.vk]; +} + @end