From 7f78c323e98369c6fffae6ac1bca8aebfc9f5692 Mon Sep 17 00:00:00 2001 From: Klaas Pieter Annema Date: Mon, 1 Feb 2010 19:08:22 +0100 Subject: [PATCH] implemented outlineView:shouldSelectItem delegate method --- AppKit/CPOutlineView.j | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/AppKit/CPOutlineView.j b/AppKit/CPOutlineView.j index db858fb68..f4d871b18 100644 --- a/AppKit/CPOutlineView.j +++ b/AppKit/CPOutlineView.j @@ -51,7 +51,8 @@ var CPOutlineViewDataSource_outlineView_setObjectValue_forTableColumn_byItem_ CPOutlineViewDataSource_outlineView_sortDescriptorsDidChange_ = 1 << 10; -var CPOutlineViewDelegate_outlineView_dataViewForTableColumn_item_ = 1 << 1; +var CPOutlineViewDelegate_outlineView_dataViewForTableColumn_item_ = 1 << 1, + CPOutlineViewDelegate_outlineView_shouldSelectItem_ = 1 << 2; @@ -423,6 +424,9 @@ var CPOutlineViewDelegate_outlineView_dataViewForTableColumn_item_ = 1 < if ([_outlineViewDelegate respondsToSelector:@selector(outlineView:dataViewForTableColumn:item:)]) _implementedOutlineViewDelegateMethods |= CPOutlineViewDelegate_outlineView_dataViewForTableColumn_item_; + + if ([_outlineViewDelegate respondsToSelector:@selector(outlineView:shouldSelectItem:)]) + _implementedOutlineViewDelegateMethods |= CPOutlineViewDelegate_outlineView_shouldSelectItem_; if ([_outlineViewDelegate respondsToSelector:@selector(outlineViewColumnDidMove:)]) [defaultCenter @@ -872,10 +876,20 @@ var _loadItemInfoForItem = function(/*CPOutlineView*/ anOutlineView, /*id*/ anIt - (CPView)tableView:(CPTableView)theTableView dataViewForTableColumn:(CPTableColumn)theTableColumn row:(int)theRow { - if (!(_outlineView._implementedOutlineViewDelegateMethods & CPOutlineViewDelegate_outlineView_dataViewForTableColumn_item_)) - return [theTableColumn dataViewForRow:theRow]; + if ((_outlineView._implementedOutlineViewDelegateMethods & CPOutlineViewDelegate_outlineView_dataViewForTableColumn_item_)) + return [_outlineView._outlineViewDelegate outlineView:_outlineView + dataViewForTableColumn:theTableColumn + item:[_outlineView itemAtRow:theRow]]; + + return [theTableColumn dataViewForRow:theRow]; +} + +- (BOOL)tableView:(CPTableView)theTableView shouldSelectRow:(int)theRow +{ + if ((_outlineView._implementedOutlineViewDelegateMethods & CPOutlineViewDelegate_outlineView_shouldSelectItem_)) + return [_outlineView._outlineViewDelegate outlineView:_outlineView shouldSelectItem:[_outlineView itemAtRow:theRow]]; - return [_outlineView._outlineViewDelegate outlineView:_outlineView dataViewForTableColumn:theTableColumn item:[_outlineView itemAtRow:theRow]]; + return YES; } @end