aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m
diff options
context:
space:
mode:
authoravenjamin <avenjamin@gmail.com>2009-12-20 01:19:52 +0000
committeravenjamin <avenjamin@gmail.com>2009-12-20 01:19:52 +0000
commitea1b48967ce34718d2645c4a30fab6b67e66f9fa (patch)
treea51ebe2f74a0c8e6c89f085df4240336c98aedf7 /Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m
parentc25a2f4561a4cde2d2d9a431cd941704d79bb428 (diff)
downloadsequelpro-ea1b48967ce34718d2645c4a30fab6b67e66f9fa.tar.gz
sequelpro-ea1b48967ce34718d2645c4a30fab6b67e66f9fa.tar.bz2
sequelpro-ea1b48967ce34718d2645c4a30fab6b67e66f9fa.zip
- Updating Growl to 1.2
- Updating BWToolkit to 1.2.2 - Changed BWToolkit from building it ourselves to just include the latest release of the framework - Changed build settings to build 32 and 64 universal binaries - Changed compiler to Clang
Diffstat (limited to 'Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m')
-rw-r--r--Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m650
1 files changed, 0 insertions, 650 deletions
diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m
deleted file mode 100644
index 5066f2c1..00000000
--- a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m
+++ /dev/null
@@ -1,650 +0,0 @@
-//
-// BWSelectableToolbar.m
-// BWToolkit
-//
-// Created by Brandon Walkin (www.brandonwalkin.com)
-// All code is provided under the New BSD license.
-//
-
-#import "BWSelectableToolbar.h"
-#import "BWSelectableToolbarHelper.h"
-#import "NSWindow+BWAdditions.h"
-
-NSString * const BWSelectableToolbarItemClickedNotification = @"BWSelectableToolbarItemClicked";
-
-static BWSelectableToolbar *documentToolbar;
-static NSToolbar *editableToolbar;
-
-@interface NSToolbar (BWSTPrivate)
-- (id)_defaultItemIdentifiers;
-- (id)_window;
-- (id)initWithCoder:(NSCoder *)decoder;
-- (void)encodeWithCoder:(NSCoder*)coder;
-@end
-
-@interface BWSelectableToolbar (BWSTPrivate)
-- (NSArray *)selectableItemIdentifiers;
-- (void)setItemSelectors;
-- (void)initialSetup;
-- (void)toggleActiveView:(id)sender;
-- (NSString *)identifierAtIndex:(int)index;
-- (void)switchToItemAtIndex:(int)anIndex animate:(BOOL)flag;
-- (int)toolbarIndexFromSelectableIndex:(int)selectableIndex;
-- (void)selectInitialItem;
-- (void)selectItemAtIndex:(int)anIndex;
-// IBDocument methods
-- (void)addObject:(id)object toParent:(id)parent;
-- (void)moveObject:(id)object toParent:(id)parent;
-- (void)removeObject:(id)object;
-- (id)parentOfObject:(id)anObj;
-- (NSArray *)objectsforDocumentObject:(id)anObj;
-- (NSArray *)childrenOfObject:(id)object;
-@end
-
-@interface BWSelectableToolbar ()
-@property (retain) BWSelectableToolbarHelper *helper;
-@property (readonly) NSMutableArray *labels;
-@property (copy) NSMutableDictionary *enabledByIdentifier;
-@property BOOL isPreferencesToolbar;
-@end
-
-@implementation BWSelectableToolbar
-
-@synthesize helper;
-@synthesize isPreferencesToolbar;
-@synthesize enabledByIdentifier;
-
-- (BWSelectableToolbar *)documentToolbar
-{
- return [[documentToolbar retain] autorelease];
-}
-
-- (void)setDocumentToolbar:(BWSelectableToolbar *)obj
-{
- [documentToolbar release];
- documentToolbar = [obj retain];
-}
-
-- (NSToolbar *)editableToolbar
-{
- if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] == NO)
- return self;
-
- return [[editableToolbar retain] autorelease];
-}
-
-- (void)setEditableToolbar:(NSToolbar *)obj
-{
- if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)])
- {
-// NSLog(@"--self: %@",self);
-// NSLog(@"--editable toolbar is: %@",editableToolbar);
-// NSLog(@"--setting editable toolbar to: %@",obj);
-
- [editableToolbar release];
- editableToolbar = [obj retain];
- }
-
-}
-
-- (id)initWithCoder:(NSCoder *)decoder
-{
- if ((self = [super initWithCoder:decoder]) != nil)
- {
- [self setDocumentToolbar:[decoder decodeObjectForKey:@"BWSTDocumentToolbar"]];
- [self setHelper:[decoder decodeObjectForKey:@"BWSTHelper"]];
- isPreferencesToolbar = [decoder decodeBoolForKey:@"BWSTIsPreferencesToolbar"];
- [self setEnabledByIdentifier:[decoder decodeObjectForKey:@"BWSTEnabledByIdentifier"]];
-
-// NSLog(@"init with coder. helper decoded: %@", helper);
- }
- return self;
-}
-
-- (void)encodeWithCoder:(NSCoder*)coder
-{
- [super encodeWithCoder:coder];
-
- [coder encodeObject:[self documentToolbar] forKey:@"BWSTDocumentToolbar"];
- [coder encodeObject:[self helper] forKey:@"BWSTHelper"];
- [coder encodeBool:isPreferencesToolbar forKey:@"BWSTIsPreferencesToolbar"];
- [coder encodeObject:[self enabledByIdentifier] forKey:@"BWSTEnabledByIdentifier"];
-
-// NSLog(@"encode with coder. helper encoded: %@",helper);
-}
-
-// When the user drags the toolbar on the canvas, we want the default toolbar items to be a specific set that's more appropriate for a selectable toolbar (in particular,
-// for a preferences window). Generally, you would supply these items in your -toolbarDefaultItemIdentifiers: delegate method. However, since Interface Builder stores
-// its default item identifiers in user defaults, the delegate method never gets called. To force the toolbar to have a different set of default items, we supply the
-// identifiers in this private method.
-- (id)_defaultItemIdentifiers
-{
- NSArray *defaultItemIdentfiers = [super _defaultItemIdentifiers];
- NSArray *defaultIBItemIdentifiers = [NSArray arrayWithObjects:@"NSToolbarSeparatorItem",@"NSToolbarSpaceItem",@"NSToolbarFlexibleSpaceItem",nil];
-
- NSArray *idealDefaultItemIdentifiers = [NSArray arrayWithObjects:@"0D5950D1-D4A8-44C6-9DBC-251CFEF852E2",@"BWToolbarShowColorsItem",
- @"BWToolbarShowFontsItem",@"7E6A9228-C9F3-4F21-8054-E4BF3F2F6BA8",nil];
-
- if ([defaultItemIdentfiers isEqualToArray:defaultIBItemIdentifiers])
- {
- return idealDefaultItemIdentifiers;
- }
-
- return defaultItemIdentfiers;
-}
-
-- (id)initWithIdentifier:(NSString *)identifier
-{
- if (self = [super initWithIdentifier:identifier])
- {
- itemIdentifiers = [[NSMutableArray alloc] init];
- itemsByIdentifier = [[NSMutableDictionary alloc] init];
-
- selectedIndex = 0;
- inIB = YES;
- [self setEditableToolbar:self];
-
- [self performSelector:@selector(initialSetup) withObject:nil afterDelay:0];
- }
- return self;
-}
-
-- (void)awakeFromNib
-{
- if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] == NO)
- {
- inIB = NO;
-
- if ([helper isPreferencesToolbar])
- {
- [[self _window] setShowsToolbarButton:NO];
- [self setAllowsUserCustomization:NO];
- }
-
- [self performSelector:@selector(selectInitialItem) withObject:nil afterDelay:0];
- }
-}
-
-- (void)selectFirstItem
-{
- int toolbarIndex = [self toolbarIndexFromSelectableIndex:0];
- [self switchToItemAtIndex:toolbarIndex animate:NO];
-}
-
-- (void)selectInitialItem
-{
- // When the window launches, we want to select the toolbar item that was previously selected.
- // So we have to find the toolbar index for our saved selected identifier.
- int toolbarIndex;
-
- if ([helper selectedIdentifier] != nil)
- toolbarIndex = [itemIdentifiers indexOfObject:[helper selectedIdentifier]];
- else
- toolbarIndex = [self toolbarIndexFromSelectableIndex:0];
-
- [self switchToItemAtIndex:toolbarIndex animate:NO];
-}
-
-- (void)initialSetup
-{
- // Get a reference to the helper object in the document if we don't have one already
- if (helper == nil && inIB)
- {
- NSArray *windowChildren = [self childrenOfObject:[self parentOfObject:documentToolbar]];
-
- for (id anObj in windowChildren)
- {
- if ([anObj isMemberOfClass:NSClassFromString(@"BWSelectableToolbarHelper")])
- {
- helper = anObj;
-// NSLog(@"Got a reference to helper: %@",helper);
- }
- }
- }
-
-// if (helper == nil && inIB)
-// NSLog(@"Helper is nil");
-
- // Get reference to the editable toolbar in IB
- if ([self isMemberOfClass:NSClassFromString(@"IBEditableBWSelectableToolbar")])
- {
- [self setEditableToolbar:self];
-
- if ([helper contentViewsByIdentifier].count == 0)
- [helper setInitialIBWindowSize:[[[self editableToolbar] _window] frame].size];
-
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(windowDidResize:)
- name:NSWindowDidResizeNotification
- object:[[self editableToolbar] _window]];
-
- }
-
- NSToolbarItem *currentItem;
- for (currentItem in [self items])
- {
- [itemIdentifiers addObject:[currentItem itemIdentifier]];
- [itemsByIdentifier setObject:currentItem forKey:[currentItem itemIdentifier]];
- }
-
- [self setDelegate:self];
- [self setItemSelectors];
-
- if ([helper selectedIdentifier] != nil && [helper contentViewsByIdentifier].count != 0)
- {
- // When the actual app is ran or an item is added or removed from the toolbar in IB, we need to select the previously stored identifier
- [self selectItemAtIndex:[itemIdentifiers indexOfObject:[helper selectedIdentifier]]];
- }
- else
- {
- // If we don't have a stored identifier, we select the first item in the toolbar
- [self selectItemAtIndex:[self toolbarIndexFromSelectableIndex:0]];
- }
-
- if ([self isMemberOfClass:NSClassFromString(@"IBEditableBWSelectableToolbar")])
- {
- // When the toolbar is initially dragged onto the canvas, record the content view and size of the window
- NSMutableDictionary *tempCVBI = [[[helper contentViewsByIdentifier] mutableCopy] autorelease];
- [tempCVBI setObject:[[[self editableToolbar] _window] contentView] forKey:[helper selectedIdentifier]];
- [helper setContentViewsByIdentifier:tempCVBI];
-
- NSMutableDictionary *tempWSBI = [[[helper windowSizesByIdentifier] mutableCopy] autorelease];
- [tempWSBI setObject:[NSValue valueWithSize:[[[self editableToolbar] _window] frame].size] forKey:[helper selectedIdentifier]];
- [helper setWindowSizesByIdentifier:tempWSBI];
- }
-}
-
-- (int)toolbarIndexFromSelectableIndex:(int)selectableIndex
-{
- NSMutableArray *selectableItems = [[[NSMutableArray alloc] init] autorelease];
-
- for (NSToolbarItem *currentItem in [[self editableToolbar] items])
- {
- if (![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSeparatorItem"] &&
- ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSpaceItem"] &&
- ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarFlexibleSpaceItem"])
- {
- [selectableItems addObject:currentItem];
- }
- }
-
- if (selectableItems.count == 0)
- return 0;
-
- NSString *item = [selectableItems objectAtIndex:selectableIndex];
-
- int toolbarIndex = [[[self editableToolbar] items] indexOfObject:item];
-
- return toolbarIndex;
-}
-
-// Tells the toolbar to draw the selection behind the toolbar item and records the selected item identifier
-- (void)selectItemAtIndex:(int)anIndex
-{
- NSArray *toolbarItems = self.items;
-
- if (toolbarItems.count > 1)
- {
- NSToolbarItem *item = [toolbarItems objectAtIndex:anIndex];
- NSString *identifier = [item itemIdentifier];
- [super setSelectedItemIdentifier:identifier];
-
- [helper setSelectedIdentifier:identifier];
- }
-}
-
-// This is called when a selectable item is clicked. This is not called in IB (-setSelectedIndex: is used instead).
-- (void)toggleActiveView:(id)sender
-{
- NSString *identifier = [sender itemIdentifier];
-
- selectedIndex = [itemIdentifiers indexOfObject:identifier];
-
- [[NSNotificationCenter defaultCenter] postNotificationName:BWSelectableToolbarItemClickedNotification object:self userInfo:[NSDictionary dictionaryWithObject:sender forKey:@"BWClickedItem"]];
-
- [self switchToItemAtIndex:selectedIndex animate:YES];
-}
-
-- (void)setItemSelectors
-{
- NSToolbarItem *currentItem;
-
- for (currentItem in [self items])
- {
- [currentItem setTarget:self];
- [currentItem setAction:@selector(toggleActiveView:)];
- }
-}
-
-- (NSString *)identifierAtIndex:(int)index
-{
- NSToolbarItem *item;
- NSString *newIdentifier = nil;
- if ([[self editableToolbar] items].count > 1)
- {
- item = [[[self editableToolbar] items] objectAtIndex:index];
- newIdentifier = [item itemIdentifier];
- }
- return newIdentifier;
-}
-
-- (void)dealloc
-{
- [[NSNotificationCenter defaultCenter] removeObserver:self
- name:NSWindowDidResizeNotification
- object:[[self editableToolbar] _window]];
- [itemIdentifiers release];
- [itemsByIdentifier release];
- [enabledByIdentifier release];
- [helper release];
- [super dealloc];
-}
-
-#pragma mark Public Methods
-
-- (void)setSelectedItemIdentifier:(NSString *)itemIdentifier
-{
- BOOL validIdentifier = NO;
-
- for (NSString *identifier in itemIdentifiers)
- {
- if ([identifier isEqualToString:itemIdentifier])
- validIdentifier = YES;
- }
-
- if (validIdentifier)
- [self switchToItemAtIndex:[itemIdentifiers indexOfObject:itemIdentifier] animate:YES];
-}
-
-- (void)setSelectedItemIdentifierWithoutAnimation:(NSString *)itemIdentifier
-{
- BOOL validIdentifier = NO;
-
- for (NSString *identifier in itemIdentifiers)
- {
- if ([identifier isEqualToString:itemIdentifier])
- validIdentifier = YES;
- }
-
- if (validIdentifier)
- [self switchToItemAtIndex:[itemIdentifiers indexOfObject:itemIdentifier] animate:NO];
-}
-
-- (void)setEnabled:(BOOL)flag forIdentifier:(NSString *)itemIdentifier
-{
- NSMutableDictionary *enabledDict = [[[self enabledByIdentifier] mutableCopy] autorelease];
-
- [enabledDict setObject:[NSNumber numberWithBool:flag] forKey:itemIdentifier];
-
- [self setEnabledByIdentifier:enabledDict];
-}
-
-#pragma mark Public Method Support Methods
-
-- (BOOL)validateToolbarItem:(NSToolbarItem *)theItem
-{
- if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] == NO)
- {
- NSString *identifier = [theItem itemIdentifier];
-
- if ([[self enabledByIdentifier] objectForKey:identifier] != nil)
- {
- if ([[[self enabledByIdentifier] objectForKey:identifier] boolValue] == NO)
- return NO;
- }
- }
-
- return YES;
-}
-
-- (NSMutableDictionary *)enabledByIdentifier
-{
- if (enabledByIdentifier == nil)
- enabledByIdentifier = [NSMutableDictionary new];
-
- return [[enabledByIdentifier retain] autorelease];
-}
-
-#pragma mark NSWindow notifications
-
-- (void)windowDidResize:(NSNotification *)notification
-{
- NSSize size = [[[self editableToolbar] _window] frame].size;
- NSValue *sizeValue = [NSValue valueWithSize:size];
- NSString *key = [helper selectedIdentifier];
-
- if ([helper selectedIdentifier])
- {
- NSMutableDictionary *tempWSBI = [[[helper windowSizesByIdentifier] mutableCopy] autorelease];
- [tempWSBI setObject:sizeValue forKey:key];
- [helper setWindowSizesByIdentifier:tempWSBI];
- }
-}
-
-#pragma mark NSToolbar delegate methods
-
-- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar
-{
- return itemIdentifiers;
-}
-
-- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar
-{
- return itemIdentifiers;
-}
-
-- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)identifier willBeInsertedIntoToolbar:(BOOL)willBeInserted
-{
- return [itemsByIdentifier objectForKey:identifier];
-}
-
-- (NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar
-{
- return [self selectableItemIdentifiers];
-}
-
-#pragma mark Support methods for delegate methods
-
-- (NSArray *)selectableItemIdentifiers
-{
- NSMutableArray *selectableItemIdentifiers = [[[NSMutableArray alloc] init] autorelease];
-
- if ([self editableToolbar] != nil)
- {
- for (NSToolbarItem *currentItem in [[self editableToolbar] items])
- {
- if (![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSeparatorItem"] &&
- ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSpaceItem"] &&
- ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarFlexibleSpaceItem"])
- {
- [selectableItemIdentifiers addObject:[currentItem itemIdentifier]];
- }
- }
- }
- else
- {
- for (NSToolbarItem *currentItem in [self items])
- {
- if (![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSeparatorItem"] &&
- ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSpaceItem"] &&
- ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarFlexibleSpaceItem"])
- {
- [selectableItemIdentifiers addObject:[currentItem itemIdentifier]];
- }
- }
- }
-
- return selectableItemIdentifiers;
-}
-
-#pragma mark IB Inspector support methods
-
-- (void)setIsPreferencesToolbar:(BOOL)flag
-{
- [helper setIsPreferencesToolbar:flag];
- isPreferencesToolbar = flag;
-
- if (flag)
- {
- // Record the current window title
- [helper setOldWindowTitle:[[self parentOfObject:self] title]];
-
- // Change the window title to the name of the active tab
- NSToolbarItem *selectedItem = nil;
- for (NSToolbarItem *item in [[self editableToolbar] items])
- {
- if ([[item itemIdentifier] isEqualToString:[[self editableToolbar] selectedItemIdentifier]])
- selectedItem = item;
- }
- [[self parentOfObject:self] setTitle:[selectedItem label]];
-
- // Remove the toolbar button
- [[self parentOfObject:self] setShowsToolbarButton:NO];
- }
- else
- {
- // Restore the old window title
- [[self parentOfObject:self] setTitle:[helper oldWindowTitle]];
-
- // Add the toolbar button
- [[self parentOfObject:self] setShowsToolbarButton:YES];
- }
-}
-
-- (NSMutableArray *)labels
-{
- NSMutableArray *labelArray = [NSMutableArray array];
-
- for (NSToolbarItem *currentItem in [[self editableToolbar] items])
- {
- if (![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSeparatorItem"] &&
- ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSpaceItem"] &&
- ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarFlexibleSpaceItem"])
- {
- [labelArray addObject:[currentItem label]];
- }
- }
-
- return labelArray;
-}
-
-- (int)selectedIndex
-{
- // The actual selected index can change on us (for instance, when the user re-orders toolbar items). So we need to figure it out dynamically, based on the selected identifier.
- if ([[helper selectedIdentifier] isEqualToString:@""])
- selectedIndex = 0;
- else
- selectedIndex = [[self selectableItemIdentifiers] indexOfObject:[helper selectedIdentifier]];
-
- return selectedIndex;
-}
-
-- (void)setSelectedIndex:(int)anIndex
-{
- selectedIndex = anIndex;
- [self switchToItemAtIndex:[self toolbarIndexFromSelectableIndex:anIndex] animate:YES];
-}
-
-#pragma mark Selection Switching
-
-- (void)switchToItemAtIndex:(int)anIndex animate:(BOOL)shouldAnimate
-{
- NSString *oldIdentifier = [helper selectedIdentifier];
-
- // Put the selection highlight on the toolbar item
- [(BWSelectableToolbar *)[self editableToolbar] selectItemAtIndex:anIndex];
-
- // Clear out the window's first responder
- [[[self editableToolbar] _window] makeFirstResponder:nil];
-
- // Make a new container view and add it to the IB document
- NSView *containerView = [[[NSView alloc] initWithFrame:[[[[self editableToolbar] _window] contentView] frame]] autorelease];
- if (inIB)
- [self addObject:containerView toParent:[self parentOfObject:self]];
-
- // Move the subviews from the content view to the container view
- NSArray *oldSubviews = [[[[[[self editableToolbar] _window] contentView] subviews] copy] autorelease];
- for (NSView *view in oldSubviews)
- {
- if (inIB)
- [self moveObject:view toParent:containerView];
- [containerView addSubview:view];
- }
-
- // Store the container view and window size in the dictionaries
- NSMutableDictionary *tempCVBI = [[[helper contentViewsByIdentifier] mutableCopy] autorelease];
- [tempCVBI setObject:containerView forKey:oldIdentifier];
- [helper setContentViewsByIdentifier:tempCVBI];
-
- NSSize oldWindowSize = [[[self editableToolbar] _window] frame].size;
- NSMutableDictionary *tempWSBI = [[[helper windowSizesByIdentifier] mutableCopy] autorelease];
- [tempWSBI setObject:[NSValue valueWithSize:oldWindowSize] forKey:oldIdentifier];
- [helper setWindowSizesByIdentifier:tempWSBI];
-
-
- NSString *newIdentifier = [self identifierAtIndex:anIndex];
-
- if ([[helper contentViewsByIdentifier] objectForKey:newIdentifier] == nil) // If we haven't stored the content view in our dictionary. i.e. this is a new tab
- {
- // Resize the window
- [[[self editableToolbar] _window] resizeToSize:[helper initialIBWindowSize] animate:shouldAnimate];
-
- // Record the new tab content view and window size
- if (inIB)
- {
- NSMutableDictionary *tempCVBI = [[[helper contentViewsByIdentifier] mutableCopy] autorelease];
- [tempCVBI setObject:[[[self editableToolbar] _window] contentView] forKey:newIdentifier];
- [helper setContentViewsByIdentifier:tempCVBI];
-
- NSMutableDictionary *tempWSBI = [[[helper windowSizesByIdentifier] mutableCopy] autorelease];
- [tempWSBI setObject:[NSValue valueWithSize:[[[self editableToolbar] _window] frame].size] forKey:newIdentifier];
- [helper setWindowSizesByIdentifier:tempWSBI];
- }
- }
- else // If we have the content view in our dictionary, set the window's content view to be the saved view
- {
- // Resize the window
- NSSize windowSize = [[[helper windowSizesByIdentifier] objectForKey:newIdentifier] sizeValue];
- [[[self editableToolbar] _window] resizeToSize:windowSize animate:shouldAnimate];
-
- NSArray *newSubviews = [[[[[helper contentViewsByIdentifier] objectForKey:newIdentifier] subviews] copy] autorelease];
-
- if (newSubviews.count > 0 && newSubviews != nil)
- {
- for (NSView *view in newSubviews)
- {
- if (inIB)
- {
- [self moveObject:view toParent:[[self parentOfObject:self] contentView]];
- }
-
- [[[[self editableToolbar] _window] contentView] addSubview:view];
- }
- }
-
- // Remove the container view for the selected tab from the document since those items are now in the window's content view.
- if (inIB)
- [self removeObject:[[helper contentViewsByIdentifier] objectForKey:newIdentifier]];
-
- // Tell the window to recalculate the key view loop so the views we added to the content view are keyboard accessible
- [[[self editableToolbar] _window] recalculateKeyViewLoop];
- }
-
- // After the new content view is swapped in, change the window title to be the selected item label
- if ([helper isPreferencesToolbar])
- {
- for (NSToolbarItem *item in [[self editableToolbar] items])
- {
- if ([[item itemIdentifier] isEqualToString:newIdentifier])
- {
- [[[self editableToolbar] _window] setTitle:[item label]];
-
- if (inIB)
- [[self parentOfObject:self] setTitle:[item label]];
- }
- }
- }
-
-}
-
-@end