[Adium-commits] adium 2011:49376424e51c: Move the additional delegate support on...

adium-commits at adiumx.com adium-commits at adiumx.com
Tue Apr 28 09:49:50 UTC 2009


details:	http://hg.adiumx.com/adium/rev/49376424e51c
revision:	2011:49376424e51c
author:		David Smith <catfish.man at gmail.com>
date:		Tue Apr 28 00:33:12 2009 -0700

Move the additional delegate support on AIAlternatingRowTableView to AITableViewAdditions via swizzling. This makes it available for everyone, and gets us another step closer to making the inheritance chain for our outline views a little less crazy.
Subject: adium 2012:2f6a52ec240f: Remove more AIAlternatingRowTableView usage

details:	http://hg.adiumx.com/adium/rev/2f6a52ec240f
revision:	2012:2f6a52ec240f
author:		David Smith <catfish.man at gmail.com>
date:		Tue Apr 28 00:33:28 2009 -0700

Remove more AIAlternatingRowTableView usage
Subject: adium 2013:b9660c356dfa: Oops. Fix this

details:	http://hg.adiumx.com/adium/rev/b9660c356dfa
revision:	2013:b9660c356dfa
author:		David Smith <catfish.man at gmail.com>
date:		Tue Apr 28 00:59:34 2009 -0700

Oops. Fix this
Subject: adium 2014:4eb82de44d87: Gut AIAlternatingRowTableView in favor of using NSTableView's new capabilities. This does lose the gradient on a few more tableviews, but that matches the rest of the OS. Can't remove it quite yet since it's still referenced in nibs

details:	http://hg.adiumx.com/adium/rev/4eb82de44d87
revision:	2014:4eb82de44d87
author:		David Smith <catfish.man at gmail.com>
date:		Tue Apr 28 01:31:08 2009 -0700

Gut AIAlternatingRowTableView in favor of using NSTableView's new capabilities. This does lose the gradient on a few more tableviews, but that matches the rest of the OS. Can't remove it quite yet since it's still referenced in nibs

diffstat:

 Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.h        |   13 -
 Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.m        |  152 ----
 Frameworks/AIUtilities Framework/Source/AITableViewAdditions.h             |    6 +
 Frameworks/AIUtilities Framework/Source/AITableViewAdditions.m             |   49 +
 Frameworks/Adium Framework/Resources/PresetManagement.nib/classes.nib      |  344 +++++++--
 Frameworks/Adium Framework/Resources/PresetManagement.nib/info.nib         |   16 +-
 Frameworks/Adium Framework/Resources/PresetManagement.nib/keyedobjects.nib |      
 Frameworks/Adium Framework/Source/ESContactAlertsViewController.m          |    1 -
 Plugins/Emoticons/AIEmoticonPackPreviewTableView.m                         |    2 +-
 Plugins/Emoticons/AIEmoticonPreferences.h                                  |   23 +-
 Plugins/Emoticons/AIEmoticonPreferences.m                                  |   17 +-
 Resources/AIURLHandlerPreferences.nib/designable.nib                       |  114 +++-
 Resources/AIURLHandlerPreferences.nib/keyedobjects.nib                     |      
 Resources/XtrasManager.nib/classes.nib                                     |  281 ++++++-
 Resources/XtrasManager.nib/info.nib                                        |   25 +-
 Resources/XtrasManager.nib/keyedobjects.nib                                |      
 Source/AIAdvancedInspectorPane.h                                           |    2 -
 Source/AIAdvancedInspectorPane.m                                           |    1 -
 Source/AIAdvancedPreferences.h                                             |    4 +-
 Source/AIAdvancedPreferences.m                                             |   22 +-
 Source/AILogViewerWindowController.m                                       |    7 +-
 Source/AIMentionAdvancedPreferences.h                                      |    2 -
 Source/AIPreferenceWindowController.m                                      |    1 -
 Source/AIURLHandlerAdvancedPreferences.h                                   |    3 +-
 Source/AIXtrasManager.h                                                    |    4 +-
 Source/AIXtrasManager.m                                                    |    8 +-
 Source/ESAwayStatusWindowController.h                                      |    4 +-
 Source/ESAwayStatusWindowController.m                                      |    2 -
 Source/ESFileTransferProgressWindowController.m                            |    1 -
 Source/RAFBlockEditorWindowController.h                                    |    1 -
 30 files changed, 683 insertions(+), 422 deletions(-)

diffs (truncated from 1523 to 1000 lines):

diff -r d30703953cf5 -r 4eb82de44d87 Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.h
--- a/Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.h	Mon Apr 27 23:52:39 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.h	Tue Apr 28 01:31:08 2009 -0700
@@ -15,24 +15,11 @@
 
 /*!
  * @class AIAlternatingRowTableView
- * @brief An <tt>NSTableView</tt> subclass supporting gradient selection and notification of a delete keypress.
  *
  * The name is currently AIAlternatingRowTableView for Adium legacy regions. This class should be renamed.
  *
  */
 @interface AIAlternatingRowTableView : NSTableView {
-	BOOL	drawsGradientSelection;
 }
 
- at property (readwrite, nonatomic) BOOL drawsGradientSelection;
-
 @end
-
- at interface NSObject (AITableViewDelegateDeleteSupport)
-- (void)tableViewDeleteSelectedRows:(NSTableView *)tableView;
- at end
-
-
- at interface NSObject (AITableViewDelegateMenuSupport)
-- (NSMenu *)tableView:(NSTableView *)inTableView menuForEvent:(NSEvent *)theEvent;
- at end
diff -r d30703953cf5 -r 4eb82de44d87 Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.m
--- a/Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.m	Mon Apr 27 23:52:39 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.m	Tue Apr 28 01:31:08 2009 -0700
@@ -14,31 +14,12 @@
  \------------------------------------------------------------------------------------------------------ */
 
 #import "AIAlternatingRowTableView.h"
-#import "AIGradientAdditions.h"
-#import "AIImageAdditions.h"
-#import "AIColorAdditions.h"
-
-/*
- A subclass of table view that adds:
-
- - Alternating row colors
- - Delete key handling
- */
-
- at interface AIAlternatingRowTableView ()
-- (void)_initAlternatingRowTableView;
- at end
-
- at interface NSTableView (Undocumented)
-- (id)_highlightColorForCell:(NSCell *)cell;
- at end
 
 @implementation AIAlternatingRowTableView
 
 - (id)initWithCoder:(NSCoder *)aDecoder
 {
 	if ((self = [super initWithCoder:aDecoder])) {
-		[self _initAlternatingRowTableView];
 	}
 	return self;
 }
@@ -46,140 +27,7 @@
 - (id)initWithFrame:(NSRect)frameRect
 {
 	if ((self = [super initWithFrame:frameRect])) {
-		[self _initAlternatingRowTableView];
 	}
 	return self;
 }
-
-- (void)_initAlternatingRowTableView
-{
-	[[NSNotificationCenter defaultCenter] addObserver:self
-											 selector:@selector(alternatingRowTableViewSelectionDidChange:)
-												 name:NSTableViewSelectionDidChangeNotification
-											   object:self];	
-}
-
-- (void)dealloc
-{
-    [[NSNotificationCenter defaultCenter] removeObserver:self];
-
-    [super dealloc];
-}
-
-//Configuring ----------------------------------------------------------------------
-
-//Filter keydowns looking for the delete key (to delete the current selection)
-- (void)keyDown:(NSEvent *)theEvent
-{
-    NSString	*charString = [theEvent charactersIgnoringModifiers];
-    unichar		pressedChar = 0;
-
-    //Get the pressed character
-    if ([charString length] == 1) pressedChar = [charString characterAtIndex:0];
-
-    //Check if 'delete' was pressed
-    if (pressedChar == NSDeleteFunctionKey || pressedChar == NSBackspaceCharacter || pressedChar == NSDeleteCharacter) { //Delete
-        if ([[self delegate] respondsToSelector:@selector(tableViewDeleteSelectedRows:)]) {
-			[[self delegate] tableViewDeleteSelectedRows:self]; //Delete the selection
-		}
-    } else {
-        [super keyDown:theEvent]; //Pass the key event on
-    }
-}
-
-- (void)setDrawsGradientSelection:(BOOL)inDrawsGradientSelection
-{
-	drawsGradientSelection = inDrawsGradientSelection;
-	[self setNeedsDisplay:YES];
-}
-
-- (BOOL)drawsGradientSelection
-{
-	return drawsGradientSelection;
-}
-
-//Allow our delegate to specify context menus
-- (NSMenu *)menuForEvent:(NSEvent *)theEvent
-{
-    if ([[self delegate] respondsToSelector:@selector(tableView:menuForEvent:)]) {
-        return [[self delegate] tableView:self menuForEvent:theEvent];
-    } else {
-        return [super menuForEvent:theEvent];
-    }
-}
-
-// Scrolling ----------------------------------------------------------------------
-- (void)tile
-{
-    [super tile];
-
-    [[self enclosingScrollView] setVerticalLineScroll: ([self rowHeight] + [self intercellSpacing].height) ];
-}
-
-#pragma mark Gradient selection and alternating rows
-
-- (void)highlightSelectionInClipRect:(NSRect)clipRect
-{
-	if (drawsGradientSelection && [[self window] isKeyWindow] && ([[self window] firstResponder] == self)) {
-		NSIndexSet *indices = [self selectedRowIndexes];
-		unsigned int bufSize = [indices count];
-		NSUInteger *buf = malloc(bufSize * sizeof(NSUInteger));
-		unsigned int i = 0, j = 0;
-		
-		NSGradient *gradient = [NSGradient selectedControlGradient];
-		
-		NSRange range = NSMakeRange([indices firstIndex], ([indices lastIndex]-[indices firstIndex]) + 1);
-		[indices getIndexes:buf maxCount:bufSize inIndexRange:&range];
-		
-		NSRect *selectionLineRects = (NSRect *)malloc(sizeof(NSRect) * bufSize);
-		
-		while (i < bufSize) {
-			int startIndex = buf[i];
-			int lastIndex = buf[i];
-			while ((i + 1 < bufSize) &&
-				   (buf[i + 1] == lastIndex + 1)){
-				i++;
-				lastIndex++;
-			}
-			
-			NSRect thisRect = NSUnionRect([self rectOfRow:startIndex],
-										  [self rectOfRow:lastIndex]);
-			[gradient drawInRect:thisRect angle:90.0];
-			
-			//Draw a line at the light side, to make it look a lot cleaner
-			thisRect.size.height = 1;
-			selectionLineRects[j++] = thisRect;			
-			
-			i++;		
-		}
-		
-		[[NSColor alternateSelectedControlColor] set];
-		NSRectFillListUsingOperation(selectionLineRects, j, NSCompositeSourceOver);
-		
-		free(buf);
-		free(selectionLineRects);
-		
-	} else {
-		[super highlightSelectionInClipRect:clipRect];
-	}
-}
-
-//Override to prevent drawing glitches; otherwise, the cell will try to draw a highlight, too
-- (id)_highlightColorForCell:(NSCell *)cell
-{
-	if (drawsGradientSelection && [[self window] isKeyWindow] && ([[self window] firstResponder] == self)) {
-		return nil;
-	} else {
-		return [super _highlightColorForCell:cell];
-	}
-}
-
-- (void)alternatingRowTableViewSelectionDidChange:(NSNotification *)notification
-{
-	if (drawsGradientSelection) {
-		//We do fancy drawing, so we need a full redisplay when selection changes
-		[self setNeedsDisplay:YES];
-	}
-}
-
 @end
diff -r d30703953cf5 -r 4eb82de44d87 Frameworks/AIUtilities Framework/Source/AITableViewAdditions.h
--- a/Frameworks/AIUtilities Framework/Source/AITableViewAdditions.h	Mon Apr 27 23:52:39 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AITableViewAdditions.h	Tue Apr 28 01:31:08 2009 -0700
@@ -17,3 +17,9 @@
 - (NSArray *)arrayOfSelectedItemsUsingSourceArray:(NSArray *)sourceArray;
 - (void)selectItemsInArray:(NSArray *)selectedItems usingSourceArray:(NSArray *)sourceArray;
 @end
+
+ at protocol AITableViewDelegate
+ at optional
+- (void)tableViewDeleteSelectedRows:(NSTableView *)tableView;
+- (NSMenu *)tableView:(NSTableView *)inTableView menuForEvent:(NSEvent *)theEvent;
+ at end
diff -r d30703953cf5 -r 4eb82de44d87 Frameworks/AIUtilities Framework/Source/AITableViewAdditions.m
--- a/Frameworks/AIUtilities Framework/Source/AITableViewAdditions.m	Mon Apr 27 23:52:39 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AITableViewAdditions.m	Tue Apr 28 01:31:08 2009 -0700
@@ -15,6 +15,7 @@
 
 #import "AITableViewAdditions.h"
 #import "AIApplicationAdditions.h"
+#import <objc/objc-class.h>
 
 @implementation NSTableView (AITableViewAdditions)
 
@@ -68,3 +69,51 @@
 }
 
 @end
+
+ at interface AITableView : NSTableView {}
+ at end
+
+ at implementation AITableView
+
+/* 
+ * @brief Load
+ *
+ * Install ourself to intercept keyDown: calls so we can stick our delete handling in, and menuForEvent: calls so we can ask our delegate
+ */
++ (void)load
+{
+	//Anything you can do, I can do better...
+	method_exchangeImplementations(class_getInstanceMethod([NSTableView class], @selector(keyDown:)), class_getInstanceMethod(self, @selector(keyDown:)));
+	
+	method_exchangeImplementations(class_getInstanceMethod([NSTableView class], @selector(menuForEvent:)), class_getInstanceMethod(self, @selector(menuForEvent:)));
+}
+
+//Filter keydowns looking for the delete key (to delete the current selection)
+- (void)keyDown:(NSEvent *)theEvent
+{
+	NSString	*charString = [theEvent charactersIgnoringModifiers];
+	unichar		pressedChar = 0;
+
+	//Get the pressed character
+	if ([charString length] == 1) pressedChar = [charString characterAtIndex:0];
+
+	//Check if 'delete' was pressed
+	if (pressedChar == NSDeleteFunctionKey || pressedChar == NSBackspaceCharacter || pressedChar == NSDeleteCharacter) { //Delete
+		if ([[self delegate] respondsToSelector:@selector(tableViewDeleteSelectedRows:)])
+			[[self delegate] tableViewDeleteSelectedRows:self]; //Delete the selection
+	} else {
+		//Pass the key event on to the unswizzled impl
+		method_invoke(self, class_getInstanceMethod([AITableView class], @selector(keyDown:)), theEvent);
+	}
+}
+
+//Allow our delegate to specify context menus
+- (NSMenu *)menuForEvent:(NSEvent *)theEvent
+{
+	if ([[self delegate] respondsToSelector:@selector(tableView:menuForEvent:)])
+		return [(id<AITableViewDelegate>)[self delegate] tableView:self menuForEvent:theEvent];
+        
+	return method_invoke(self, class_getInstanceMethod([AITableView class], @selector(menuForEvent:)), theEvent);
+}
+
+ at end
diff -r d30703953cf5 -r 4eb82de44d87 Frameworks/Adium Framework/Resources/PresetManagement.nib/classes.nib
--- a/Frameworks/Adium Framework/Resources/PresetManagement.nib/classes.nib	Mon Apr 27 23:52:39 2009 -0700
+++ b/Frameworks/Adium Framework/Resources/PresetManagement.nib/classes.nib	Tue Apr 28 01:31:08 2009 -0700
@@ -1,99 +1,245 @@
-{
-    IBClasses =     (
-                {
-            CLASS = AIAlternatingRowTableView;
-            LANGUAGE = ObjC;
-            SUPERCLASS = NSTableView;
-        },
-                {
-            CLASS = AIAutoScrollView;
-            LANGUAGE = ObjC;
-            SUPERCLASS = NSScrollView;
-        },
-                {
-            CLASS = AILocalizationButton;
-            LANGUAGE = ObjC;
-            OUTLETS =             {
-                "view_anchorToLeftSide" = NSView;
-                "view_anchorToRightSide" = NSView;
-                "window_anchorOnLeftSide" = NSWindow;
-                "window_anchorOnRightSide" = NSWindow;
-            };
-            SUPERCLASS = NSButton;
-        },
-                {
-            CLASS = AILocalizationTextField;
-            LANGUAGE = ObjC;
-            OUTLETS =             {
-                "view_anchorToLeftSide" = NSView;
-                "view_anchorToRightSide" = NSView;
-                "window_anchorOnLeftSide" = NSWindow;
-                "window_anchorOnRightSide" = NSWindow;
-            };
-            SUPERCLASS = NSTextField;
-        },
-                {
-            ACTIONS =             {
-                sendContent = id;
-            };
-            CLASS = AISendingTextView;
-            LANGUAGE = ObjC;
-            OUTLETS =             {
-                target = id;
-            };
-            SUPERCLASS = NSTextView;
-        },
-                {
-            CLASS = AISmartStepper;
-            LANGUAGE = ObjC;
-            SUPERCLASS = NSStepper;
-        },
-                {
-            ACTIONS =             {
-                closeWindow = id;
-            };
-            CLASS = AIWindowController;
-            LANGUAGE = ObjC;
-            SUPERCLASS = NSWindowController;
-        },
-                {
-            ACTIONS =             {
-                deletePreset = id;
-                duplicatePreset = id;
-                renamePreset = id;
-            };
-            CLASS = ESPresetManagementController;
-            LANGUAGE = ObjC;
-            OUTLETS =             {
-                "button_delete" = NSButton;
-                "button_done" = NSButton;
-                "button_duplicate" = NSButton;
-                "button_rename" = NSButton;
-                delegate = id;
-                "label_editPresets" = NSTextField;
-                "tableView_presets" = NSTableView;
-            };
-            SUPERCLASS = AIWindowController;
-        },
-                {
-            CLASS = FirstResponder;
-            LANGUAGE = ObjC;
-            SUPERCLASS = NSObject;
-        },
-                {
-            CLASS = NSButton;
-            LANGUAGE = ObjC;
-            SUPERCLASS = NSControl;
-        },
-                {
-            CLASS = NSObject;
-            LANGUAGE = ObjC;
-        },
-                {
-            CLASS = NSTextField;
-            LANGUAGE = ObjC;
-            SUPERCLASS = NSControl;
-        }
-    );
-    IBVersion = 1;
-}
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IBClasses</key>
+	<array>
+		<dict>
+			<key>CLASS</key>
+			<string>NSApplication</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSResponder</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>RBSplitView</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>OUTLETS</key>
+			<dict>
+				<key>delegate</key>
+				<string>id</string>
+			</dict>
+			<key>SUPERCLASS</key>
+			<string>RBSplitSubview</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSTextField</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSControl</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>RBSplitSubview</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSView</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSMenu</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSObject</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSWindowController</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSResponder</string>
+		</dict>
+		<dict>
+			<key>ACTIONS</key>
+			<dict>
+				<key>adiumPrint</key>
+				<string>id</string>
+				<key>didAdjustSubviews</key>
+				<string>RBSplitView</string>
+				<key>prefsWindowWillClose</key>
+				<string>SS_PrefsController</string>
+				<key>toggleFindPanel</key>
+				<string>id</string>
+				<key>willAdjustSubviews</key>
+				<string>RBSplitView</string>
+			</dict>
+			<key>CLASS</key>
+			<string>NSObject</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>AILocalizationButton</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>OUTLETS</key>
+			<dict>
+				<key>view_anchorToLeftSide</key>
+				<string>NSView</string>
+				<key>view_anchorToRightSide</key>
+				<string>NSView</string>
+				<key>window_anchorOnLeftSide</key>
+				<string>NSWindow</string>
+				<key>window_anchorOnRightSide</key>
+				<string>NSWindow</string>
+			</dict>
+			<key>SUPERCLASS</key>
+			<string>NSButton</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSWindow</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSResponder</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSScrollView</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSView</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSView</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSResponder</string>
+		</dict>
+		<dict>
+			<key>ACTIONS</key>
+			<dict>
+				<key>deletePreset</key>
+				<string>id</string>
+				<key>duplicatePreset</key>
+				<string>id</string>
+				<key>renamePreset</key>
+				<string>id</string>
+			</dict>
+			<key>CLASS</key>
+			<string>ESPresetManagementController</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>OUTLETS</key>
+			<dict>
+				<key>button_delete</key>
+				<string>AILocalizationButton</string>
+				<key>button_done</key>
+				<string>AILocalizationButton</string>
+				<key>button_duplicate</key>
+				<string>AILocalizationButton</string>
+				<key>button_rename</key>
+				<string>AILocalizationButton</string>
+				<key>delegate</key>
+				<string>id</string>
+				<key>label_editPresets</key>
+				<string>NSTextField</string>
+				<key>tableView_presets</key>
+				<string>NSTableView</string>
+			</dict>
+			<key>SUPERCLASS</key>
+			<string>AIWindowController</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>FirstResponder</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSObject</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSCell</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSObject</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSButton</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSControl</string>
+		</dict>
+		<dict>
+			<key>ACTIONS</key>
+			<dict>
+				<key>closeWindow</key>
+				<string>id</string>
+			</dict>
+			<key>CLASS</key>
+			<string>AIWindowController</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSWindowController</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>AILocalizationTextField</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>OUTLETS</key>
+			<dict>
+				<key>view_anchorToLeftSide</key>
+				<string>NSView</string>
+				<key>view_anchorToRightSide</key>
+				<string>NSView</string>
+				<key>window_anchorOnLeftSide</key>
+				<string>NSWindow</string>
+				<key>window_anchorOnRightSide</key>
+				<string>NSWindow</string>
+			</dict>
+			<key>SUPERCLASS</key>
+			<string>NSTextField</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSButtonCell</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSActionCell</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>SS_PrefsController</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>OUTLETS</key>
+			<dict>
+				<key>delegate</key>
+				<string>id</string>
+			</dict>
+			<key>SUPERCLASS</key>
+			<string>NSObject</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSTableView</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSControl</string>
+		</dict>
+	</array>
+	<key>IBVersion</key>
+	<string>1</string>
+</dict>
+</plist>
diff -r d30703953cf5 -r 4eb82de44d87 Frameworks/Adium Framework/Resources/PresetManagement.nib/info.nib
--- a/Frameworks/Adium Framework/Resources/PresetManagement.nib/info.nib	Mon Apr 27 23:52:39 2009 -0700
+++ b/Frameworks/Adium Framework/Resources/PresetManagement.nib/info.nib	Tue Apr 28 01:31:08 2009 -0700
@@ -2,17 +2,19 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
-	<key>IBDocumentLocation</key>
-	<string>81 124 356 240 0 0 1440 878 </string>
 	<key>IBFramework Version</key>
-	<string>482.0</string>
+	<string>677</string>
+	<key>IBLastKnownRelativeProjectPath</key>
+	<string>../../../Adium.xcodeproj</string>
+	<key>IBOldestOS</key>
+	<integer>5</integer>
 	<key>IBOpenObjects</key>
 	<array>
-		<integer>9</integer>
+		<integer>6</integer>
 	</array>
 	<key>IBSystem Version</key>
-	<string>9B18</string>
-	<key>IBUsesTextArchiving</key>
-	<true/>
+	<string>9G55</string>
+	<key>targetFramework</key>
+	<string>IBCocoaFramework</string>
 </dict>
 </plist>
diff -r d30703953cf5 -r 4eb82de44d87 Frameworks/Adium Framework/Resources/PresetManagement.nib/keyedobjects.nib
Binary file Frameworks/Adium Framework/Resources/PresetManagement.nib/keyedobjects.nib has changed
diff -r d30703953cf5 -r 4eb82de44d87 Frameworks/Adium Framework/Source/ESContactAlertsViewController.m
--- a/Frameworks/Adium Framework/Source/ESContactAlertsViewController.m	Mon Apr 27 23:52:39 2009 -0700
+++ b/Frameworks/Adium Framework/Source/ESContactAlertsViewController.m	Tue Apr 28 01:31:08 2009 -0700
@@ -20,7 +20,6 @@
 #import <Adium/CSNewContactAlertWindowController.h>
 #import <Adium/AIContactAlertsControllerProtocol.h>
 #import <Adium/ESContactAlertsViewController.h>
-#import <AIUtilities/AIAlternatingRowTableView.h>
 #import <AIUtilities/AIAutoScrollView.h>
 #import <AIUtilities/AIImageTextCell.h>
 #import <AIUtilities/AIImageAdditions.h>
diff -r d30703953cf5 -r 4eb82de44d87 Plugins/Emoticons/AIEmoticonPackPreviewTableView.m
--- a/Plugins/Emoticons/AIEmoticonPackPreviewTableView.m	Mon Apr 27 23:52:39 2009 -0700
+++ b/Plugins/Emoticons/AIEmoticonPackPreviewTableView.m	Tue Apr 28 01:31:08 2009 -0700
@@ -24,7 +24,7 @@
  * @class AIEmoticonPackPreviewTableView
  * @brief Table view subclass for the emoticon pack preview
  *
- * This AIAlternatingRowTableView subclass draws images for AIGenericViewCell-using columns.  It only draws the image
+ * This NSTableView subclass draws images for AIGenericViewCell-using columns.  It only draws the image
  * for the first column so is not suitable for general use.
  */
 @implementation AIEmoticonPackPreviewTableView
diff -r d30703953cf5 -r 4eb82de44d87 Plugins/Emoticons/AIEmoticonPreferences.h
--- a/Plugins/Emoticons/AIEmoticonPreferences.h	Mon Apr 27 23:52:39 2009 -0700
+++ b/Plugins/Emoticons/AIEmoticonPreferences.h	Tue Apr 28 01:31:08 2009 -0700
@@ -14,29 +14,28 @@
  * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-#import <AIUtilities/AIAlternatingRowTableView.h>
 #import <AIUtilities/AIFileManagerAdditions.h>
 #import <AIUtilities/AIParagraphStyleAdditions.h>
 #import <Adium/AIWindowController.h>
 
- at class AIEmoticonPack, AIAlternatingRowTableView;
+ at class AIEmoticonPack;
 
 @interface AIEmoticonPreferences : AIWindowController
 {
-    IBOutlet    AIAlternatingRowTableView   *table_emoticonPacks;
-    NSMutableArray							*emoticonPackPreviewControllers;
+	IBOutlet    NSTableView		*table_emoticonPacks;
+	NSMutableArray								*emoticonPackPreviewControllers;
 
-	IBOutlet    AIAlternatingRowTableView   *table_emoticons;
-    IBOutlet    NSTextField                 *textField_packTitle;
-	IBOutlet	NSButton					*button_OK;
+	IBOutlet    NSTableView		*table_emoticons;
+	IBOutlet    NSTextField		*textField_packTitle;
+	IBOutlet			NSButton				*button_OK;
 		
-    NSButtonCell                            *checkCell;
-    AIEmoticonPack                          *selectedEmoticonPack;
-	NSMutableDictionary						*emoticonImageCache;
+	NSButtonCell									*checkCell;
+	AIEmoticonPack								*selectedEmoticonPack;
+	NSMutableDictionary					*emoticonImageCache;
 
-    NSArray                                 *dragRows;
+	NSArray													*dragRows;
 	
-	BOOL									viewIsOpen;
+	BOOL															viewIsOpen;
 }
 
 + (void)showEmoticionCustomizationOnWindow:(NSWindow *)parentWindow;
diff -r d30703953cf5 -r 4eb82de44d87 Plugins/Emoticons/AIEmoticonPreferences.m
--- a/Plugins/Emoticons/AIEmoticonPreferences.m	Mon Apr 27 23:52:39 2009 -0700
+++ b/Plugins/Emoticons/AIEmoticonPreferences.m	Tue Apr 28 01:31:08 2009 -0700
@@ -20,7 +20,6 @@
 #import "AIEmoticonPackPreviewView.h"
 #import "AIEmoticonPreferences.h"
 #import "AIEmoticonController.h"
-#import <AIUtilities/AIAlternatingRowTableView.h>
 #import <AIUtilities/AITableViewAdditions.h>
 #import <AIUtilities/AIGenericViewCell.h>
 #import <AIUtilities/AIImageAdditions.h>
@@ -72,8 +71,8 @@
 //- (void)viewDidLoad
 - (void)windowDidLoad
 {
-    //Pack table
-    [table_emoticonPacks registerForDraggedTypes:[NSArray arrayWithObject:EMOTICON_PACK_DRAG_TYPE]];
+	//Pack table
+	[table_emoticonPacks registerForDraggedTypes:[NSArray arrayWithObject:EMOTICON_PACK_DRAG_TYPE]];
 	
 	//Configure the outline view
 	[[table_emoticonPacks tableColumnWithIdentifier:@"Emoticons"] setDataCell:[[[AIGenericViewCell alloc] init] autorelease]];
@@ -85,12 +84,12 @@
 
     //Emoticons table
 	selectedEmoticonPack = nil;
-    checkCell = [[NSButtonCell alloc] init];
-    [checkCell setButtonType:NSSwitchButton];
-    [checkCell setControlSize:NSSmallControlSize];
-    [checkCell setTitle:@""];
-    [checkCell setRefusesFirstResponder:YES];
-    [[table_emoticons tableColumnWithIdentifier:@"Enabled"] setDataCell:checkCell];
+	checkCell = [[NSButtonCell alloc] init];
+	[checkCell setButtonType:NSSwitchButton];
+	[checkCell setControlSize:NSSmallControlSize];
+	[checkCell setTitle:@""];
+	[checkCell setRefusesFirstResponder:YES];
+	[[table_emoticons tableColumnWithIdentifier:@"Enabled"] setDataCell:checkCell];
 	[checkCell release];
 
 	NSImageCell *imageCell = [[NSImageCell alloc] initImageCell:nil];
diff -r d30703953cf5 -r 4eb82de44d87 Resources/AIURLHandlerPreferences.nib/designable.nib
--- a/Resources/AIURLHandlerPreferences.nib/designable.nib	Mon Apr 27 23:52:39 2009 -0700
+++ b/Resources/AIURLHandlerPreferences.nib/designable.nib	Tue Apr 28 01:31:08 2009 -0700
@@ -536,7 +536,6 @@
 					<string>2.IBPluginDependency</string>
 					<string>3.IBPluginDependency</string>
 					<string>4.IBPluginDependency</string>
-					<string>5.CustomClassName</string>
 					<string>5.IBPluginDependency</string>
 					<string>7.IBPluginDependency</string>
 					<string>8.IBPluginDependency</string>
@@ -546,7 +545,7 @@
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>{{363, 582}, {313, 242}}</string>
+					<string>{{363, 514}, {313, 242}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>{628, 654}</string>
 					<string>{{357, 416}, {480, 272}}</string>
@@ -564,7 +563,6 @@
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>AIAlternatingRowTableView</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -681,7 +679,7 @@
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>NSButton</string>
 							<string>NSButton</string>
-							<string>AIAlternatingRowTableView</string>
+							<string>NSTableView</string>
 						</object>
 					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
@@ -690,6 +688,13 @@
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">NSApplication</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIApplicationAdditions.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">NSButton</string>
 					<reference key="sourceIdentifier" ref="645096056"/>
 				</object>
@@ -701,6 +706,77 @@
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">NSCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="101605010">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIVariableHeightOutlineView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMenu</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="277229290">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIMenuAdditions.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMenuItem</string>
+					<reference key="sourceIdentifier" ref="277229290"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIDividedAlternatingRowOutlineView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIMultiCellOutlineView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIObjectAdditions.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIToolbarTabView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIToolbarUtilities.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIVariableHeightFlexibleColumnsOutlineView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<reference key="sourceIdentifier" ref="101605010"/>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">NSObject</string>
 					<object class="NSMutableDictionary" key="actions">
 						<string key="NS.key.0">toggleFindPanel:</string>
@@ -943,10 +1019,38 @@
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">NSPopUpButtonCell</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIPopUpButtonAdditions.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSScrollView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIScrollViewAdditions.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTableView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AITableViewAdditions.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIViewAdditions.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">NSWindow</string>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">Plugins/Nudge and Buzz Handler/AWRippler.h</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIWindowAdditions.h</string>
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
diff -r d30703953cf5 -r 4eb82de44d87 Resources/AIURLHandlerPreferences.nib/keyedobjects.nib
Binary file Resources/AIURLHandlerPreferences.nib/keyedobjects.nib has changed
diff -r d30703953cf5 -r 4eb82de44d87 Resources/XtrasManager.nib/classes.nib
--- a/Resources/XtrasManager.nib/classes.nib	Mon Apr 27 23:52:39 2009 -0700
+++ b/Resources/XtrasManager.nib/classes.nib	Tue Apr 28 01:31:08 2009 -0700
@@ -1,61 +1,220 @@
-{
-    IBClasses = (
-        {
-            CLASS = AIAlternatingRowTableView; 
-            LANGUAGE = ObjC; 
-            SUPERCLASS = NSTableView; 
-        }, 
-        {CLASS = AIGradientCell; LANGUAGE = ObjC; SUPERCLASS = NSCell; }, 
-        {CLASS = AIImageTextCell; LANGUAGE = ObjC; SUPERCLASS = AIGradientCell; }, 
-        {
-            CLASS = AILocalizationButton; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                "view_anchorToLeftSide" = NSView; 
-                "view_anchorToRightSide" = NSView; 
-                "window_anchorOnLeftSide" = NSWindow; 
-                "window_anchorOnRightSide" = NSWindow; 
-            }; 
-            SUPERCLASS = NSButton; 
-        }, 
-        {CLASS = AIObject; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {CLASS = AIPlugin; LANGUAGE = ObjC; SUPERCLASS = AIObject; }, 
-        {CLASS = AIXtraInfo; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {
-            ACTIONS = {
-                browseXtras = id; 
-                checkForUpdates = id; 
-                deleteXtra = id; 
-                setCategory = id; 
-                setShowsInfo = id; 
-            }; 
-            CLASS = AIXtrasManager; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                infoView = NSTextView; 
-                previewContainerView = NSScrollView; 
-                previewController = id; 
-                readmeView = NSView; 
-                showInfoControl = NSSegmentedControl; 
-                "tableView_categories" = AIAlternatingRowTableView; 
-                "view_content" = NSView; 
-                "view_shelf" = NSView; 
-                window = NSWindow; 
-                xtraList = NSTableView; 
-            }; 
-            SUPERCLASS = AIPlugin; 
-        }, 
-        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {
-            ACTIONS = {toggleShelf = id; }; 
-            CLASS = KNShelfSplitView; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {contentView = NSView; delegate = id; shelfView = NSView; target = id; }; 
-            SUPERCLASS = NSView; 
-        }, 
-        {CLASS = NSButton; LANGUAGE = ObjC; SUPERCLASS = NSControl; }, 




More information about the Commits mailing list