This is TextView.m in view mode; [Download] [Up]
/*
** TextView.m, implementation of scrolling text stuff for TextLab.
** Copyright 1989 NeXT, Inc. All Rights Reserved.
** Author: Bruce Blumberg
**
** 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.
*/
#import "TextView.h"
#import <appkit/Font.h>
@implementation TextView:ScrollView
- initFrame:(const NXRect *)frameRect
{
NXRect rect = {0.0, 0.0, 0.0, 0.0};
/* initialize view */
[super initFrame:frameRect];
/* specify scrollbars */
[[self setVertScrollerRequired:YES] setHorizScrollerRequired:NO];
[self getContentSize:&(rect.size)];
theText = [self newText:&rect];
[self setDocView:theText];
[theText setSel:0 :0];
// The following two lines allow the resizing of the scrollview
// to be passed down to the docView (in this case, the text view
// itself).
[contentView setAutoresizeSubviews:YES];
[contentView setAutosizing:NX_HEIGHTSIZABLE | NX_WIDTHSIZABLE];
// Create enclosing window and bring it upfront
[self makeEnclosingWindow:frameRect];
[[[window setTitle:"List Data"] display] makeKeyAndOrderFront:self];
return self;
}
- makeEnclosingWindow:(const NXRect *)rect
{
id textWindow;
textWindow = [[Window alloc] initContent:rect
style:NX_RESIZEBARSTYLE
backing:NX_BUFFERED
buttonMask:(NX_CLOSEBUTTONMASK|
NX_MINIATURIZEBUTTONMASK)
defer:NO];
[textWindow setContentView:self];
[textWindow setBackgroundGray:NX_WHITE];
[textWindow setFreeWhenClosed:YES];
return self;
}
- newText:(const NXRect *)frameRect
{
id text;
NXSize aSize = {1.0E38, 1.0E38};
text = [[Text alloc] initFrame:frameRect
text:NULL
alignment:NX_LEFTALIGNED];
[text setOpaque:YES];
[[[[[text notifyAncestorWhenFrameChanged:YES]
setVertResizable:YES]
setHorizResizable:NO]
setMonoFont:NO]
setDelegate:self];
[text setFont:[Font newFont:"Courier" size:14.0]]; /* dcj */
[text setMinSize:&(frameRect->size)];
[text setMaxSize:&aSize];
[text setAutosizing:NX_HEIGHTSIZABLE | NX_WIDTHSIZABLE];
[text setCharFilter:NXEditorFilter];
return text;
}
- provideTextObject
{
return theText;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.