This is LispListener.m in view mode; [Download] [Up]
/* ** LispListener.m ** A Scrollable LispText. ** Lee Boynton, NeXT, Inc., 1989 */ #import "Lisp.h" #import "LispText.h" #import "LispListener.h" #import <appkit/Application.h> #import <appkit/defaults.h> #import <stdlib.h> @implementation LispListener + newFrame:(NXRect *)theFrame { id scroll, text; float ascender, descender, lineHeight; id font; NXSize maxSize; const char *imageName = NXGetDefaultValue([NXApp appName],"LispImage"); char initialText[1024]; sprintf(initialText,"Waiting for %s to launch...",imageName); maxSize.width = 1.0e30; maxSize.height = 1.0e30; font = [Text getDefaultFont]; text = [LispText newFrame:NULL text:initialText alignment:NX_LEFTALIGNED]; NXTextFontInfo(font, &ascender, &descender, &lineHeight); [text sizeTo:0.:lineHeight]; [text moveTo:0.:0.]; [text setMaxSize:&maxSize]; [text setVertResizable:YES]; [text setOverstrikeDiacriticals:NO]; [text setAutoresizeSubviews:YES]; [text setAutosizing:NX_WIDTHSIZABLE]; scroll = [super newFrame:NULL]; [scroll setVertScrollerRequired:YES]; [scroll setDynamicScrolling:YES]; [scroll setDocView:text]; [scroll setBackgroundGray:NX_WHITE]; [scroll setAutoresizeSubviews:YES]; [scroll setAutosizing:NX_WIDTHSIZABLE|NX_HEIGHTSIZABLE]; [scroll setBorderType:NX_NOBORDER]; [[text superview] setAutoresizeSubviews:YES]; [scroll moveTo:NX_X(theFrame):NX_Y(theFrame)]; [scroll sizeTo:NX_WIDTH(theFrame):NX_HEIGHT(theFrame)]; self = scroll; theText = text; [theText setDelegate:self]; return scroll; } - evaluate:(const char *)theString; { [theText inputLisp:theString]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.