From 637c0d598e752cec6070c76eac961b354fdd3518 Mon Sep 17 00:00:00 2001 From: vspader Date: Sat, 8 Mar 2008 23:58:52 +0000 Subject: [PATCH] Added transformers for menu item title. There must be a better way... --- Playlist/ToggleQueueTitleTransformer.h | 16 +++++++++ Playlist/ToggleQueueTitleTransformer.m | 50 ++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 Playlist/ToggleQueueTitleTransformer.h create mode 100644 Playlist/ToggleQueueTitleTransformer.m diff --git a/Playlist/ToggleQueueTitleTransformer.h b/Playlist/ToggleQueueTitleTransformer.h new file mode 100644 index 000000000..02908cea1 --- /dev/null +++ b/Playlist/ToggleQueueTitleTransformer.h @@ -0,0 +1,16 @@ +// +// ToggleQueueTitleTransformer.h +// Cog +// +// Created by Vincent Spader on 3/8/08. +// Copyright 2008 __MyCompanyName__. All rights reserved. +// + +#import + + +@interface ToggleQueueTitleTransformer : NSObject { + +} + +@end diff --git a/Playlist/ToggleQueueTitleTransformer.m b/Playlist/ToggleQueueTitleTransformer.m new file mode 100644 index 000000000..1e5596ea3 --- /dev/null +++ b/Playlist/ToggleQueueTitleTransformer.m @@ -0,0 +1,50 @@ +// +// ToggleQueueTitleTransformer.m +// Cog +// +// Created by Vincent Spader on 3/8/08. +// Copyright 2008 __MyCompanyName__. All rights reserved. +// + +#import "ToggleQueueTitleTransformer.h" + + +@implementation ToggleQueueTitleTransformer + + ++ (Class)transformedValueClass { return [NSArray class]; } ++ (BOOL)allowsReverseTransformation { return NO; } + +// Convert from NSNumber to NSString +- (id)transformedValue:(id)value { + if (value == nil) return nil; + if ([value count] == 0) return nil; + + BOOL trueFound = NO; + BOOL falseFound = NO; + + for (NSNumber *q in value) { + BOOL queued = [q boolValue]; + + if (queued) + { + trueFound = YES; + } + else if (!queued) + { + falseFound = YES; + } + } + + + if (trueFound && !falseFound) + return @"Remove from Queue"; + else if (falseFound && !trueFound) + return @"Add to Queue"; + else + return @"Toggle Queued"; + +} + + +@end