This is AsciiView.m in view mode; [Download] [Up]
/* Generated by Interface Builder */
#import "AsciiView.h"
#import "AsciiController.h"
#import "SmsObject.h"
#import <strings.h>
@implementation AsciiView
- getTheSmsObject
{
if (!winDelegate)
winDelegate = [window delegate];
if ([winDelegate respondsTo:@selector(getTheSmsObject)])
return [winDelegate getTheSmsObject];
else
return NULL;
}
- initFrame:(NXRect const *)theFrame
{
NXRect tempRect = *theFrame;
int borderType = NX_NOBORDER;
[ScrollView getContentSize:&tempRect.size forFrameSize:&theFrame->size
horizScroller:NO vertScroller:YES borderType:borderType];
theTextView = [[Text alloc] initFrame:&tempRect text:NULL
alignment:NX_LEFTALIGNED];
[super initFrame:theFrame];
/* specify scrollbars */
[self setVertScrollerRequired:YES];
[self setHorizScrollerRequired:NO];
[self setBorderType:borderType];
[self setDynamicScrolling:YES];
[self setDocView:theTextView];
[self setBackgroundGray:NX_WHITE];
[self setAutoresizeSubviews:YES];
[self setAutosizing:NX_WIDTHSIZABLE|NX_HEIGHTSIZABLE];
[theTextView notifyAncestorWhenFrameChanged:YES];
[theTextView setVertResizable:YES];
[theTextView setHorizResizable:NO];
[theTextView setOpaque:YES];
[theTextView setCharFilter:NXEditorFilter];
[theTextView setEditable:YES];
[theTextView setSelectable:YES];
[[theTextView superview] setAutoresizeSubviews:YES];
[[theTextView superview] setAutosizing:NX_HEIGHTSIZABLE|NX_WIDTHSIZABLE];
return self;
}
//-------------------------------------------------------------------
// - drawFrame: - write the ASCII representation of a frame
- copyFrame:(int)iFrame :(char *)pString
{
id theSmsObject = [self getTheSmsObject];
int iFirstTraj = [winDelegate getLowestTraj];
int iLastTraj = [winDelegate getHighestTraj];
int iTraj;
float fFreq, fMag, fStocMag, fStocCoeff;
char pTmpString[256];
sprintf (pTmpString, "\n Frame %d (%.3f): \n ", iFrame,
(float) iFrame / [theSmsObject getFrameRate]);
strcat (pString, pTmpString);
if ([winDelegate getDeterministicFreqState] ||
[winDelegate getDeterministicMagState])
{
sprintf (pTmpString, "Deterministic: ");
strcat (pString, pTmpString);
}
for(iTraj = iFirstTraj; iTraj < iLastTraj; iTraj++)
{
if ([winDelegate getDeterministicFreqState] &&
[winDelegate getDeterministicMagState])
{
fFreq = [theSmsObject getDeterministicFreq:iFrame iTraj:iTraj];
fMag = [theSmsObject getDeterministicMag:iFrame iTraj:iTraj];
sprintf (pTmpString, "%.0f [%.0f], ", fFreq, fMag);
strcat (pString, pTmpString);
}
else if ([winDelegate getDeterministicFreqState])
{
fFreq = [theSmsObject getDeterministicFreq:iFrame iTraj:iTraj];
sprintf (pTmpString, "%.0f, ", fFreq);
strcat (pString, pTmpString);
}
else if ([winDelegate getDeterministicMagState])
{
fMag = [theSmsObject getDeterministicMag:iFrame iTraj:iTraj];
sprintf (pTmpString, "%.0f, ", fMag);
strcat (pString, pTmpString);
}
}
if ([winDelegate getStochasticState])
{
fMag = [theSmsObject getStochasticGain:iFrame];
sprintf (pTmpString, "\n Stochastic Gain: %.0f", fMag);
strcat (pString, pTmpString);
}
return self;
}
//-------------------------------------------------------------------
// - drawSelf:: - write the ASCII representation
- drawSelf:(const NXRect *)rects :(int)rectCount
{
int iFrame = [winDelegate getFirstFrame];
int iLastFrame = [winDelegate getLastFrame];
id theSmsObject = [self getTheSmsObject];
char pString[100000];
NXEraseRect(&bounds);
if (theSmsObject != NULL)
{
while(iFrame <= iLastFrame)
{
[self copyFrame:iFrame :pString];
iFrame++;
}
[theTextView setText:pString];
}
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.