|
|
1.1 ! root 1: /* ScrollViewExtras.m: ! 2: * You may freely copy, distribute, and reuse the code in this example. ! 3: * NeXT disclaims any warranty of any kind, expressed or implied, as to its ! 4: * fitness for any particular use. ! 5: * ! 6: * A generic scrollview driver object to display/print text ! 7: * Written by Jack Greenfield ! 8: * ! 9: */ ! 10: ! 11: #import <objc/objc-runtime.h> ! 12: #import "ScrollViewExtras.h" ! 13: ! 14: @implementation ScrollView(ScrollViewExtras) ! 15: ! 16: - sprintf:(const char *)format, ... ! 17: { ! 18: int length; ! 19: static char buffer[65536]; ! 20: va_list arguments; ! 21: ! 22: if ([window isVisible]) ! 23: { ! 24: va_start(arguments, format); ! 25: vsprintf(buffer, format, arguments); ! 26: va_end(arguments); ! 27: ! 28: length = [[self docView] textLength]; ! 29: [[self docView] setSel:length :length]; ! 30: [[self docView] replaceSel:buffer]; ! 31: [[self docView] scrollSelToVisible]; ! 32: } ! 33: ! 34: return self; ! 35: } ! 36: ! 37: - clear:sender ! 38: { ! 39: int length; ! 40: ! 41: if ([window isVisible]) ! 42: { ! 43: length = [[self docView] textLength]; ! 44: [[self docView] setSel:0 :length]; ! 45: [[self docView] replaceSel:""]; ! 46: [[self docView] scrollSelToVisible]; ! 47: } ! 48: ! 49: return self; ! 50: } ! 51: ! 52: - print:sender ! 53: { ! 54: if ([window isVisible]) ! 55: [[self docView] printPSCode:sender]; ! 56: ! 57: return self; ! 58: } ! 59: ! 60: - printFrom:sender ! 61: { ! 62: return [self sprintf:"%s\n", [sender stringValue]]; ! 63: } ! 64: ! 65: /* Window Delegate method -- constrain window resizing */ ! 66: ! 67: - windowWillResize:sender toSize:(NXSize *)frameSize ! 68: { ! 69: if ( frameSize->height < 230 ) frameSize->height= 230; ! 70: return self; ! 71: } ! 72: ! 73: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.