cog/Window/RepeatTransformers.m

90 lines
1.7 KiB
Objective-C

//
// RepeatModeTransformer.m
// Cog
//
// Created by Vincent Spader on 2/18/08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import "RepeatTransformers.h"
#import "Logging.h"
@implementation RepeatModeTransformer {
RepeatMode repeatMode;
}
+ (Class)transformedValueClass {
return [NSNumber class];
}
+ (BOOL)allowsReverseTransformation {
return YES;
}
- (id)initWithMode:(RepeatMode)r {
self = [super init];
if(self) {
repeatMode = r;
}
return self;
}
// Convert from RepeatMode to BOOL
- (id)transformedValue:(id)value {
DLog(@"Transforming value: %@", value);
if(value == nil) return nil;
RepeatMode mode = (RepeatMode)[value integerValue];
return @(repeatMode == mode);
}
- (id)reverseTransformedValue:(id)value {
if(value == nil) return nil;
BOOL enabled = [value boolValue];
if(enabled) {
return @(repeatMode);
} else if(repeatMode == RepeatModeNoRepeat) {
return @(RepeatModeRepeatAll);
} else {
return @(RepeatModeNoRepeat);
}
}
@end
@implementation RepeatModeImageTransformer
+ (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;
RepeatMode mode = (RepeatMode)[value integerValue];
if(mode == RepeatModeNoRepeat) {
return [NSImage imageNamed:@"repeatModeOffTemplate"];
} else if(mode == RepeatModeRepeatOne) {
return [NSImage imageNamed:@"repeatModeOneTemplate"];
} else if(mode == RepeatModeRepeatAlbum) {
return [NSImage imageNamed:@"repeatModeAlbumTemplate"];
} else if(mode == RepeatModeRepeatAll) {
return [NSImage imageNamed:@"repeatModeAllTemplate"];
}
return nil;
}
@end