X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Classes%2FNJOutputMapping.m;fp=Classes%2FNJOutputMapping.m;h=fa8fda1fec37a3513665aa9e5d0ac6c5b3abed21;hp=0000000000000000000000000000000000000000;hb=0064c1fbff36795885a9724081af2a17d83c20a3;hpb=56d825ba259066d847a9fc3f9c8c0c0a362a1507 diff --git a/Classes/NJOutputMapping.m b/Classes/NJOutputMapping.m new file mode 100644 index 0000000..fa8fda1 --- /dev/null +++ b/Classes/NJOutputMapping.m @@ -0,0 +1,44 @@ +// +// NJOutputMapping.m +// Enjoy +// +// Created by Sam McCall on 6/05/09. +// + +#import "NJOutputMapping.h" + +#import "EnjoyableApplicationDelegate.h" +#import "NJMapping.h" +#import "NJMappingsController.h" + +@implementation NJOutputMapping + ++ (NSString *)serializationCode { + return @"mapping"; +} + +- (NSDictionary *)serialize { + return _mapping + ? @{ @"type": self.class.serializationCode, @"name": _mapping.name } + : nil; +} + ++ (NJOutputMapping *)outputDeserialize:(NSDictionary *)serialization + withMappings:(NSArray *)mappings { + NSString *name = serialization[@"name"]; + NJOutputMapping *output = [[NJOutputMapping alloc] init]; + for (NJMapping *mapping in mappings) { + if ([mapping.name isEqualToString:name]) { + output.mapping = mapping; + return output; + } + } + return nil; +} + +- (void)trigger { + EnjoyableApplicationDelegate *ctrl = (EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate; + [ctrl.mappingsController activateMapping:_mapping]; +} + +@end