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.