[Adium-commits] adium 2015:1679180a5b2d: Add tooltips for closed groups. Fixes #...

adium-commits at adiumx.com adium-commits at adiumx.com
Tue Apr 28 09:54:41 UTC 2009


details:	http://hg.adiumx.com/adium/rev/1679180a5b2d
revision:	2015:1679180a5b2d
author:		Colin Barrett <colin at springsandstruts.com>
date:		Tue Apr 28 02:49:55 2009 -0700

Add tooltips for closed groups. Fixes #11951
Subject: adium 2016:460e4914297f: Merge.

details:	http://hg.adiumx.com/adium/rev/460e4914297f
revision:	2016:460e4914297f
author:		Colin Barrett <colin at springsandstruts.com>
date:		Tue Apr 28 02:54:34 2009 -0700

Merge.

diffstat:

 Adium.xcodeproj/project.pbxproj                                            |   12 +-
 Frameworks/AIUtilities Framework/Source/AIAlternatingRowOutlineView.h      |   10 +-
 Frameworks/AIUtilities Framework/Source/AIAlternatingRowOutlineView.m      |   17 +-
 Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.h        |   16 -
 Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.m        |  168 ----
 Frameworks/AIUtilities Framework/Source/AITableViewAdditions.h             |    6 +
 Frameworks/AIUtilities Framework/Source/AITableViewAdditions.m             |   49 +
 Frameworks/AIUtilities Framework/Source/AIVariableHeightOutlineView.m      |    2 +-
 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/AIAbstractListController.m               |    4 +-
 Frameworks/Adium Framework/Source/AIListCell.m                             |    2 +-
 Frameworks/Adium Framework/Source/ESContactAlertsViewController.m          |    3 +-
 Frameworks/Adium Framework/Source/ESDebugAILog.h                           |    4 +-
 Plugins/Emoticons/AIEmoticonPackPreviewTableView.h                         |    4 +-
 Plugins/Emoticons/AIEmoticonPackPreviewTableView.m                         |    2 +-
 Plugins/Emoticons/AIEmoticonPreferences.h                                  |   23 +-
 Plugins/Emoticons/AIEmoticonPreferences.m                                  |   18 +-
 Plugins/Emoticons/EmoticonPrefs.nib/classes.nib                            |  300 ++++++--
 Plugins/Emoticons/EmoticonPrefs.nib/info.nib                               |   18 +-
 Plugins/Emoticons/EmoticonPrefs.nib/keyedobjects.nib                       |      
 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                                |      
 Resources/en.lproj/AIAdvancedInspectorPane.nib/classes.nib                 |   54 +-
 Resources/en.lproj/AIAdvancedInspectorPane.nib/keyedobjects.nib            |      
 Source/AIAdvancedInspectorPane.h                                           |    4 +-
 Source/AIAdvancedInspectorPane.m                                           |    2 -
 Source/AIAdvancedPreferences.h                                             |    4 +-
 Source/AIAdvancedPreferences.m                                             |   22 +-
 Source/AIListObjectContentsPlugin.h                                        |   23 +
 Source/AIListObjectContentsPlugin.m                                        |  258 +++++++
 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                            |    3 +-
 Source/ESMetaContactContentsPlugin.h                                       |   23 -
 Source/ESMetaContactContentsPlugin.m                                       |  235 ------
 Source/RAFBlockEditorWindowController.h                                    |    1 -
 47 files changed, 1273 insertions(+), 825 deletions(-)

diffs (truncated from 2771 to 1000 lines):

diff -r 866b6f19c9f3 -r 460e4914297f Adium.xcodeproj/project.pbxproj
--- a/Adium.xcodeproj/project.pbxproj	Mon Apr 27 22:20:35 2009 -0700
+++ b/Adium.xcodeproj/project.pbxproj	Tue Apr 28 02:54:34 2009 -0700
@@ -416,7 +416,7 @@
 		347E7AAA07CAF8EE00350507 /* SAContactOnlineForPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 347E7AA807CAF8EE00350507 /* SAContactOnlineForPlugin.m */; };
 		347E7AB307CAF93700350507 /* AIContactOnlineSincePlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 347E7AB107CAF93700350507 /* AIContactOnlineSincePlugin.m */; };
 		347E7ABC07CAF94A00350507 /* ESContactServersideDisplayName.m in Sources */ = {isa = PBXBuildFile; fileRef = 347E7ABA07CAF94A00350507 /* ESContactServersideDisplayName.m */; };
-		347E7ACF07CAF98500350507 /* ESMetaContactContentsPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 347E7ACD07CAF98400350507 /* ESMetaContactContentsPlugin.m */; };
+		347E7ACF07CAF98500350507 /* AIListObjectContentsPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 347E7ACD07CAF98400350507 /* AIListObjectContentsPlugin.m */; };
 		347EAB2D09721D490090EA6E /* pref-personal.png in Resources */ = {isa = PBXBuildFile; fileRef = 347EAB2C09721D490090EA6E /* pref-personal.png */; };
 		347F4B810D340F16006D5A56 /* AIPreferenceContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 347F4B800D340F16006D5A56 /* AIPreferenceContainer.m */; };
 		3482E0F50AB5064E00471992 /* AIAdiumProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 3482E0EB0AB5063300471992 /* AIAdiumProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -3046,8 +3046,8 @@
 		347E7AB207CAF93700350507 /* AIContactOnlineSincePlugin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AIContactOnlineSincePlugin.h; path = Source/AIContactOnlineSincePlugin.h; sourceTree = "<group>"; };
 		347E7AB907CAF94A00350507 /* ESContactServersideDisplayName.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ESContactServersideDisplayName.h; path = Source/ESContactServersideDisplayName.h; sourceTree = "<group>"; };
 		347E7ABA07CAF94A00350507 /* ESContactServersideDisplayName.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = ESContactServersideDisplayName.m; path = Source/ESContactServersideDisplayName.m; sourceTree = "<group>"; };
-		347E7ACD07CAF98400350507 /* ESMetaContactContentsPlugin.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = ESMetaContactContentsPlugin.m; path = Source/ESMetaContactContentsPlugin.m; sourceTree = "<group>"; };
-		347E7ACE07CAF98500350507 /* ESMetaContactContentsPlugin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ESMetaContactContentsPlugin.h; path = Source/ESMetaContactContentsPlugin.h; sourceTree = "<group>"; };
+		347E7ACD07CAF98400350507 /* AIListObjectContentsPlugin.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = AIListObjectContentsPlugin.m; path = Source/AIListObjectContentsPlugin.m; sourceTree = "<group>"; };
+		347E7ACE07CAF98500350507 /* AIListObjectContentsPlugin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AIListObjectContentsPlugin.h; path = Source/AIListObjectContentsPlugin.h; sourceTree = "<group>"; };
 		347EAB2C09721D490090EA6E /* pref-personal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "pref-personal.png"; path = "Resources/pref-personal.png"; sourceTree = "<group>"; };
 		347F4B7F0D340F16006D5A56 /* AIPreferenceContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIPreferenceContainer.h; path = Source/AIPreferenceContainer.h; sourceTree = "<group>"; };
 		347F4B800D340F16006D5A56 /* AIPreferenceContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIPreferenceContainer.m; path = Source/AIPreferenceContainer.m; sourceTree = "<group>"; };
@@ -5637,8 +5637,8 @@
 				347E7A9407CAF8AE00350507 /* ESContactClientPlugin.m */,
 				347E7AB907CAF94A00350507 /* ESContactServersideDisplayName.h */,
 				347E7ABA07CAF94A00350507 /* ESContactServersideDisplayName.m */,
-				347E7ACE07CAF98500350507 /* ESMetaContactContentsPlugin.h */,
-				347E7ACD07CAF98400350507 /* ESMetaContactContentsPlugin.m */,
+				347E7ACE07CAF98500350507 /* AIListObjectContentsPlugin.h */,
+				347E7ACD07CAF98400350507 /* AIListObjectContentsPlugin.m */,
 				347E7AA907CAF8EE00350507 /* SAContactOnlineForPlugin.h */,
 				347E7AA807CAF8EE00350507 /* SAContactOnlineForPlugin.m */,
 				112B49080F82FB1700690E84 /* AIGroupChatStatusTooltipPlugin.h */,
@@ -10182,7 +10182,7 @@
 				347E7AAA07CAF8EE00350507 /* SAContactOnlineForPlugin.m in Sources */,
 				347E7AB307CAF93700350507 /* AIContactOnlineSincePlugin.m in Sources */,
 				347E7ABC07CAF94A00350507 /* ESContactServersideDisplayName.m in Sources */,
-				347E7ACF07CAF98500350507 /* ESMetaContactContentsPlugin.m in Sources */,
+				347E7ACF07CAF98500350507 /* AIListObjectContentsPlugin.m in Sources */,
 				074DDB5D07CB413F0033AFF7 /* CBContactLastSeenPlugin.m in Sources */,
 				34D8333B07CBD758006466F2 /* ESApplescriptContactAlertPlugin.m in Sources */,
 				34D8333C07CBD758006466F2 /* ESPanelApplescriptDetailPane.m in Sources */,
diff -r 866b6f19c9f3 -r 460e4914297f Frameworks/AIUtilities Framework/Source/AIAlternatingRowOutlineView.h
--- a/Frameworks/AIUtilities Framework/Source/AIAlternatingRowOutlineView.h	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AIAlternatingRowOutlineView.h	Tue Apr 28 02:54:34 2009 -0700
@@ -24,22 +24,14 @@
 @interface AIAlternatingRowOutlineView : AIOutlineView {
 	NSColor		*alternatingRowColor;
 	
-	BOOL		drawsAlternatingRows;
 	BOOL		drawsBackground;
 	BOOL		drawsGradientSelection;
 }
 
 /*!
- * @brief Whether the outline view draws a grid, alternating by rows.
- *
- * The grid will be drawn alternating between the background color and the color specified by setAlternatingRowColor:, which has a sane, light blue default.
- */
- at property (readwrite, nonatomic) BOOL drawsAlternatingRows;
-
-/*!
  * @brief The color used for drawing alternating row backgrounds.
  *
- * Ignored if drawsAlternatingRows is NO.
+ * Ignored if usesAlternatingRowBackgroundColors is NO.
  */
 @property (readwrite, nonatomic, retain) NSColor *alternatingRowColor;
 
diff -r 866b6f19c9f3 -r 460e4914297f Frameworks/AIUtilities Framework/Source/AIAlternatingRowOutlineView.m
--- a/Frameworks/AIUtilities Framework/Source/AIAlternatingRowOutlineView.m	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AIAlternatingRowOutlineView.m	Tue Apr 28 02:54:34 2009 -0700
@@ -55,7 +55,7 @@
 
 - (void)initAlternatingRowOutlineView
 {
-	drawsAlternatingRows = NO;
+	[self setUsesAlternatingRowBackgroundColors:NO];
 	drawsBackground = YES;
 	drawsGradientSelection = NO;
 	alternatingRowColor = [[NSColor colorWithCalibratedRed:(237.0/255.0) green:(243.0/255.0) blue:(254.0/255.0) alpha:1.0] retain];
@@ -76,15 +76,6 @@
 
 
 //Configuring ----------------------------------------------------------------------
-//Toggle the drawing of alternating rows
-- (void)setDrawsAlternatingRows:(BOOL)flag
-{
-	drawsAlternatingRows = flag;
-	[self setNeedsDisplay:YES];
-}
-- (BOOL)drawsAlternatingRows{
-	return drawsAlternatingRows;
-}
 
 - (void)setDrawsGradientSelection:(BOOL)inDrawsGradientSelection
 {
@@ -132,7 +123,7 @@
 //Draw the alternating colors and grid below the "bottom" of the outlineview
 - (void)drawAlternatingRowsInRect:(NSRect)rect
 {
-	if (!drawsBackground || !drawsAlternatingRows) 
+	if (!drawsBackground || ![self usesAlternatingRowBackgroundColors]) 
 	    return;
 
 	unsigned	rectNumber = 0;
@@ -163,7 +154,7 @@
 {
 	[super drawRect:rect];
 
-	if (drawsBackground && drawsAlternatingRows && [self gridStyleMask] != NSTableViewGridNone) {
+	if (drawsBackground && [self usesAlternatingRowBackgroundColors] && [self gridStyleMask] != NSTableViewGridNone) {
 		[self _drawGridInClipRect:rect];
 	}
 }
@@ -250,7 +241,7 @@
 
 - (void)drawGridInClipRect:(NSRect)rect
 {
-    if (drawsBackground && drawsAlternatingRows) {
+    if (drawsBackground && [self usesAlternatingRowBackgroundColors]) {
 		//We do our grid drawing later
 	} else {
 		[super drawGridInClipRect:rect];
diff -r 866b6f19c9f3 -r 460e4914297f Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.h
--- a/Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.h	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.h	Tue Apr 28 02:54:34 2009 -0700
@@ -15,27 +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	acceptsFirstMouse;
-	BOOL	drawsGradientSelection;
 }
 
- at property (readwrite, nonatomic) BOOL acceptsFirstMouse;
-
- 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 866b6f19c9f3 -r 460e4914297f Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.m
--- a/Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.m	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AIAlternatingRowTableView.m	Tue Apr 28 02:54:34 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,156 +27,7 @@
 - (id)initWithFrame:(NSRect)frameRect
 {
 	if ((self = [super initWithFrame:frameRect])) {
-		[self _initAlternatingRowTableView];
 	}
 	return self;
 }
-
-- (void)_initAlternatingRowTableView
-{
-	self.acceptsFirstMouse = NO;
-	[[NSNotificationCenter defaultCenter] addObserver:self
-											 selector:@selector(alternatingRowTableViewSelectionDidChange:)
-												 name:NSTableViewSelectionDidChangeNotification
-											   object:self];	
-}
-
-- (void)dealloc
-{
-    [[NSNotificationCenter defaultCenter] removeObserver:self];
-
-    [super dealloc];
-}
-
-
-//Configuring ----------------------------------------------------------------------
-- (void)setDrawsAlternatingRows:(BOOL)flag
-{
-	[self setUsesAlternatingRowBackgroundColors:flag];
-
-    [self setNeedsDisplay:YES];
-}
-
-//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;
-}
-
-// First mouse ----------------------------------------------------------------------
- at synthesize acceptsFirstMouse;
-
-- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent
-{
-	return self.acceptsFirstMouse;
-}
-
-//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 866b6f19c9f3 -r 460e4914297f Frameworks/AIUtilities Framework/Source/AITableViewAdditions.h
--- a/Frameworks/AIUtilities Framework/Source/AITableViewAdditions.h	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AITableViewAdditions.h	Tue Apr 28 02:54:34 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 866b6f19c9f3 -r 460e4914297f Frameworks/AIUtilities Framework/Source/AITableViewAdditions.m
--- a/Frameworks/AIUtilities Framework/Source/AITableViewAdditions.m	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AITableViewAdditions.m	Tue Apr 28 02:54:34 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 866b6f19c9f3 -r 460e4914297f Frameworks/AIUtilities Framework/Source/AIVariableHeightOutlineView.m
--- a/Frameworks/AIUtilities Framework/Source/AIVariableHeightOutlineView.m	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AIVariableHeightOutlineView.m	Tue Apr 28 02:54:34 2009 -0700
@@ -202,7 +202,7 @@
 	/* Draw the alternating rows.  If we draw alternating rows, the cell in the first column
 	 * can optionally suppress drawing.
 	 */
-	if ([self drawsAlternatingRows]) {
+	if ([self usesAlternatingRowBackgroundColors]) {
 		BOOL alternateColor = YES;
 		int numberOfRows = [self numberOfRows], rectNumber = 0;
 		NSTableColumn *tableColumn = [[self tableColumns] objectAtIndex:0];
diff -r 866b6f19c9f3 -r 460e4914297f Frameworks/Adium Framework/Resources/PresetManagement.nib/classes.nib
--- a/Frameworks/Adium Framework/Resources/PresetManagement.nib/classes.nib	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/Adium Framework/Resources/PresetManagement.nib/classes.nib	Tue Apr 28 02:54:34 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 866b6f19c9f3 -r 460e4914297f Frameworks/Adium Framework/Resources/PresetManagement.nib/info.nib
--- a/Frameworks/Adium Framework/Resources/PresetManagement.nib/info.nib	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/Adium Framework/Resources/PresetManagement.nib/info.nib	Tue Apr 28 02:54:34 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 866b6f19c9f3 -r 460e4914297f Frameworks/Adium Framework/Resources/PresetManagement.nib/keyedobjects.nib
Binary file Frameworks/Adium Framework/Resources/PresetManagement.nib/keyedobjects.nib has changed
diff -r 866b6f19c9f3 -r 460e4914297f Frameworks/Adium Framework/Source/AIAbstractListController.m
--- a/Frameworks/Adium Framework/Source/AIAbstractListController.m	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/Adium Framework/Source/AIAbstractListController.m	Tue Apr 28 02:54:34 2009 -0700
@@ -483,7 +483,7 @@
 	}
 	
 	//Background
-	[contactListView setDrawsAlternatingRows:[[themeDict objectForKey:KEY_LIST_THEME_GRID_ENABLED] boolValue]];
+	[contactListView setUsesAlternatingRowBackgroundColors:[[themeDict objectForKey:KEY_LIST_THEME_GRID_ENABLED] boolValue]];
 	[contactListView setBackgroundFade:[[themeDict objectForKey:KEY_LIST_THEME_BACKGROUND_FADE] floatValue]];
 	[contactListView setBackgroundColor:[[themeDict objectForKey:KEY_LIST_THEME_BACKGROUND_COLOR] representedColor]];
 	[contactListView setAlternatingRowColor:[[themeDict objectForKey:KEY_LIST_THEME_GRID_COLOR] representedColor]];
@@ -906,7 +906,7 @@
 {
 	AIListObject	*hoveredObject = [self contactListItemAtScreenPoint:screenPoint];
 	
-	if ([hoveredObject isKindOfClass:[AIListContact class]]) {
+	if ([hoveredObject isKindOfClass:[AIListContact class]] || ([hoveredObject isKindOfClass:[AIListGroup class]] && ![(id<AIContainingObject>)hoveredObject isExpanded])) {
 		[adium.interfaceController showTooltipForListObject:hoveredObject
 												atScreenPoint:screenPoint
 													 onWindow:contactListView.window];
diff -r 866b6f19c9f3 -r 460e4914297f Frameworks/Adium Framework/Source/AIListCell.m
--- a/Frameworks/Adium Framework/Source/AIListCell.m	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/Adium Framework/Source/AIListCell.m	Tue Apr 28 02:54:34 2009 -0700
@@ -388,7 +388,7 @@
 - (NSColor *)backgroundColor
 {
 	//We could just call backgroundColorForRow: but it's best to avoid doing a rowForItem lookup if there is no grid
-	if ([controlView drawsAlternatingRows]) {
+	if ([controlView usesAlternatingRowBackgroundColors]) {
 		return [controlView backgroundColorForRow:[controlView rowForItem:proxyObject]];
 	} else {
 		return [controlView backgroundColor];
diff -r 866b6f19c9f3 -r 460e4914297f Frameworks/Adium Framework/Source/ESContactAlertsViewController.m
--- a/Frameworks/Adium Framework/Source/ESContactAlertsViewController.m	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/Adium Framework/Source/ESContactAlertsViewController.m	Tue Apr 28 02:54:34 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>
@@ -349,7 +348,7 @@
 	[[outlineView_summary tableColumnWithIdentifier:@"action"] setDataCell:verticallyCenteredTextCell];
 	[verticallyCenteredTextCell release];
 
-	[outlineView_summary setDrawsAlternatingRows:YES];
+	[outlineView_summary setUsesAlternatingRowBackgroundColors:YES];
 	[outlineView_summary setIntercellSpacing:NSMakeSize(6.0,6.0)];
 	[outlineView_summary setIndentationPerLevel:0];
 	[outlineView_summary setTarget:self];
diff -r 866b6f19c9f3 -r 460e4914297f Frameworks/Adium Framework/Source/ESDebugAILog.h
--- a/Frameworks/Adium Framework/Source/ESDebugAILog.h	Mon Apr 27 22:20:35 2009 -0700
+++ b/Frameworks/Adium Framework/Source/ESDebugAILog.h	Tue Apr 28 02:54:34 2009 -0700
@@ -16,9 +16,9 @@
 
 #ifdef DEBUG_BUILD
 /* For a debug build, declare the AILog() function */
-	void AILogWithPrefix (const char *signature, NSString *format, ...);
+	void AILogWithPrefix (const char *signature, NSString *format, ...) __attribute__((format(__NSString__, 2, 3)));
 	#define AILogWithSignature(fmt, args...) AILogWithPrefix(__PRETTY_FUNCTION__, fmt, ##args);
-	void AILog (NSString *format, ...);
+	void AILog (NSString *format, ...) __attribute__((format(__NSString__, 1, 2)));
 	void AILogBacktrace();
 #else
 /* For a non-debug build, define it to be a comment so there is no overhead in using it liberally */
diff -r 866b6f19c9f3 -r 460e4914297f Plugins/Emoticons/AIEmoticonPackPreviewTableView.h
--- a/Plugins/Emoticons/AIEmoticonPackPreviewTableView.h	Mon Apr 27 22:20:35 2009 -0700
+++ b/Plugins/Emoticons/AIEmoticonPackPreviewTableView.h	Tue Apr 28 02:54:34 2009 -0700
@@ -14,9 +14,7 @@
  * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-#import <AIUtilities/AIAlternatingRowTableView.h>
-
- at interface AIEmoticonPackPreviewTableView : AIAlternatingRowTableView {
+ at interface AIEmoticonPackPreviewTableView : NSTableView {
 
 }
 
diff -r 866b6f19c9f3 -r 460e4914297f Plugins/Emoticons/AIEmoticonPackPreviewTableView.m
--- a/Plugins/Emoticons/AIEmoticonPackPreviewTableView.m	Mon Apr 27 22:20:35 2009 -0700
+++ b/Plugins/Emoticons/AIEmoticonPackPreviewTableView.m	Tue Apr 28 02:54:34 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 866b6f19c9f3 -r 460e4914297f Plugins/Emoticons/AIEmoticonPreferences.h
--- a/Plugins/Emoticons/AIEmoticonPreferences.h	Mon Apr 27 22:20:35 2009 -0700
+++ b/Plugins/Emoticons/AIEmoticonPreferences.h	Tue Apr 28 02:54:34 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 866b6f19c9f3 -r 460e4914297f Plugins/Emoticons/AIEmoticonPreferences.m
--- a/Plugins/Emoticons/AIEmoticonPreferences.m	Mon Apr 27 22:20:35 2009 -0700
+++ b/Plugins/Emoticons/AIEmoticonPreferences.m	Tue Apr 28 02:54:34 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,11 +71,10 @@
 //- (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 setDrawsGradientSelection:YES];
 	[[table_emoticonPacks tableColumnWithIdentifier:@"Emoticons"] setDataCell:[[[AIGenericViewCell alloc] init] autorelease]];
 	[table_emoticonPacks selectRowIndexes:[NSIndexSet indexSetWithIndex:0] byExtendingSelection:NO];
 	[table_emoticonPacks setToolTip:EMOTICON_PACKS_TOOLTIP];
@@ -86,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 866b6f19c9f3 -r 460e4914297f Plugins/Emoticons/EmoticonPrefs.nib/classes.nib




More information about the commits mailing list