This is InfoView.m in view mode; [Download] [Up]
/* Generated by Interface Builder */ #import "InfoView.h" #import "info.h" #import <appkit/Application.h> #import <appkit/nextstd.h> // For MAX #import <appkit/Text.h> #import <appkit/Font.h> #import <string.h> @implementation InfoView + newFrame:(NXRect *)frm { self = [super newFrame:frm]; font = [Font newFont:"Times-Bold" size:MAX(floor(frm->size.width * 0.095), 6.0) style:0 matrix:NX_IDENTITYMATRIX]; // We are using PSshow, not // the Text class... if (font == nil) font = [Text getDefaultFont]; [self setClipping:NO]; return (self); } - drawLogo { float w,h; [self lockFocus]; d += 0.025; if (d <=1.0) { PSdrawBeams(bounds.size.width,bounds.size.height,d); } else { [font set]; PSsetgray(NX_WHITE); PSstringwidth ("Lighthouse Design, Ltd.", &w, &h); PSmoveto (bounds.size.width/2.0 - w/2.0, bounds.size.width / 30.0); PSshow("Lighthouse Design, Ltd."); drawnOnce = YES; drawing = NO; DPSRemoveTimedEntry(timedEntry); } [[self window] flushWindow]; [self unlockFocus]; return (self); } void infoTimerFunction(DPSTimedEntry te, double timenow, void *data) { [(id)data drawLogo]; } - windowDidBecomeKey:sender { if (!(drawnOnce||drawing)) { PSInit(); d = 0.0; timedEntry = DPSAddTimedEntry(0.01, &infoTimerFunction, self, NX_BASETHRESHOLD); drawing = YES; } return (self); } - drawSelf:(NXRect *)rects :(int)rectCount { PSsetgray (NX_BLACK); NXRectFill (&bounds); return (self); } - windowWillClose:sender { if (drawing) DPSRemoveTimedEntry(timedEntry); drawing = drawnOnce = NO; [self lockFocus]; [self drawSelf:0 :0]; [self unlockFocus]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.