This is PosView.m in view mode; [Download] [Up]
/* Generated by Interface Builder */ #import "PosView.h" #import "dpsclient/wraps.h" @implementation PosView - neuePos: (int) neuerWert : (int) neuerMaxWert; { aktuellerWert = neuerWert; maxWert = neuerMaxWert; [self display]; NXPing(); return self; } void gibZeitAus(DPSTimedEntry number, double now, char *data) { time_t aktuelleZeit; aktuelleZeit = time(NULL) - ((PosView *) data)->startzeit; ((PosView *) data)->Mins = (int) aktuelleZeit / 60; ((PosView *) data)->Seks = (int) aktuelleZeit % 60; [(id) data display]; NXPing(); } - anfangPause { pauseStart = time(NULL); PauseModus = YES; PauseMins = Mins; PauseSeks = Seks; return self; } - endePause { startzeit += time(NULL) - pauseStart; PauseModus = NO; return self; } - starteZeit { startzeit = time(NULL); meiner = DPSAddTimedEntry(1.0, (DPSTimedEntryProc) gibZeitAus, self, 10); return self; } - stoppeZeit { if (meiner) { DPSRemoveTimedEntry (meiner); meiner = NULL; Mins = Seks = -1; [self display]; NXPing(); } PauseModus = NO; return self; } - initFrame:(const NXRect *)frameRect { [super initFrame:frameRect]; [self setFlipped:YES]; aktuellerWert = 0; maxWert = 100; //Test Mins = Seks = -1; PauseModus = 0; meinRechteck.origin.x = 0.0; meinRechteck.origin.y = 0.0; meinRechteck.size.height = frameRect->size.height; Schrift = [Font newFont:"Helvetica-Bold" size:18.0 style:0 matrix:NX_FLIPPEDMATRIX]; return self; } - drawSelf: (NXRect *) rects : (int) count; { char temp[10]; PSsetgray (0.5); NXRectFill (&bounds); PSsetgray (0.25); if (maxWert != 0) { meinRechteck.size.width = (bounds.size.width / (float) maxWert) * (float) aktuellerWert; NXRectFill(&meinRechteck); [Schrift set]; if (Mins != -1) { if (PauseModus == YES) sprintf(temp, "%d:%02d", PauseMins, PauseSeks); else sprintf(temp, "%d:%02d", Mins,Seks); PSsetgray (1.0); PSmoveto((bounds.size.width - [Schrift getWidthOf:temp])/2.0, 20.0); PSshow(temp); } } return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.