|
|
Sample Programs from NeXSTEP 3.3
/*
ScrollViewExtras.m:
You may freely copy, distribute, and reuse the code in this example.
NeXT disclaims any warranty of any kind, expressed or implied, as to its fitness for any
particular use.
Scrollview methods to display/print text
Written by Jack Greenfield
*/
#import "ScrollViewExtras.h"
#import <appkit/appkit.h>
@implementation ScrollView(ScrollViewExtras)
- sprintf:(const char *)format, ...
{
int length;
static char buffer[65536];
va_list arguments;
if ([window isVisible])
{
va_start(arguments, format);
vsprintf(buffer, format, arguments);
va_end(arguments);
length = [[self docView] textLength];
[[self docView] setSel:length :length];
[[self docView] replaceSel:buffer];
[[self docView] scrollSelToVisible];
}
return self;
}
- vsprintf:(const char *)format arguments:(va_list)arguments
{
int length;
static char buffer[65536];
if ([window isVisible])
{
vsprintf(buffer, format, arguments);
length = [[self docView] textLength];
[[self docView] setSel:length :length];
[[self docView] replaceSel:buffer];
[[self docView] scrollSelToVisible];
}
return self;
}
- clear:sender
{
int length;
if ([window isVisible])
{
length = [[self docView] textLength];
[[self docView] setSel:0 :length];
[[self docView] replaceSel:""];
[[self docView] scrollSelToVisible];
}
return self;
}
- print:sender
{
if ([window isVisible])
[[self docView] printPSCode:sender];
return self;
}
- printFrom:sender
{
return [self sprintf:"%s\n", [sender stringValue]];
}
/* Window Delegate method -- constrain window resizing */
- windowWillResize:sender toSize:(NXSize *)frameSize
{
if (frameSize->height < 230) frameSize->height = 230;
return self;
}
@end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.