File:  [NeXTSTEP 3.3 examples] / Examples / DatabaseKit / Evaluator / ScrollViewExtras.m
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:48:58 2018 UTC (8 years, 1 month ago) by root
Branches: NeXT, MAIN
CVS tags: NeXTSTEP33, HEAD
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.
 *
 * A generic scrollview driver object to display/print text 
 * Written by Jack Greenfield
 *
 */

#import	<objc/objc-runtime.h>
#import "ScrollViewExtras.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;
}

- 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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.