adium 4259:d8b908f1d512: Clean up message view controller's spli...

commits at adium.im commits at adium.im
Fri Oct 28 06:00:08 UTC 2011


details:	http://hg.adium.im/adium/rev/d8b908f1d512
revision:	4259:d8b908f1d512
branch:		(none)
author:		Stephen Holt <sholt at adium.im>
date:		Thu Oct 27 22:59:41 2011 -0700

Clean up message view controller's splitview resizing code.
Subject: adium 4260:fcc61e641b94: Clean up Message Window controller.  Make it easier to work with.

details:	http://hg.adium.im/adium/rev/fcc61e641b94
revision:	4260:fcc61e641b94
branch:		(none)
author:		Stephen Holt <sholt at adium.im>
date:		Thu Oct 27 22:59:41 2011 -0700

Clean up Message Window controller.  Make it easier to work with.
Subject: adium 4261:e1448d51fda0: Rework message window layout. again. Fixes #15560. Fixes #15568.

details:	http://hg.adium.im/adium/rev/e1448d51fda0
revision:	4261:e1448d51fda0
branch:		(none)
author:		Stephen Holt <sholt at adium.im>
date:		Thu Oct 27 22:59:41 2011 -0700

Rework message window layout. again. Fixes #15560. Fixes #15568.

diffs (truncated from 1061 to 1000 lines):

diff -r 9ae3774e810d -r e1448d51fda0 Plugins/Dual Window Interface/AIMessageViewController.m
--- a/Plugins/Dual Window Interface/AIMessageViewController.m	Wed Oct 26 22:21:06 2011 -0700
+++ b/Plugins/Dual Window Interface/AIMessageViewController.m	Thu Oct 27 22:59:41 2011 -0700
@@ -1311,33 +1311,36 @@
 - (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize
 {
 	if ([splitView inLiveResize] || adium.interfaceController.activeChat != chat) {
+		// division between user list and message view
 		if (splitView == splitView_verticalSplit) {
 			NSRect currentFrame = splitView.frame;
 			NSRect msgFrame = [splitView_textEntryHorizontal superview].frame;
 			NSRect userFrame = view_userList.frame;
 			CGFloat dividerThickness = [splitView dividerThickness];
 			
-			msgFrame.size.width = AIfloor(currentFrame.size.width - userFrame.size.width - dividerThickness + 0.50f);
+			msgFrame.size.width = currentFrame.size.width - userFrame.size.width - dividerThickness;
 			msgFrame.size.height = currentFrame.size.height;
 			userFrame.size.height = currentFrame.size.height;
 			
 			if ([self userListVisible]) {
 				if (userListOnRight) {
-					userFrame.size.width = AIfloor(currentFrame.size.width - [self _userListViewDividerPositionIgnoringUserMinimum:NO] + 0.50f);
+					userFrame.size.width = currentFrame.size.width - [self _userListViewDividerPositionIgnoringUserMinimum:NO];
 				} else
-					userFrame.size.width = AIfloor([self _userListViewDividerPositionIgnoringUserMinimum:NO] + 0.50f);
+					userFrame.size.width = [self _userListViewDividerPositionIgnoringUserMinimum:NO];
 			} else {
 				userFrame.size.width = 0;
 				if([view_userList isHidden]) {
-					msgFrame.size.width += AIfloor(1 - dividerThickness);
+					msgFrame.size.width += 1 - dividerThickness;
 				}
 			}
 			
 			if (userListOnRight)
-				userFrame.origin.x = AIfloor(msgFrame.size.width + dividerThickness + 0.5f);
+				userFrame.origin.x = msgFrame.size.width + dividerThickness;
 			
 			[view_userList setFrame:userFrame];
 			[[splitView_textEntryHorizontal superview] setFrame:msgFrame];
+		
+		// divition between text entry and message view
 		} else if (splitView == splitView_textEntryHorizontal) {
 			NSRect currentFrame = splitView.frame;
 			NSRect msgFrame = view_messages.frame;
@@ -1346,9 +1349,9 @@
 			
 			textFrame.size.width = currentFrame.size.width;
 			msgFrame.size.width = currentFrame.size.width;
-			msgFrame.size.height = AIfloor(currentFrame.size.height - textFrame.size.height - dividerThickness + 0.50f);
+			msgFrame.size.height = currentFrame.size.height - textFrame.size.height - dividerThickness;
 			
-			textFrame.origin.y = AIfloor(msgFrame.size.height + dividerThickness + 0.5f);
+			textFrame.origin.y = msgFrame.size.height + dividerThickness;
 			
 			[view_messages setFrame:msgFrame];
 			[[scrollView_textEntry superview] setFrame:textFrame];
@@ -1426,7 +1429,7 @@
 		//On the left: min size of the user list
 		if (chat.isGroupChat) {
 			if (userListOnRight)
-				return (splitView_verticalSplit.frame.size.width / 2);
+				return AIfloor(splitView_verticalSplit.frame.size.width / 2);
 			else
 				return [self _userListViewDividerPositionIgnoringUserMinimum:YES];
 		} else {
diff -r 9ae3774e810d -r e1448d51fda0 Plugins/Dual Window Interface/AIMessageWindowController.m
--- a/Plugins/Dual Window Interface/AIMessageWindowController.m	Wed Oct 26 22:21:06 2011 -0700
+++ b/Plugins/Dual Window Interface/AIMessageWindowController.m	Thu Oct 27 22:59:41 2011 -0700
@@ -66,6 +66,7 @@
 - (void)tabDraggingNotificationReceived:(NSNotification *)notification;
 - (void)tabBarFrameChanged:(NSNotification *)notification;
 - (void)closeAlertDidEnd:(NSAlert *)alert returnCode:(int)result contextInfo:(void *)contextInfo;
+- (void)_relayoutWindow;
 @end
 
 //Used to squelch compiler warnings on this private call
@@ -123,13 +124,14 @@
 												 selector:@selector(windowWillMiniaturize:)
 													 name:NSWindowWillMiniaturizeNotification
 												   object:myWindow];
-		//Prefs
-		[adium.preferenceController registerPreferenceObserver:self forGroup:PREF_GROUP_DUAL_WINDOW_INTERFACE];
 		
 		//Register as a tab drag observer so we know when tabs are dragged over our window and can show our tab bar
 		[myWindow registerForDraggedTypes:[NSArray arrayWithObject:@"PSMTabBarControlItemPBType"]];
 	}
 
+	//Prefs
+	[adium.preferenceController registerPreferenceObserver:self forGroup:PREF_GROUP_DUAL_WINDOW_INTERFACE];
+	
     return self;
 }
 
@@ -393,130 +395,11 @@
 		
 		//change the frame of the tab bar according to the orientation
 		if (firstTime || [key isEqualToString:KEY_TABBAR_POSITION]) {
-			PSMTabBarOrientation orientation;
-			
 			tabPosition = [[prefDict objectForKey:KEY_TABBAR_POSITION] intValue];
-			orientation = ((tabPosition == AdiumTabPositionBottom || tabPosition == AdiumTabPositionTop) ?
-						   PSMTabBarHorizontalOrientation :
-						   PSMTabBarVerticalOrientation);
-
-			NSRect tabBarFrame = [tabView_tabBar frame];
-			NSRect tabViewMessagesFrame = [tabView_messages frame];
-			NSRect contentRect = [[[self window] contentView] frame];
-			
-			//remove the split view if the last orientation was vertical
-			if ([tabView_tabBar orientation] == PSMTabBarVerticalOrientation) {
-				[tabView_messages retain];
-				[tabView_messages removeFromSuperview];
-				[tabView_tabBar retain];
-				[tabView_tabBar removeFromSuperview];
-				[tabView_splitView removeFromSuperview];
-				
-				[[[self window] contentView] addSubview:tabView_messages];
-				[[[self window] contentView] addSubview:tabView_tabBar];
-				[tabView_messages release];
-				[tabView_tabBar release];
-			}
-			
-			[tabView_tabBar setOrientation:orientation];
-			
-			switch (orientation) {
-				case PSMTabBarHorizontalOrientation:
-				{
-					tabBarFrame.size.height = [tabView_tabBar isTabBarHidden] ? 0 : kPSMTabBarControlHeight;
-					tabBarFrame.size.width = contentRect.size.width + 0;
-					
-					//set the position of the tab bar (top/bottom)
-					if (tabPosition == AdiumTabPositionBottom) {
-						tabBarFrame.origin.y = NSMinY(contentRect);
-						tabViewMessagesFrame.origin.y = NSHeight(tabBarFrame) + ([tabView_tabBar isTabBarHidden] ? 0 : (HORIZONTAL_TAB_BAR_TO_VIEW_SPACING + 2));
-						tabViewMessagesFrame.size.height = (NSHeight(contentRect) - NSHeight(tabBarFrame) -
-															([tabView_tabBar isTabBarHidden] ? 0 : (HORIZONTAL_TAB_BAR_TO_VIEW_SPACING)));
-						[tabView_tabBar setAutoresizingMask:(NSViewMaxYMargin | NSViewWidthSizable)];
-						
-					} else {
-						// This arbitrary sizedown is so that top tabs look visually connected to their content below.
-						tabBarFrame.size.height -= 3;
-						
-						tabBarFrame.origin.y = NSMaxY(contentRect) - NSHeight(tabBarFrame);
-						tabViewMessagesFrame.origin.y = NSMinY(contentRect);
-						tabViewMessagesFrame.size.height = NSHeight(contentRect) - NSHeight(tabBarFrame) + 2;
-						[tabView_tabBar setAutoresizingMask:(NSViewMinYMargin | NSViewWidthSizable)];
-					}
-					/* If the cell is less than 60, icon + title + unread message count may overlap */
-					[tabView_tabBar setCellMinWidth:60];
-					[tabView_tabBar setCellMaxWidth:250];
-					
-					tabBarFrame.origin.x = 0;
-					
-					//Items within the tabview draw frames, so be sure to clip the left and right edges.
-					tabViewMessagesFrame.origin.x = 0;
-					tabViewMessagesFrame.size.width = NSWidth(contentRect);
-					break;
-				}
-				case PSMTabBarVerticalOrientation:
-				{
-					CGFloat width = ([prefDict objectForKey:KEY_VERTICAL_TABS_WIDTH] ?
-								   (CGFloat)[[prefDict objectForKey:KEY_VERTICAL_TABS_WIDTH] doubleValue] :
-								   100);
-					lastTabBarWidth = width;
-					
-					tabBarFrame.size.height = [[[self window] contentView] frame].size.height;
-					tabBarFrame.size.width = [tabView_tabBar isTabBarHidden] ? 0 : width;
-					tabBarFrame.origin.y = NSMinY(contentRect);
-					tabViewMessagesFrame.origin.y = NSMinY(contentRect) - 0;
-					tabViewMessagesFrame.size.height = NSHeight(contentRect) + 2;
-					tabViewMessagesFrame.size.width = NSWidth(contentRect) - NSWidth(tabBarFrame);
-					
-					//set the position of the tab bar (left/right)
-					if (tabPosition == AdiumTabPositionLeft) {
-						tabBarFrame.origin.x = NSMinX(contentRect);
-						tabViewMessagesFrame.origin.x = NSMaxX(tabBarFrame);
-						[tabView_tabBar setAutoresizingMask:NSViewHeightSizable];
-					} else {
-						tabViewMessagesFrame.origin.x = NSMinX(contentRect);
-						tabBarFrame.origin.x = NSWidth(contentRect) - NSWidth(tabBarFrame);
-						[tabView_tabBar setAutoresizingMask:NSViewHeightSizable | NSViewMinXMargin];
-					}
-					[tabView_tabBar setCellMinWidth:50];
-					[tabView_tabBar setCellMaxWidth:200];
-					
-					//put the subviews into a split view
-					NSRect splitViewRect = [[[self window] contentView] frame];
-					splitViewRect.size.height += 2;
-					if (tabPosition == AdiumTabPositionLeft) {
-						splitViewRect.origin.x -= [tabView_tabBar isTabBarHidden] ? 0 : 1;
-						splitViewRect.size.width += [tabView_tabBar isTabBarHidden] ? 0 : 1;
-					} else {
-						splitViewRect.size.width += [tabView_tabBar isTabBarHidden] ? 0 : 1;
-					}
-					tabView_splitView = [[[AIMessageTabSplitView alloc] initWithFrame:splitViewRect] autorelease];
-					[tabView_splitView setDividerThickness:([tabView_tabBar isTabBarHidden] ? 0 : VERTICAL_DIVIDER_THICKNESS)];
-					[tabView_splitView setVertical:YES];
-					[tabView_splitView setDelegate:self];
-					if (tabPosition == AdiumTabPositionLeft) {
-						[tabView_splitView addSubview:tabView_tabBar];
-						[tabView_splitView addSubview:tabView_messages];
-						[tabView_splitView setLeftColor:[NSColor colorWithCalibratedWhite:0.92f alpha:1.0f]
-											 rightColor:[NSColor colorWithCalibratedWhite:0.91f alpha:1.0f]];
-					} else {
-						[tabView_splitView addSubview:tabView_messages];
-						[tabView_splitView addSubview:tabView_tabBar];
-						[tabView_splitView setLeftColor:[NSColor colorWithCalibratedWhite:0.91f alpha:1.0f]
-											 rightColor:[NSColor colorWithCalibratedWhite:0.92f alpha:1.0f]];
-					}
-					[tabView_splitView adjustSubviews];
-					[tabView_splitView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
-					[[[self window] contentView] addSubview:tabView_splitView];
-					break;
-				}
-			}
-			
-			[tabView_messages setFrame:tabViewMessagesFrame];
-			[tabView_tabBar setFrame:tabBarFrame];
-			
-			//update the tab bar and tab view frame
-			[[self window] display];
+			lastTabBarWidth = ([prefDict objectForKey:KEY_VERTICAL_TABS_WIDTH] ?
+							   (CGFloat)[[prefDict objectForKey:KEY_VERTICAL_TABS_WIDTH] doubleValue] :
+							   100);
+			[self _relayoutWindow];
 		}
 		
 		//set tab style drawing attributes
@@ -539,6 +422,124 @@
     }
 }
 
+- (void)_relayoutWindow
+{
+	PSMTabBarOrientation orientation = ((tabPosition == AdiumTabPositionBottom || tabPosition == AdiumTabPositionTop) ?
+										PSMTabBarHorizontalOrientation :
+										PSMTabBarVerticalOrientation);
+	
+	NSRect tabBarFrame = [tabView_tabBar frame];
+	NSRect tabViewMessagesFrame = [tabView_messages frame];
+	NSRect contentRect = [[[self window] contentView] frame];
+	
+	//remove the split view if the last orientation was vertical
+	if ([tabView_tabBar orientation] == PSMTabBarVerticalOrientation) {
+		[tabView_messages retain];
+		[tabView_messages removeFromSuperview];
+		[tabView_tabBar retain];
+		[tabView_tabBar removeFromSuperview];
+		[tabView_splitView removeFromSuperview];
+		
+		[[[self window] contentView] addSubview:tabView_messages];
+		[[[self window] contentView] addSubview:tabView_tabBar];
+		[tabView_messages release];
+		[tabView_tabBar release];
+	}
+	[tabView_tabBar setOrientation:orientation];
+	BOOL isTabBarHidden = [tabView_tabBar isTabBarHidden]; //!alwaysShowTabs && m_containedChats.count <= 1;
+	switch (orientation) {
+		case PSMTabBarHorizontalOrientation:
+		{
+			tabBarFrame.size.height = isTabBarHidden? 0 : kPSMTabBarControlHeight;
+			tabBarFrame.size.width = contentRect.size.width;
+			tabViewMessagesFrame.size.width = contentRect.size.width;
+			
+			
+			//set the position of the tab bar (top/bottom)
+			if (tabPosition == AdiumTabPositionBottom) {
+				tabBarFrame.origin.y = NSMinY(contentRect);
+				tabViewMessagesFrame.origin.y = NSHeight(tabBarFrame) + (isTabBarHidden ? 0 : (HORIZONTAL_TAB_BAR_TO_VIEW_SPACING - 1));
+				tabViewMessagesFrame.size.height = NSHeight(contentRect) - NSHeight(tabBarFrame) - (isTabBarHidden? 0 : HORIZONTAL_TAB_BAR_TO_VIEW_SPACING) + 3;
+				[tabView_tabBar setAutoresizingMask:(NSViewMaxYMargin | NSViewWidthSizable)];
+				
+			} else {
+				// This arbitrary sizedown is so that top tabs look visually connected to their content below.
+				tabBarFrame.size.height -= 3;
+				
+				tabBarFrame.origin.y = NSMaxY(contentRect) - NSHeight(tabBarFrame);
+				tabViewMessagesFrame.origin.y = NSMinY(contentRect);
+				tabViewMessagesFrame.size.height = NSHeight(contentRect) - NSHeight(tabBarFrame) + (isTabBarHidden? 2 : 0);
+				[tabView_tabBar setAutoresizingMask:(NSViewMinYMargin | NSViewWidthSizable)];
+			}
+			/* If the cell is less than 60, icon + title + unread message count may overlap */
+			[tabView_tabBar setCellMinWidth:60];
+			[tabView_tabBar setCellMaxWidth:250];
+			
+			tabBarFrame.origin.x = 0;
+			tabViewMessagesFrame.origin.x = 0;
+			
+			break;
+		}
+		case PSMTabBarVerticalOrientation:
+		{
+			tabBarFrame.size.height = [[[self window] contentView] frame].size.height;
+			tabBarFrame.size.width = [tabView_tabBar isTabBarHidden] ? 0 : lastTabBarWidth;
+			tabBarFrame.origin.y = NSMinY(contentRect);
+			tabViewMessagesFrame.origin.y = NSMinY(contentRect) - 0;
+			tabViewMessagesFrame.size.height = NSHeight(contentRect) + 2;
+			tabViewMessagesFrame.size.width = NSWidth(contentRect) - NSWidth(tabBarFrame);
+			
+			//set the position of the tab bar (left/right)
+			if (tabPosition == AdiumTabPositionLeft) {
+				tabBarFrame.origin.x = NSMinX(contentRect);
+				tabViewMessagesFrame.origin.x = NSMaxX(tabBarFrame);
+				[tabView_tabBar setAutoresizingMask:NSViewHeightSizable];
+			} else {
+				tabViewMessagesFrame.origin.x = NSMinX(contentRect);
+				tabBarFrame.origin.x = NSWidth(contentRect) - NSWidth(tabBarFrame);
+				[tabView_tabBar setAutoresizingMask:NSViewHeightSizable | NSViewMinXMargin];
+			}
+			[tabView_tabBar setCellMinWidth:50];
+			[tabView_tabBar setCellMaxWidth:200];
+			
+			//put the subviews into a split view
+			NSRect splitViewRect = [[[self window] contentView] frame];
+			splitViewRect.size.height += 2;
+			if (tabPosition == AdiumTabPositionLeft) {
+				splitViewRect.origin.x -= [tabView_tabBar isTabBarHidden] ? 0 : 1;
+				splitViewRect.size.width += [tabView_tabBar isTabBarHidden] ? 0 : 1;
+			} else {
+				splitViewRect.size.width += [tabView_tabBar isTabBarHidden] ? 0 : 1;
+			}
+			tabView_splitView = [[[AIMessageTabSplitView alloc] initWithFrame:splitViewRect] autorelease];
+			[tabView_splitView setDividerThickness:([tabView_tabBar isTabBarHidden] ? 0 : VERTICAL_DIVIDER_THICKNESS)];
+			[tabView_splitView setVertical:YES];
+			[tabView_splitView setDelegate:self];
+			if (tabPosition == AdiumTabPositionLeft) {
+				[tabView_splitView addSubview:tabView_tabBar];
+				[tabView_splitView addSubview:tabView_messages];
+				[tabView_splitView setLeftColor:[NSColor colorWithCalibratedWhite:0.92f alpha:1.0f]
+									 rightColor:[NSColor colorWithCalibratedWhite:0.91f alpha:1.0f]];
+			} else {
+				[tabView_splitView addSubview:tabView_messages];
+				[tabView_splitView addSubview:tabView_tabBar];
+				[tabView_splitView setLeftColor:[NSColor colorWithCalibratedWhite:0.91f alpha:1.0f]
+									 rightColor:[NSColor colorWithCalibratedWhite:0.92f alpha:1.0f]];
+			}
+			[tabView_splitView adjustSubviews];
+			[tabView_splitView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
+			[[[self window] contentView] addSubview:tabView_splitView];
+			break;
+		}
+	}
+	
+	[tabView_messages setFrame:tabViewMessagesFrame];
+	[tabView_tabBar setFrame:tabBarFrame];
+	
+	//update the tab bar and tab view frame
+	[[[self window] contentView] setNeedsDisplay:YES];
+}
+
 - (void)updateOverflowMenuUnviewedContentIcon
 {
 	BOOL someUnviewedContent = NO;
@@ -956,11 +957,6 @@
     [self _updateWindowTitleAndIcon];
 	[self _reloadContainedChats];
 	[adium.interfaceController chatOrderDidChange];
-	
-	//Remaining disabled until the last crasher I know of is removed
-	/*if ([tabView numberOfTabViewItems] > 0) {
-		[tabView_tabBar setAutomaticallyAnimates:YES];
-	}*/
 }
 
 //Tabs reordered
diff -r 9ae3774e810d -r e1448d51fda0 Plugins/Dual Window Interface/MessageView.xib
--- a/Plugins/Dual Window Interface/MessageView.xib	Wed Oct 26 22:21:06 2011 -0700
+++ b/Plugins/Dual Window Interface/MessageView.xib	Thu Oct 27 22:59:41 2011 -0700
@@ -75,13 +75,11 @@
 														<int key="NSvFlags">274</int>
 														<string key="NSFrame">{{1, 1}, {479, 0}}</string>
 														<reference key="NSSuperview" ref="632298351"/>
-														<reference key="NSWindow"/>
 														<reference key="NSNextKeyView" ref="351509238"/>
 													</object>
 												</object>
 												<string key="NSFrameSize">{481, 1}</string>
 												<reference key="NSSuperview" ref="687025598"/>
-												<reference key="NSWindow"/>
 												<reference key="NSNextKeyView" ref="739771638"/>
 												<string key="NSOffsets">{0, 0}</string>
 												<object class="NSTextFieldCell" key="NSTitleCell">
@@ -121,7 +119,6 @@
 										</object>
 										<string key="NSFrame">{{0, 302}, {481, 59}}</string>
 										<reference key="NSSuperview" ref="465253647"/>
-										<reference key="NSWindow"/>
 										<reference key="NSNextKeyView" ref="632298351"/>
 										<string key="NSClassName">AIAccountSelectionView</string>
 									</object>
@@ -160,13 +157,11 @@
 																						<int key="NSvFlags">274</int>
 																						<string key="NSFrameSize">{345, 264}</string>
 																						<reference key="NSSuperview" ref="916213062"/>
-																						<reference key="NSWindow"/>
 																						<reference key="NSNextKeyView" ref="881321079"/>
 																					</object>
 																				</object>
 																				<string key="NSFrameSize">{345, 264}</string>
 																				<reference key="NSSuperview" ref="60130733"/>
-																				<reference key="NSWindow"/>
 																				<reference key="NSNextKeyView" ref="819870531"/>
 																				<reference key="NSDocView" ref="819870531"/>
 																				<object class="NSColor" key="NSBGColor">
@@ -185,7 +180,6 @@
 																				<int key="NSvFlags">-2147483392</int>
 																				<string key="NSFrame">{{-100, -100}, {15, 188}}</string>
 																				<reference key="NSSuperview" ref="60130733"/>
-																				<reference key="NSWindow"/>
 																				<reference key="NSNextKeyView" ref="657097854"/>
 																				<reference key="NSTarget" ref="60130733"/>
 																				<string key="NSAction">_doScroller:</string>
@@ -197,7 +191,6 @@
 																				<int key="NSvFlags">-2147483392</int>
 																				<string key="NSFrame">{{-100, -100}, {278, 15}}</string>
 																				<reference key="NSSuperview" ref="60130733"/>
-																				<reference key="NSWindow"/>
 																				<reference key="NSNextKeyView" ref="916213062"/>
 																				<int key="NSsFlags">1</int>
 																				<reference key="NSTarget" ref="60130733"/>
@@ -207,7 +200,6 @@
 																		</object>
 																		<string key="NSFrameSize">{345, 264}</string>
 																		<reference key="NSSuperview" ref="1034558317"/>
-																		<reference key="NSWindow"/>
 																		<reference key="NSNextKeyView" ref="916213062"/>
 																		<int key="NSsFlags">133120</int>
 																		<reference key="NSVScroller" ref="881321079"/>
@@ -217,7 +209,6 @@
 																</object>
 																<string key="NSFrameSize">{345, 264}</string>
 																<reference key="NSSuperview" ref="469967666"/>
-																<reference key="NSWindow"/>
 																<reference key="NSNextKeyView" ref="60130733"/>
 																<string key="NSClassName">NSView</string>
 															</object>
@@ -241,7 +232,6 @@
 																						<int key="NSvFlags">274</int>
 																						<string key="NSFrameSize">{344, 18}</string>
 																						<reference key="NSSuperview" ref="382054263"/>
-																						<reference key="NSWindow"/>
 																						<reference key="NSNextKeyView" ref="949636887"/>
 																						<string key="NSClassName">AIMessageEntryTextView</string>
 																						<string key="NSExtension">NSTextView</string>
@@ -249,7 +239,6 @@
 																				</object>
 																				<string key="NSFrame">{{1, 1}, {343, 36}}</string>
 																				<reference key="NSSuperview" ref="1006380680"/>
-																				<reference key="NSWindow"/>
 																				<reference key="NSNextKeyView" ref="662114219"/>
 																				<reference key="NSDocView" ref="662114219"/>
 																				<reference key="NSBGColor" ref="33147168"/>
@@ -260,7 +249,6 @@
 																				<int key="NSvFlags">-2147483392</int>
 																				<string key="NSFrame">{{331, 1}, {15, 16}}</string>
 																				<reference key="NSSuperview" ref="1006380680"/>
-																				<reference key="NSWindow"/>
 																				<reference key="NSNextKeyView" ref="559917187"/>
 																				<reference key="NSTarget" ref="1006380680"/>
 																				<string key="NSAction">_doScroller:</string>
@@ -272,7 +260,6 @@
 																				<int key="NSvFlags">-2147483392</int>
 																				<string key="NSFrame">{{-100, -100}, {343, 15}}</string>
 																				<reference key="NSSuperview" ref="1006380680"/>
-																				<reference key="NSWindow"/>
 																				<reference key="NSNextKeyView" ref="382054263"/>
 																				<bool key="NSEnabled">YES</bool>
 																				<int key="NSsFlags">1</int>
@@ -283,7 +270,6 @@
 																		</object>
 																		<string key="NSFrameSize">{345, 38}</string>
 																		<reference key="NSSuperview" ref="944644976"/>
-																		<reference key="NSWindow"/>
 																		<reference key="NSNextKeyView" ref="382054263"/>
 																		<int key="NSsFlags">133778</int>
 																		<reference key="NSVScroller" ref="949636887"/>
@@ -293,14 +279,12 @@
 																</object>
 																<string key="NSFrame">{{0, 265}, {345, 38}}</string>
 																<reference key="NSSuperview" ref="469967666"/>
-																<reference key="NSWindow"/>
 																<reference key="NSNextKeyView" ref="1006380680"/>
 																<string key="NSClassName">NSView</string>
 															</object>
 														</object>
 														<string key="NSFrameSize">{345, 303}</string>
 														<reference key="NSSuperview" ref="988585566"/>
-														<reference key="NSWindow"/>
 														<reference key="NSNextKeyView" ref="1034558317"/>
 														<int key="NSDividerStyle">2</int>
 														<string key="NSAutosaveName">AdiumMessageView</string>
@@ -308,7 +292,6 @@
 												</object>
 												<string key="NSFrameSize">{345, 303}</string>
 												<reference key="NSSuperview" ref="351509238"/>
-												<reference key="NSWindow"/>
 												<reference key="NSNextKeyView" ref="469967666"/>
 												<string key="NSClassName">NSView</string>
 											</object>
@@ -327,7 +310,6 @@
 																<int key="NSvFlags">294</int>
 																<string key="NSFrame">{{35, 3}, {84, 14}}</string>
 																<reference key="NSSuperview" ref="561723111"/>
-																<reference key="NSWindow"/>
 																<bool key="NSEnabled">YES</bool>
 																<object class="NSTextFieldCell" key="NSCell" id="864763355">
 																	<int key="NSCellFlags">68288064</int>
@@ -361,7 +343,6 @@
 																<int key="NSvFlags">268</int>
 																<string key="NSFrame">{{-1, -2}, {30, 24}}</string>
 																<reference key="NSSuperview" ref="561723111"/>
-																<reference key="NSWindow"/>
 																<reference key="NSNextKeyView" ref="657371372"/>
 																<bool key="NSEnabled">YES</bool>
 																<object class="NSButtonCell" key="NSCell" id="285849080">
@@ -392,13 +373,11 @@
 																		<int key="NSvFlags">274</int>
 																		<string key="NSFrame">{{1, 1}, {138, 3}}</string>
 																		<reference key="NSSuperview" ref="140880223"/>
-																		<reference key="NSWindow"/>
 																		<reference key="NSNextKeyView" ref="282711289"/>
 																	</object>
 																</object>
 																<string key="NSFrame">{{-3, 20}, {140, 5}}</string>
 																<reference key="NSSuperview" ref="561723111"/>
-																<reference key="NSWindow"/>
 																<reference key="NSNextKeyView" ref="274308108"/>
 																<string key="NSOffsets">{0, 0}</string>
 																<object class="NSTextFieldCell" key="NSTitleCell">
@@ -429,7 +408,6 @@
 														</object>
 														<string key="NSFrameSize">{136, 21}</string>
 														<reference key="NSSuperview" ref="60271943"/>
-														<reference key="NSWindow"/>
 														<reference key="NSNextKeyView" ref="140880223"/>
 														<string key="NSClassName">AIGradientView</string>
 													</object>
@@ -448,7 +426,6 @@
 																		<int key="NSvFlags">4352</int>
 																		<string key="NSFrameSize">{136, 283}</string>
 																		<reference key="NSSuperview" ref="697712038"/>
-																		<reference key="NSWindow"/>
 																		<reference key="NSNextKeyView" ref="990929380"/>
 																		<bool key="NSEnabled">YES</bool>
 																		<object class="_NSCornerView" key="NSCornerView">
@@ -523,7 +500,6 @@
 																</object>
 																<string key="NSFrameSize">{136, 283}</string>
 																<reference key="NSSuperview" ref="652921259"/>
-																<reference key="NSWindow"/>
 																<reference key="NSNextKeyView" ref="824656698"/>
 																<reference key="NSDocView" ref="824656698"/>
 																<reference key="NSBGColor" ref="367010068"/>
@@ -534,7 +510,6 @@
 																<int key="NSvFlags">-2147483392</int>
 																<string key="NSFrame">{{119, 0}, {15, 326}}</string>
 																<reference key="NSSuperview" ref="652921259"/>
-																<reference key="NSWindow"/>
 																<reference key="NSNextKeyView" ref="282731645"/>
 																<reference key="NSTarget" ref="652921259"/>
 																<string key="NSAction">_doScroller:</string>
@@ -545,7 +520,6 @@
 																<int key="NSvFlags">-2147483392</int>
 																<string key="NSFrame">{{0, 326}, {119, 15}}</string>
 																<reference key="NSSuperview" ref="652921259"/>
-																<reference key="NSWindow"/>
 																<reference key="NSNextKeyView" ref="561723111"/>
 																<int key="NSsFlags">1</int>
 																<reference key="NSTarget" ref="652921259"/>
@@ -555,7 +529,6 @@
 														</object>
 														<string key="NSFrame">{{0, 20}, {136, 283}}</string>
 														<reference key="NSSuperview" ref="60271943"/>
-														<reference key="NSWindow"/>
 														<reference key="NSNextKeyView" ref="697712038"/>
 														<int key="NSsFlags">133680</int>
 														<reference key="NSVScroller" ref="990929380"/>
@@ -566,14 +539,12 @@
 												</object>
 												<string key="NSFrame">{{346, 0}, {136, 303}}</string>
 												<reference key="NSSuperview" ref="351509238"/>
-												<reference key="NSWindow"/>
 												<reference key="NSNextKeyView" ref="652921259"/>
 												<string key="NSClassName">NSView</string>
 											</object>
 										</object>
 										<string key="NSFrameSize">{482, 303}</string>
 										<reference key="NSSuperview" ref="465253647"/>
-										<reference key="NSWindow"/>
 										<reference key="NSNextKeyView" ref="988585566"/>
 										<bool key="NSIsVertical">YES</bool>
 										<int key="NSDividerStyle">2</int>
@@ -581,13 +552,11 @@
 								</object>
 								<string key="NSFrameSize">{481, 361}</string>
 								<reference key="NSSuperview" ref="472278389"/>
-								<reference key="NSWindow"/>
 								<reference key="NSNextKeyView" ref="687025598"/>
 							</object>
 						</object>
 						<string key="NSFrameSize">{481, 361}</string>
 						<reference key="NSSuperview" ref="498346344"/>
-						<reference key="NSWindow"/>
 						<reference key="NSNextKeyView" ref="465253647"/>
 						<string key="NSOffsets">{0, 0}</string>
 						<object class="NSTextFieldCell" key="NSTitleCell">
@@ -616,7 +585,6 @@
 				</object>
 				<string key="NSFrameSize">{481, 361}</string>
 				<reference key="NSSuperview"/>
-				<reference key="NSWindow"/>
 				<reference key="NSNextKeyView" ref="472278389"/>
 				<string key="NSClassName">NSView</string>
 			</object>
@@ -1176,296 +1144,7 @@
 			<nil key="sourceID"/>
 			<int key="maxID">186</int>
 		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes">
-			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIAccountSelectionView</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIAccountSelectionView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIAlternatingRowOutlineView</string>
-					<string key="superclassName">AIOutlineView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIAlternatingRowOutlineView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIAutoScrollView</string>
-					<string key="superclassName">NSScrollView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIAutoScrollView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIGradientView</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIGradientView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIListOutlineView</string>
-					<string key="superclassName">AIMultiCellOutlineView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIListOutlineView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIMessageEntryTextView</string>
-					<string key="superclassName">AISendingTextView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIMessageEntryTextView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIMessageViewController</string>
-					<string key="superclassName">NSObject</string>
-					<object class="NSMutableDictionary" key="actions">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>didSendMessage:</string>
-							<string>sendMessage:</string>
-							<string>sendMessageLater:</string>
-							<string>showActionMenu:</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>didSendMessage:</string>
-							<string>sendMessage:</string>
-							<string>sendMessageLater:</string>
-							<string>showActionMenu:</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<object class="IBActionInfo">
-								<string key="name">didSendMessage:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">sendMessage:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">sendMessageLater:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">showActionMenu:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="outlets">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>actionBarView</string>
-							<string>label_userCount</string>
-							<string>performAction</string>
-							<string>scrollView_messages</string>
-							<string>scrollView_textEntry</string>
-							<string>scrollView_userList</string>
-							<string>splitView_textEntryHorizontal</string>
-							<string>splitView_verticalSplit</string>
-							<string>textView_outgoing</string>
-							<string>userListView</string>
-							<string>view_accountSelection</string>
-							<string>view_contents</string>
-							<string>view_messages</string>
-							<string>view_userList</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>AIGradientView</string>
-							<string>NSTextField</string>
-							<string>NSButton</string>
-							<string>AIMessageWindowOutgoingScrollView</string>
-							<string>NSScrollView</string>
-							<string>AIAutoScrollView</string>
-							<string>NSSplitView</string>
-							<string>NSSplitView</string>
-							<string>AIMessageEntryTextView</string>
-							<string>AIListOutlineView</string>
-							<string>AIAccountSelectionView</string>
-							<string>NSView</string>
-							<string>NSView</string>
-							<string>NSView</string>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>actionBarView</string>
-							<string>label_userCount</string>
-							<string>performAction</string>
-							<string>scrollView_messages</string>
-							<string>scrollView_textEntry</string>
-							<string>scrollView_userList</string>
-							<string>splitView_textEntryHorizontal</string>
-							<string>splitView_verticalSplit</string>
-							<string>textView_outgoing</string>
-							<string>userListView</string>
-							<string>view_accountSelection</string>
-							<string>view_contents</string>
-							<string>view_messages</string>
-							<string>view_userList</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<object class="IBToOneOutletInfo">
-								<string key="name">actionBarView</string>
-								<string key="candidateClassName">AIGradientView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">label_userCount</string>
-								<string key="candidateClassName">NSTextField</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">performAction</string>
-								<string key="candidateClassName">NSButton</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">scrollView_messages</string>
-								<string key="candidateClassName">AIMessageWindowOutgoingScrollView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">scrollView_textEntry</string>
-								<string key="candidateClassName">NSScrollView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">scrollView_userList</string>
-								<string key="candidateClassName">AIAutoScrollView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">splitView_textEntryHorizontal</string>
-								<string key="candidateClassName">NSSplitView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">splitView_verticalSplit</string>
-								<string key="candidateClassName">NSSplitView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">textView_outgoing</string>
-								<string key="candidateClassName">AIMessageEntryTextView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">userListView</string>
-								<string key="candidateClassName">AIListOutlineView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">view_accountSelection</string>
-								<string key="candidateClassName">AIAccountSelectionView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">view_contents</string>
-								<string key="candidateClassName">NSView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">view_messages</string>
-								<string key="candidateClassName">NSView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">view_userList</string>
-								<string key="candidateClassName">NSView</string>
-							</object>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIMessageViewController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIMessageWindowOutgoingScrollView</string>
-					<string key="superclassName">NSScrollView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIMessageWindowOutgoingScrollView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIMultiCellOutlineView</string>
-					<string key="superclassName">AIVariableHeightOutlineView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIMultiCellOutlineView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIOutlineView</string>
-					<string key="superclassName">NSOutlineView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIOutlineView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AISendingTextView</string>
-					<string key="superclassName">AITextViewWithPlaceholder</string>
-					<object class="NSMutableDictionary" key="actions">
-						<string key="NS.key.0">sendContent:</string>
-						<string key="NS.object.0">id</string>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<string key="NS.key.0">sendContent:</string>
-						<object class="IBActionInfo" key="NS.object.0">
-							<string key="name">sendContent:</string>
-							<string key="candidateClassName">id</string>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AISendingTextView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AITextViewWithPlaceholder</string>
-					<string key="superclassName">NSTextView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AITextViewWithPlaceholder.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIUserListOutlineView</string>
-					<string key="superclassName">AIListOutlineView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIUserListOutlineView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIVariableHeightOutlineView</string>
-					<string key="superclassName">AIAlternatingRowOutlineView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIVariableHeightOutlineView.h</string>
-					</object>
-				</object>
-			</object>
-		</object>
+		<object class="IBClassDescriber" key="IBDocument.Classes"/>
 		<int key="IBDocument.localizationMode">0</int>
 		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
 		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
diff -r 9ae3774e810d -r e1448d51fda0 Plugins/Dual Window Interface/MessageWindow.xib
--- a/Plugins/Dual Window Interface/MessageWindow.xib	Wed Oct 26 22:21:06 2011 -0700
+++ b/Plugins/Dual Window Interface/MessageWindow.xib	Thu Oct 27 22:59:41 2011 -0700
@@ -57,19 +57,16 @@
 						<object class="NSTabView" id="301587204">
 							<reference key="NSNextResponder" ref="643374404"/>
 							<int key="NSvFlags">274</int>
-							<string key="NSFrame">{{0, 19}, {400, 216}}</string>
+							<string key="NSFrame">{{0, 22}, {400, 213}}</string>
 							<reference key="NSSuperview" ref="643374404"/>
-							<reference key="NSWindow"/>
-							<reference key="NSNextKeyView" ref="1044278685"/>
 							<array class="NSMutableArray" key="NSTabViewItems">
 								<object class="NSTabViewItem" id="185672595">
 									<string key="NSIdentifier">1</string>
 									<object class="NSView" key="NSView" id="1044278685">
 										<reference key="NSNextResponder" ref="301587204"/>
 										<int key="NSvFlags">256</int>
-										<string key="NSFrameSize">{400, 216}</string>
+										<string key="NSFrameSize">{400, 213}</string>
 										<reference key="NSSuperview" ref="301587204"/>
-										<reference key="NSWindow"/>
 										<reference key="NSNextKeyView" ref="824588683"/>
 									</object>
 									<object class="NSColor" key="NSColor">
@@ -101,15 +98,12 @@
 							<int key="NSvFlags">258</int>
 							<string key="NSFrameSize">{400, 22}</string>
 							<reference key="NSSuperview" ref="643374404"/>
-							<reference key="NSWindow"/>
-							<reference key="NSNextKeyView"/>
 							<string key="NSClassName">PSMTabBarControl</string>
 							<string key="NSExtension">NSControl</string>
 						</object>
 					</array>
 					<string key="NSFrameSize">{400, 235}</string>
 					<reference key="NSSuperview"/>
-					<reference key="NSWindow"/>
 					<reference key="NSNextKeyView" ref="301587204"/>
 				</object>
 				<string key="NSScreenRect">{{0, 0}, {1366, 768}}</string>
@@ -279,105 +273,7 @@
 			<nil key="sourceID"/>
 			<int key="maxID">79</int>
 		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes">
-			<array class="NSMutableArray" key="referencedPartialClassDescriptions">
-				<object class="IBPartialClassDescription">
-					<string key="className">AIDockingWindow</string>
-					<string key="superclassName">NSWindow</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIDockingWindow.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIMessageWindow</string>
-					<string key="superclassName">AIDockingWindow</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/AIMessageWindow.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AIMessageWindowController</string>
-					<string key="superclassName">AIWindowController</string>
-					<object class="NSMutableDictionary" key="actions">
-						<string key="NS.key.0">closeWindow:</string>
-						<string key="NS.object.0">id</string>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<string key="NS.key.0">closeWindow:</string>
-						<object class="IBActionInfo" key="NS.object.0">
-							<string key="name">closeWindow:</string>
-							<string key="candidateClassName">id</string>
-						</object>
-					</object>
-					<dictionary class="NSMutableDictionary" key="outlets">
-						<string key="tabView_messages">NSTabView</string>
-						<string key="tabView_tabBar">PSMTabBarControl</string>
-					</dictionary>
-					<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
-						<object class="IBToOneOutletInfo" key="tabView_messages">
-							<string key="name">tabView_messages</string>
-							<string key="candidateClassName">NSTabView</string>
-						</object>
-						<object class="IBToOneOutletInfo" key="tabView_tabBar">




More information about the commits mailing list