This is CardHolder.m in view mode; [Download] [Up]
/* Generated by Interface Builder */ #import "CardHolder.h" #import "angled_title.h" #import "prototypes.h" #import <libc.h> #import <math.h> #import <objc/objc.h> #import <stdio.h> #import <string.h> @implementation CardHolder + newFrame:( const NXRect * )frameRect { self = [ super newFrame:frameRect ]; frameModeFlag = NO; myTitle = calloc( 1, 1 ); return self; } - free { free( myTitle ); return [ super free ]; } - sendCard:( CardView * )aCard to:anObject { fprintf( stderr, "Class=%s, received method=%s, superclass not responsible, subclasses should implement", [ self name ], sel_getName( _cmd )); abort(); return self; } - sendAllCardsTo:anObject { fprintf( stderr, "Class=%s, received method=%s, superclass not responsible, subclasses should implement", [ self name ], sel_getName( _cmd )); abort(); return self; } - addCard:( CardView * )aCard :sender { fprintf( stderr, "Class=%s, received method=%s, superclass not responsible, subclasses should implement", [ self name ], sel_getName( _cmd )); abort(); return self; } - removeCard:( CardView * )aCard :sender { fprintf( stderr, "Class=%s, received method=%s, superclass not responsible, subclasses should implement", [ self name ], sel_getName( _cmd )); abort(); return self; } - setCardsEnabled:( BOOL )flag { reactiveCardsFlag = flag; return self; } - setTrackingEnabled:( BOOL )flag { trackingEnabledFlag = flag; return self; } - ( BOOL )isTrackingEnabled { return trackingEnabledFlag; } - trackingHighlighted:( BOOL )flag { highlightModeFlag = flag; return [[ self setNeedsDisplay:YES ] update ]; } - setFrameMode:( BOOL )flag { frameModeFlag = flag; [ window addToEventMask:NX_MOUSEENTEREDMASK+NX_MOUSEEXITEDMASK ]; return self; } - baseHolder { id searchView = self, lastHolder = self; while( searchView ) { id theSuperview = [ searchView superview ]; if([ theSuperview isKindOf:[ CardHolder class ]]) lastHolder = theSuperview; searchView = theSuperview; } return lastHolder; } - setTitle:( const char * )aTitle { free( myTitle ); strcpy(( myTitle = calloc(( strlen( aTitle ) + 8 ), sizeof( char ))), aTitle ); return self; } - ( BOOL )subviewVisible:aView { return YES; } - ( List * )holderList { return subviews; } - ( int )numCardTypeInHolder:( int )aCardTag { int i, cnt; for( i = 0, cnt = 0; i < [ subviews count ]; ++i ) if([[ subviews objectAt:i ] tag ] == aCardTag ) ++cnt; return cnt; } - ( int )numSafetiesInHolder { int i, cnt; for( i = 0, cnt = 0; i < [ subviews count ]; ++i ) if( isSafety([ subviews objectAt:i ])) ++cnt; return cnt; } - drawSelf:( NXRect * )rects :( int )rectCount { float c_squared = hypot( NX_WIDTH( &bounds ), NX_HEIGHT( &bounds )); float ourGray = [[ self opaqueAncestor ] backgroundGray ]; if( ourGray < 0.0 ) ourGray = [ window backgroundGray ]; PSsetgray( ourGray ); NXRectFill( &bounds ); if( highlightModeFlag ) { PSsetgray( NX_WHITE ); NXFrameRectWithWidth( &bounds, 1 ); } if( frameModeFlag ) { NXRect frameBounds = bounds; PSsetgray( NX_BLACK ); NXInsetRect( &frameBounds, 1.0, 1.0 ); NXFrameRectWithWidth( &frameBounds, 1 ); } angled_title(( 180 / M_PI * asin( NX_HEIGHT( &bounds ) / c_squared )), c_squared, myTitle ); return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.