home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula
/
nebula.bin
/
SourceCode
/
NMK
/
Recorders
/
SliderCellCover.m
< prev
next >
Wrap
Text File
|
1993-01-19
|
2KB
|
79 lines
/***** SliderCellCover.m -- SliderCellCover object implementation
NeXTstep Measurement Kit
by Alex Meyer <ameyer@phoenix.Princeton.EDU>
for computer science senior thesis
18 April 1992 -- created
20 April 1992 -- role of RSliderCell absorbed
23 April 1992 -- this file changed from RSlider.m to RSliderCell.m
utilizes late connect approach & LINKERNAME
24 April 1992 -- renamed from RSliderCell.m to SliderCellCover.m
uses object name link to RSliderVars
*****/
#import <sys/time.h>
#import <appkit/Application.h>
#import "RSliderVars.h"
#import "SliderCellCover.h"
#define VARSNAME ("SliderVars")
#define MICRO (1000000.0)
#define DOUBLETIME(stv) ((double) (((unsigned long) (stv).tv_sec) \
+ (((unsigned long) (stv).tv_usec) / MICRO)))
@implementation SliderCellCover
- makeVarsRect:(const NXRect *)rect
{
id vars;
if (!(rect))
rect = &trackRect;
vars = [RSliderVars alloc];
[vars initString:contents
tag:tag
rect:rect];
NXNameObject(VARSNAME,vars,self);
return (vars);
}
- (BOOL)trackMouse:(NXEvent *)theEvent
inRect:(const NXRect *)cellFrame
ofView:controlView
{
id vars;
BOOL res;
int index;
double time0,time1;
struct timeval start,finish;
struct timezone zone;
gettimeofday(&start,&zone);
res = [super trackMouse:theEvent
inRect:cellFrame
ofView:controlView];
gettimeofday(&finish,&zone);
time0 = DOUBLETIME(start);
time1 = DOUBLETIME(finish);
if (!(contents)) /* propagate name of Slider */
contents = NXGetObjectName(controlView);
vars = NXGetNamedObject(VARSNAME,self);
if (!(vars))
vars = [self makeVarsRect:cellFrame];
[vars incHits];
[vars timeFrom:time0
to:time1];
index = (value - minValue) / (maxValue - minValue) * SLIDERHIST;
if (index >= SLIDERHIST)
index = SLIDERHIST - 1;
[vars incHist:index];
return (res);
}
@end
#undef DOUBLETIME
#undef MICRO
#undef VARSNAME