home *** CD-ROM | disk | FTP | other *** search
- /*
- 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
-