From d4b01357f21fef05821a023738c0aa51e10e3cdd Mon Sep 17 00:00:00 2001 From: Robert Grant Date: Wed, 25 May 2011 12:20:25 -0400 Subject: [PATCH] Allow default NSToolbarItems to be subclassed --- AppKit/NSToolbar.subproj/NSToolbar.h | 6 ++++++ AppKit/NSToolbar.subproj/NSToolbar.m | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/AppKit/NSToolbar.subproj/NSToolbar.h b/AppKit/NSToolbar.subproj/NSToolbar.h index 2a78de45..e2e6f1c2 100755 --- a/AppKit/NSToolbar.subproj/NSToolbar.h +++ b/AppKit/NSToolbar.subproj/NSToolbar.h @@ -84,6 +84,12 @@ APPKIT_EXPORT NSString * const NSToolbarDidRemoveItemNotification; @end +@interface NSToolbar (NSToolbarCustomization) + +- (Class)toolbarItemClass; + +@end + @interface NSObject (NSToolbar_delegate) -(NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)identifier willBeInsertedIntoToolbar:(BOOL)flag; diff --git a/AppKit/NSToolbar.subproj/NSToolbar.m b/AppKit/NSToolbar.subproj/NSToolbar.m index fbc8ffa2..d51999a4 100755 --- a/AppKit/NSToolbar.subproj/NSToolbar.m +++ b/AppKit/NSToolbar.subproj/NSToolbar.m @@ -232,7 +232,7 @@ static BOOL isStandardItemIdentifier(NSString *identifier){ BOOL standardItem=isStandardItemIdentifier(identifier); if(_delegate==nil || standardItem) - item=[[[NSToolbarItem alloc] initWithItemIdentifier:identifier] autorelease]; + item=[[[[self toolbarItemClass] alloc] initWithItemIdentifier:identifier] autorelease]; else { item=[_delegate toolbar:self itemForItemIdentifier:identifier willBeInsertedIntoToolbar:intoToolbar]; } @@ -549,3 +549,12 @@ static BOOL isStandardItemIdentifier(NSString *identifier){ @end +@implementation NSToolbar (NSToolbarCustomization) + +- (Class)toolbarItemClass +{ + return [NSToolbarItem class]; +} + +@end +