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.