X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=TargetConfig.m;h=e9c374ed5ec6d5df44e7dafd9c43c37f88750352;hp=f62755d1da5912ea499183bb7df8f17e2653d7b9;hb=15a3aec049658f4a1c3c6e8c9f8a549fb8de0782;hpb=51ca12b552a9c17c4d4029b0340e193b273044a8 diff --git a/TargetConfig.m b/TargetConfig.m index f62755d..e9c374e 100644 --- a/TargetConfig.m +++ b/TargetConfig.m @@ -7,30 +7,37 @@ #import "TargetConfig.h" +#import "ApplicationController.h" +#import "Config.h" +#import "ConfigsController.h" @implementation TargetConfig -@synthesize config; ++ (NSString *)serializationCode { + return @"cfg"; +} --(NSString*) stringify { - return [[NSString alloc] initWithFormat: @"cfg~%@", [config name]]; +- (NSDictionary *)serialize { + return _config + ? @{ @"type": @"cfg", @"name": _config.name } + : @{}; } -+(TargetConfig*) unstringifyImpl: (NSArray*) comps withConfigList: (NSArray*) configs { - NSParameterAssert([comps count] == 2); - NSString* name = comps[1]; - TargetConfig* target = [[TargetConfig alloc] init]; - for(int i=0; i<[configs count]; i++) - if([[configs[i] name] isEqualToString:name]) { - [target setConfig: configs[i]]; - return target; - } - NSLog(@"Warning: couldn't find matching config to restore from: %@",name); - return NULL; ++ (TargetConfig *)targetDeserialize:(NSDictionary *)serialization + withConfigs:(NSArray *)configs { + NSString *name = serialization[@"name"]; + TargetConfig *target = [[TargetConfig alloc] init]; + for (Config *config in configs) { + if ([config.name isEqualToString:name]) { + target.config = config; + return target; + } + } + return nil; } --(void) trigger { - [[(ApplicationController *)[[NSApplication sharedApplication] delegate] configsController] activateConfig:config forApplication: NULL]; +- (void)trigger { + [[(ApplicationController *)[[NSApplication sharedApplication] delegate] configsController] activateConfig:_config]; } @end