This is eText.NeXTHack.m in view mode; [Download] [Up]
{\rtf0\ansi{\fonttbl\f0\fmodern Courier;\f1\ftech Symbol;\f2\fmodern Ohlfs;}
\margl40
\margr40
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 //ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ\
//
\i
\b FILENAME
\b0 :
\b\i0 eText.NeXTHack.m\
\b0 //
\i
\b SUMMARY
\b0 :
\b\i0 Overrides of various private Text methods
\b0 \
//
\b\i CATEGORY
\b0 :
\i0
\b NeXTHack
\b0 ,
\b Mole
\b0 \
//
\b\i PROTOCOLS
\b0 :
\i0
\b None
\b0 \
//
\b\i INTERFACE
\b0 :
\i0
\b None
\b0 \
//
\b\i AUTHOR
\b0 :
\b\i0 Rohit Khare
\b0 \
//
\b\i COPYRIGHT
\b0 :
\f1\i0 Ó
\f0\b 1993,94 California Institure of Technology, eText Project\
\b0 //ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ\
//
\b\i Implementation Comments
\b0\i0 \
// Boys and girls, can you say private API? I knew you could...\
// there's more where this came from, but this is what I've verified and\
// used in lots of different apps.\
//\
// my favorites:
\i feedMe:globals:pos:arrayCount:blockCount:
\i0 and
\i doAbortion
\i0 :)\
//ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ\
//
\b\i History
\b0\i0 \
// 11/21/94:
\b Added runForPosition:.
\b0 \
// 10/17/94:
\b Cleaned up for eText5.
\b0 \
// 08/05/94:
\b Completely Rearchitected for 5.0. RK
\b0 \
//ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ\
//
\b Imported Interfaces
\b0 \
//\
#import "
\b eText.NeXTHack.h
\b0 "\
\
//ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ\
//
\b Text Stream Hacks
\b0\i Courtesy of Mike Dixon's XText Package
\i0 \
//\
typedef struct \{\
\b id
\b0
\b text
\b0 ;\
\b NXTextBlock
\b0 *
\b block
\b0 ;\
\}
\b textInfo
\b0 ;\
\
\b char
\b0
\b getPrevious
\b0 (
\b NXStream
\b0 *s) \{\
\b textInfo
\b0 *info = (
\b textInfo
\b0 *)
\b s
\b0 ->
\b info
\b0 ;\
\b NXTextBlock
\b0 *
\b block
\b0 = info->block->
\b prior
\b0 ;\
\
if (
\b !block
\b0 )\
return
\b EOF
\b0 ;\
s->buf_base = block->text;\
s->buf_ptr = s->buf_base + block->chars;\
s->offset -= block->chars;\
info->block = block;\
return
\b *(--s->buf_ptr)
\b0 ;\
\}\
\
\i @implementation eText(NeXTHack)\
\i0 //ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ\
//
\b Proprietary
\b0 \
//\
-
\b printOneRun
\b0 :a
\b end
\b0 :b
\b into
\b0 :c
\b fonts
\b0 :d
\b colors
\b0 :e
\b run
\b0 :(
\b NXRun
\b0 *)f
\b runPos
\b0 :g
\b buf
\b0 :h
\b state
\b0 :i \{\
if (
\b strictRTF
\b0 &&
\b f->info
\b0 ) //
\i prevents writing annotations in RTF
\i0 \
return
\b self
\b0 ;\
\b return
\b0 [
\b super
\b0 printOneRun:a end:b into:c fonts:d colors:e run:f runPos:g buf:h state:i];\
\} \
\
\i @end\
\
@implementation eText(Mole)\
\i0 //ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ\
//
\b Convenience
\b0 \
//\
- (
\b NXRunArray
\b0 *)
\b theRuns
\b0 \{\
return
\b theRuns
\b0 ;\}\
- (
\b NXRun *
\b0 )
\b runForPosition
\b0 :(int) pos \{\
int i=0,k,N;\
\b NXRun
\b0 *
\b curr
\b0 ;\
\
\b N
\b0 = theRuns->chunk.
\b used
\b0 /sizeof(
\b NXRun
\b0 );\
\b curr
\b0 = theRuns->
\b runs
\b0 ;\
for (k=0; k < N; k++) \{\
\b i
\b0 += curr->
\b chars
\b0 ;\
if (i >= pos) return
\b curr
\b0 ;\
curr++;\
\}\
return
\b NULL
\b0 ;\
\}\
\
//ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ\
//
\b Delegation
\b0 \
//\
-
\b textDidGetKeys
\b0 :sender
\b isEmpty
\b0 :(
\b BOOL
\b0 )flag \{\
[etDoc
\b touch
\b0 ]; return self;\}\
-
\b textWillConvert
\b0 :sender
\b fromFont
\b0 :from
\b toFont
\b0 :to \{\
[etDoc
\b touch
\b0 ]; return
\b to
\b0 ;\}\
-
\b textDidRead
\b0 :sender
\b paperSize
\b0 :(
\b NXSize
\b0 *)paperSize \{\
NXRect bnd,frm;\
\
[self getBounds:&bnd];\
[[self window] getFrame:&frm];\
frm.size.width += paperSize->width - bnd.size.width;\
frm.size.height += paperSize->height - bnd.size.height;\
frm.origin.y -= paperSize->height - bnd.size.height;\
[[self window] placeWindow:&frm];\
return self;\
\}\
\
\i @end
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.