mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-06-01 21:31:56 +00:00
Move view rendering to viewAtColumn:row:makeIfNecessary: and eliminate uneeded private method
This commit is contained in:
parent
4d5957eaf7
commit
9070a9d30f
3 changed files with 67 additions and 82 deletions
|
@ -132,8 +132,6 @@ static NSImage *unexpandable = nil;
|
|||
@end
|
||||
|
||||
@interface NSOutlineView (Private)
|
||||
- (NSView *) _delegateInvocationForRowIndex: (NSInteger)rowIndex
|
||||
inColumn: (NSInteger)columnIndex;
|
||||
- (void) _autoCollapse;
|
||||
@end
|
||||
|
||||
|
@ -2210,6 +2208,46 @@ Also returns the child index relative to this parent. */
|
|||
return cell;
|
||||
}
|
||||
|
||||
- (NSView *) viewAtColumn: (NSInteger)column row: (NSInteger)row makeIfNecessary: (BOOL)flag
|
||||
{
|
||||
NSTableColumn *tb = [_tableColumns objectAtIndex: column];
|
||||
NSIndexPath *path = [NSIndexPath indexPathForItem: column
|
||||
inSection: row];
|
||||
NSView *view = [self _renderedViewForPath: path];
|
||||
NSRect drawingRect = [self frameOfCellAtColumn: column
|
||||
row: row];
|
||||
id item = [self itemAtRow: row];
|
||||
|
||||
if (tb == _outlineTableColumn)
|
||||
{
|
||||
drawingRect = [[GSTheme theme] drawOutlineTableColumn: tb
|
||||
outlineView: self
|
||||
item: item
|
||||
drawingRect: drawingRect
|
||||
rowIndex: row];
|
||||
}
|
||||
|
||||
if (view == nil
|
||||
&& flag == YES)
|
||||
{
|
||||
if ([_delegate respondsToSelector: @selector(outlineView:viewForTableColumn:item:)])
|
||||
{
|
||||
view = [_delegate outlineView: self
|
||||
viewForTableColumn: tb
|
||||
item: item];
|
||||
}
|
||||
else
|
||||
{
|
||||
view = [self _prototypeCellViewFromTableColumn: tb];
|
||||
}
|
||||
}
|
||||
|
||||
[view setFrame: drawingRect];
|
||||
[self _setRenderedView: view forPath: path];
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation NSOutlineView (Private)
|
||||
|
@ -2228,44 +2266,4 @@ Also returns the child index relative to this parent. */
|
|||
[autoExpanded removeAllObjects];
|
||||
}
|
||||
|
||||
- (NSView *) _delegateInvocationForRowIndex: (NSInteger)rowIndex
|
||||
inColumn: (NSInteger)columnIndex
|
||||
{
|
||||
NSTableColumn *tb = [_tableColumns objectAtIndex: columnIndex];
|
||||
NSIndexPath *path = [NSIndexPath indexPathForItem: columnIndex
|
||||
inSection: rowIndex];
|
||||
NSView *view = [self _renderedViewForPath: path];
|
||||
NSRect drawingRect = [self frameOfCellAtColumn: columnIndex
|
||||
row: rowIndex];
|
||||
id item = [self itemAtRow: rowIndex];
|
||||
|
||||
if (tb == _outlineTableColumn)
|
||||
{
|
||||
drawingRect = [[GSTheme theme] drawOutlineTableColumn: tb
|
||||
outlineView: self
|
||||
item: item
|
||||
drawingRect: drawingRect
|
||||
rowIndex: rowIndex];
|
||||
}
|
||||
|
||||
if (view == nil)
|
||||
{
|
||||
if ([_delegate respondsToSelector: @selector(outlineView:viewForTableColumn:item:)])
|
||||
{
|
||||
view = [_delegate outlineView: self
|
||||
viewForTableColumn: tb
|
||||
item: item];
|
||||
}
|
||||
else
|
||||
{
|
||||
view = [self _prototypeCellViewFromTableColumn: tb];
|
||||
}
|
||||
}
|
||||
|
||||
[view setFrame: drawingRect];
|
||||
[self _setRenderedView: view forPath: path];
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue