This is ArrowTableHeaderCell.m in view mode; [Download] [Up]
/* * Filename: ArrowTableHeaderCell.m * Created : Thu Nov 28 13:49:31 1996 * Author : Vince DeMarco * LastEditDate Was "Thu Nov 28 15:41:34 1996" */ #import "ArrowTableHeaderCell.h" #import <AppKit/NSImage.h> #import <AppKit/NSFont.h> @implementation ArrowTableHeaderCell -(void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView*)controlView { if ([self state]){ NSRect newRectLeft; NSRect newRectRight; NSImage *image; NSPoint point; newRectLeft = cellFrame; newRectRight = cellFrame; image = [NSImage imageNamed:@"ArrowTableIcon"]; newRectRight.size.width = [image size].width; newRectLeft.size.width = cellFrame.size.width - newRectRight.size.width; newRectRight.origin.x = cellFrame.origin.x + newRectLeft.size.width; point.x = newRectRight.origin.x; if ([controlView isFlipped]){ NSRect frame; /* the controlView is flipped so this stuff here need to happen */ frame = [controlView frame]; point.y = frame.size.height - (newRectRight.origin.y + (newRectLeft.size.height - [image size].height)/2.0); }else{ point.y = (newRectRight.origin.y + (newRectLeft.size.height - [image size].height)/2.0); } [super drawInteriorWithFrame:newRectLeft inView:controlView]; [controlView lockFocus]; [image compositeToPoint:point operation:NSCompositeSourceOver]; [controlView unlockFocus]; }else{ [super drawInteriorWithFrame:cellFrame inView:controlView]; } } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.