// // ShuffleTransformers.m // Cog // // Created by Vincent Spader on 2/27/09. // Copyright 2009 __MyCompanyName__. All rights reserved. // #import "ShuffleTransformers.h" #import "Logging.h" @implementation ShuffleImageTransformer + (Class)transformedValueClass { return [NSImage class]; } + (BOOL)allowsReverseTransformation { return NO; } // Convert from string to RepeatMode - (id)transformedValue:(id)value { DLog(@"Transforming value: %@", value); if(value == nil) return nil; ShuffleMode mode = (ShuffleMode)[value integerValue]; if(mode == ShuffleOff) { return [NSImage imageNamed:@"shuffleOffTemplate"]; } else if(mode == ShuffleAlbums) { return [NSImage imageNamed:@"shuffleAlbumTemplate"]; } else if(mode == ShuffleAll) { return [NSImage imageNamed:@"shuffleOnTemplate"]; } return nil; } @end @implementation ShuffleModeTransformer + (Class)transformedValueClass { return [NSNumber class]; } + (BOOL)allowsReverseTransformation { return YES; } - (id)initWithMode:(ShuffleMode)s { self = [super init]; if(self) { shuffleMode = s; } return self; } // Convert from RepeatMode to BOOL - (id)transformedValue:(id)value { DLog(@"Transforming value: %@", value); if(value == nil) return nil; ShuffleMode mode = (ShuffleMode)[value integerValue]; if(shuffleMode == mode) { return @(YES); } return @(NO); } - (id)reverseTransformedValue:(id)value { if(value == nil) return nil; BOOL enabled = [value boolValue]; if(enabled) { return @(shuffleMode); } else if(shuffleMode == ShuffleOff) { return @(ShuffleAll); } else { return @(ShuffleOff); } } @end