diff options
Diffstat (limited to 'Frameworks/BWToolkitFramework.framework/BWToolbarItem.m')
-rw-r--r-- | Frameworks/BWToolkitFramework.framework/BWToolbarItem.m | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarItem.m b/Frameworks/BWToolkitFramework.framework/BWToolbarItem.m new file mode 100644 index 00000000..3c196d1d --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarItem.m @@ -0,0 +1,62 @@ +// +// BWToolbarItem.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWToolbarItem.h" +#import "NSString+BWAdditions.h" + +@interface BWToolbarItem () +@property (copy) NSString *identifierString; +@end + +@interface NSToolbarItem (BWTIPrivate) +- (void)_setItemIdentifier:(id)fp8; +- (id)initWithCoder:(NSCoder *)coder; +- (void)encodeWithCoder:(NSCoder*)coder; +@end + +@implementation BWToolbarItem + +@synthesize identifierString; + +- (id)initWithCoder:(NSCoder *)coder +{ + if ((self = [super initWithCoder:coder]) != nil) + { + [self setIdentifierString:[coder decodeObjectForKey:@"BWTIIdentifierString"]]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [super encodeWithCoder:coder]; + + [coder encodeObject:[self identifierString] forKey:@"BWTIIdentifierString"]; +} + +- (void)setIdentifierString:(NSString *)aString +{ + if (identifierString != aString) + { + [identifierString release]; + identifierString = [aString copy]; + } + + if (identifierString == nil || [identifierString isEqualToString:@""]) + [self _setItemIdentifier:[[NSString randomUUID] retain]]; + else + [self _setItemIdentifier:identifierString]; +} + +- (void)dealloc +{ + [identifierString release]; + [super dealloc]; +} + +@end |