/* Copyright (c) Xerox Corporation 1993. All rights reserved. */

#ifndef tiogatxt←DEFINED
#define tiogatxt←DEFINED 1
 
#include <class.h>
/* 
 * This file was generated by the Andrew class system preprocessor.
 * Don't make changes to this file as it is created from tiogatxt.ch and will be
 * overwritten.  Make changes to tiogatxt.ch instead.
 */ 
 
/* 
 * The following information was copied, as-is, from tiogatxt.ch.
 */ 
 
/* tiogatxt.ch -- Text subclass that can read Tioga files.
   David Nichols
   December, 1990 */

struct tiogatxt←Run {
    long looks;			/* bitmap of looks */
    long start;			/* start position */
    long len;			/* length */
};

struct tiogatxt←Env {
    struct environment *env;	/* current environment */
    struct environment *env2;	/* wrapped around env, maybe */
    long pos;			/* where to start it */
    int comment;		/* is this node a comment? */
};

#define tiogatxt←NUMLOOKS	26






/* 
 * End of information copied from tiogatxt.ch.
 */ 
 
/* 
 * Include the superclass information
 */ 
#define dontDefineRoutinesFor←text
#include "text.ih"
#undef dontDefineRoutinesFor←text

 
 
/* 
 * Data structure for tiogatxt 
 */ 
struct tiogatxt { 
    union {
	struct basicobject←methods *tiogatxt←methods;
	struct observable observable;
	struct dataobject dataobject;
	struct simpletext simpletext;
	struct text text;
    } header;
    char *reader;		/* saved tread←Reader */
    struct tiogatxt←Run *runs;	/* saved runs during reading */
    int nRuns;			/* number of them */
    int nAllocedRuns;		/* space for them */
    struct tiogatxt←Env *envs;	/* stacked envs during reading */
    int nEnvs;			/* number of them */
    int nAllocedEnvs;		/* space for them */
    struct style *topStyle;	/* special top-level style */
    struct style *lookTable[tiogatxt←NUMLOOKS];	/* cached looks for reading */

};

 
/* 
 * End of data structure for tiogatxt.
 */ 
 


#ifndef tiogatxt←PROGRAMMERVERSION
#define tiogatxt←PROGRAMMERVERSION 1
#endif /* tiogatxt←PROGRAMMERVERSION */

#ifdef tiogatxt←VERSION
#undef tiogatxt←VERSION
#endif /* tiogatxt←VERSION */
#define tiogatxt←VERSION ((((tiogatxt←PROGRAMMERVERSION << 16) ↑ (69 << 8) ↑ sizeof(struct tiogatxt)) & 0x7ffff) + 0x80000 + (0 << 20))

#define tiogatxt←StaticLoadOnlyThisClass()  \
{ extern struct classinfo *tiogatxt←←GetClassInfo(); \
  (void) class←EnterInfo(NULL, tiogatxt←classheader.name, tiogatxt←←GetClassInfo, NULL, tiogatxt←classheader.namekey); } 
 
#define tiogatxt←StaticLoad()  \
    { \
    text←StaticLoad(); \
    tiogatxt←StaticLoadOnlyThisClass();  \
    } 
 
#define tiogatxt←StaticEntry  {tiogatxt←StaticLoad()} 
 
static struct classheader tiogatxt←classheader = {
    tiogatxt←VERSION,
    "tiogatxt",
    "tiogatxt",
    (struct basicobject←methods *) &class←RoutineStruct,
};


#endif /* tiogatxt←DEFINED */

#if !defined(tiogatxt←ROUTINESDEFINED) && !defined(dontDefineRoutinesFor←tiogatxt) && !defined(class←StaticEntriesOnly)
#define tiogatxt←ROUTINESDEFINED

#define tiogatxt←AddObserver(self,observer) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[0]))) (self,observer))
#define tiogatxt←RemoveObserver(self,observer) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[1]))) (self,observer))
#define tiogatxt←NotifyObservers(self,value) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[2]))) (self,value))
#define tiogatxt←ObservedChanged(self,changed,value) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[3]))) (self,changed,value))
#define tiogatxt←AddRecipient(self,trigger,rcvr,func,rock) \
    ((* ((boolean (*)())((self)->header.tiogatxt←methods->routines[4]))) (self,trigger,rcvr,func,rock))
#define tiogatxt←DeleteRecipient(self,trigger,rcvr) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[5]))) (self,trigger,rcvr))
#define tiogatxt←PullTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[6]))) (self,trigger))
#define tiogatxt←DisableTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[7]))) (self,trigger))
#define tiogatxt←EnableTrigger(self,trigger) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[8]))) (self,trigger))
#define tiogatxt←DisableCount(self,trigger) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[9]))) (self,trigger))
#define tiogatxt←Read(self,file,id) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[10]))) (self,file,id))
#define tiogatxt←Write(self,file,writeid,level) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[11]))) (self,file,writeid,level))
#define tiogatxt←GetModified(self) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[12]))) (self))
#define tiogatxt←SetModified(self) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[13]))) (self))
#define tiogatxt←ViewName(self) \
    ((* ((char * (*)())((self)->header.tiogatxt←methods->routines[14]))) (self))
#define tiogatxt←SetAttributes(self,attributes) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[15]))) (self,attributes))
#define tiogatxt←Put(self,property,type,rock) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[16]))) (self,property,type,rock))
#define tiogatxt←Get(self,property,type,rock) \
    ((* ((short (*)())((self)->header.tiogatxt←methods->routines[17]))) (self,property,type,rock))
#define tiogatxt←ListCurrentViews(self,array,size) \
    ((* ((int (*)())((self)->header.tiogatxt←methods->routines[18]))) (self,array,size))
#define tiogatxt←RestoreModified(self,oldmodified) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[19]))) (self,oldmodified))
#define tiogatxt←UniqueID(self) \
 ((long)((&(self)->header.dataobject)))
#define tiogatxt←GetWriteID(self) \
 ( ((&(self)->header.dataobject))->writeID )
#define tiogatxt←SetWriteID(self,newValue) \
 ( (((&(self)->header.dataobject))->writeID) = (newValue) )
#define tiogatxt←GetID(self) \
      ( ((&(self)->header.dataobject))->id )
#define tiogatxt←SetID(self,newValue) \
      ( (((&(self)->header.dataobject))->id) = (newValue) )
#define tiogatxt←CreateMark(self,pos,length) \
    ((* ((struct mark * (*)())((self)->header.tiogatxt←methods->routines[20]))) (self,pos,length))
#define tiogatxt←RemoveMark(self,mark) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[21]))) (self,mark))
#define tiogatxt←SetReadOnly(self,readOnly) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[22]))) (self,readOnly))
#define tiogatxt←GetReadOnly(self) \
    ((* ((boolean (*)())((self)->header.tiogatxt←methods->routines[23]))) (self))
#define tiogatxt←RegionModified(self,pos,len) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[24]))) (self,pos,len))
#define tiogatxt←LengthChanged(self,pos,len) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[25]))) (self,pos,len))
#define tiogatxt←Clear(self) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[26]))) (self))
#define tiogatxt←InsertCharacters(self,pos,str,len) \
    ((* ((boolean (*)())((self)->header.tiogatxt←methods->routines[27]))) (self,pos,str,len))
#define tiogatxt←AlwaysInsertCharacters(self,position,string,size) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[28]))) (self,position,string,size))
#define tiogatxt←AddInCharacter(self,pos,c) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[29]))) (self,pos,c))
#define tiogatxt←DeleteCharacters(self,pos,len) \
    ((* ((boolean (*)())((self)->header.tiogatxt←methods->routines[30]))) (self,pos,len))
#define tiogatxt←AlwaysDeleteCharacters(self,position,size) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[31]))) (self,position,size))
#define tiogatxt←ReplaceCharacters(self,pos,len,repStr,repLen) \
    ((* ((boolean (*)())((self)->header.tiogatxt←methods->routines[32]))) (self,pos,len,repStr,repLen))
#define tiogatxt←AlwaysReplaceCharacters(self,pos,len,repStr,repLen) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[33]))) (self,pos,len,repStr,repLen))
#define tiogatxt←GetLength(self) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[34]))) (self))
#define tiogatxt←GetChar(self,pos) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[35]))) (self,pos))
#define tiogatxt←GetBuf(self,pos,len,lenp) \
    ((* ((char * (*)())((self)->header.tiogatxt←methods->routines[36]))) (self,pos,len,lenp))
#define tiogatxt←GetBufEnd(self,endpos,len,lenp) \
    ((* ((char * (*)())((self)->header.tiogatxt←methods->routines[37]))) (self,endpos,len,lenp))
#define tiogatxt←GetGap(self,pos,len) \
    ((* ((char * (*)())((self)->header.tiogatxt←methods->routines[38]))) (self,pos,len))
#define tiogatxt←GetPosForLine(self,line) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[39]))) (self,line))
#define tiogatxt←GetLineForPos(self,pos) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[40]))) (self,pos))
#define tiogatxt←GetBeginningOfLine(self,pos) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[41]))) (self,pos))
#define tiogatxt←GetEndOfLine(self,pos) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[42]))) (self,pos))
#define tiogatxt←CopyText(self,pos,srctext,srcpos,len) \
    ((* ((boolean (*)())((self)->header.tiogatxt←methods->routines[43]))) (self,pos,srctext,srcpos,len))
#define tiogatxt←AlwaysCopyText(self,pos,srctext,srcpos,len) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[44]))) (self,pos,srctext,srcpos,len))
#define tiogatxt←Index(self,pos,c,len) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[45]))) (self,pos,c,len))
#define tiogatxt←Strncmp(self,pos,str,len) \
    ((* ((int (*)())((self)->header.tiogatxt←methods->routines[46]))) (self,pos,str,len))
#define tiogatxt←Textncmp(self,pos,text,pos2,len) \
    ((* ((int (*)())((self)->header.tiogatxt←methods->routines[47]))) (self,pos,text,pos2,len))
#define tiogatxt←ReadSubString(self,pos,file,quoteCharacters) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[48]))) (self,pos,file,quoteCharacters))
#define tiogatxt←WriteSubString(self,pos,len,file,quoteCharacters) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[49]))) (self,pos,len,file,quoteCharacters))
#define tiogatxt←CopySubString(self,pos,len,buf,quoteCharacters) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[50]))) (self,pos,len,buf,quoteCharacters))
#define tiogatxt←HandleDataObject(self,pos,dop,file) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[51]))) (self,pos,dop,file))
#define tiogatxt←HandleKeyWord(self,pos,keyword,file) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[52]))) (self,pos,keyword,file))
#define tiogatxt←HandleCloseBrace(self,pos,file) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[53]))) (self,pos,file))
#define tiogatxt←HandleBegindata(self,pos,file) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[54]))) (self,pos,file))
#define tiogatxt←GetFence(self) \
 mark←GetLength(((&(self)->header.simpletext))->fence)
#define tiogatxt←SetFence(self,pos) \
 mark←SetLength(((&(self)->header.simpletext))->fence, pos)
#define tiogatxt←ClearFence(self) \
 mark←SetLength(((&(self)->header.simpletext))->fence, 0L)
#define tiogatxt←GetFenceMark(self) \
 (((&(self)->header.simpletext))->fence)
#define tiogatxt←GetObjectInsertionFlag(self) \
 (((&(self)->header.simpletext))->objectInsertionAllowed)
#define tiogatxt←SetObjectInsertionFlag(self,flag) \
 (((&(self)->header.simpletext))->objectInsertionAllowed = (flag))
#define tiogatxt←InsertObject(self,pos,name,viewname) \
    ((* ((struct viewref * (*)())((self)->header.tiogatxt←methods->routines[55]))) (self,pos,name,viewname))
#define tiogatxt←AddStyle(self,pos,len,style) \
    ((* ((struct environment * (*)())((self)->header.tiogatxt←methods->routines[56]))) (self,pos,len,style))
#define tiogatxt←AddView(self,pos,viewtype,dataobject) \
    ((* ((struct environment * (*)())((self)->header.tiogatxt←methods->routines[57]))) (self,pos,viewtype,dataobject))
#define tiogatxt←AlwaysAddStyle(self,pos,len,style) \
    ((* ((struct environment * (*)())((self)->header.tiogatxt←methods->routines[58]))) (self,pos,len,style))
#define tiogatxt←AlwaysAddView(self,pos,viewtype,dataobject) \
    ((* ((struct environment * (*)())((self)->header.tiogatxt←methods->routines[59]))) (self,pos,viewtype,dataobject))
#define tiogatxt←SetEnvironmentStyle(self,envptr,styleptr) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[60]))) (self,envptr,styleptr))
#define tiogatxt←SetGlobalStyle(self,styleptr) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[61]))) (self,styleptr))
#define tiogatxt←GetGlobalStyle(self) \
    ((* ((struct style * (*)())((self)->header.tiogatxt←methods->routines[62]))) (self))
#define tiogatxt←ReadTemplate(self,templateName,inserttemplatetext) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[63]))) (self,templateName,inserttemplatetext))
#define tiogatxt←FindViewreference(self,pos,len) \
    ((* ((struct viewref * (*)())((self)->header.tiogatxt←methods->routines[64]))) (self,pos,len))
#define tiogatxt←AlwaysInsertFile(self,file,filename,position) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[65]))) (self,file,filename,position))
#define tiogatxt←InsertFile(self,file,filename,position) \
    ((* ((long (*)())((self)->header.tiogatxt←methods->routines[66]))) (self,file,filename,position))
#define tiogatxt←ClearCompletely(self) \
    ((* ((void (*)())((self)->header.tiogatxt←methods->routines[67]))) (self))
#define tiogatxt←EnumerateEnvironments(self,pos,len,callBack,rock) \
    ((* ((struct environment * (*)())((self)->header.tiogatxt←methods->routines[68]))) (self,pos,len,callBack,rock))
#define tiogatxt←SetExportEnvironments(self,val) \
 ((&(self)->header.text)->exportEnvs = val)
#define tiogatxt←GetExportEnvironments(self) \
 ((&(self)->header.text)->exportEnvs)
#define tiogatxt←GetStyleSheet(self) \
 ((&(self)->header.text)->styleSheet)
#define tiogatxt←SetWriteAsText(self,TorF) \
  (((&(self)->header.text))->WriteAsText = TorF)
#define tiogatxt←GetWriteAsText(self) \
  (((&(self)->header.text))->WriteAsText)
#define tiogatxt←SetCopyAsText(self,TorF) \
  (((&(self)->header.text))->CopyAsText = TorF)
#define tiogatxt←GetCopyAsText(self) \
  (((&(self)->header.text))->CopyAsText)
#define tiogatxt←GetWriteStyle(self) \
 (((&(self)->header.text))->writeStyle)
#define tiogatxt←SetWriteStyle(self,style) \
 (((&(self)->header.text))->writeStyle = style)

#define tiogatxt←NewFromObject(self) \
    ((* ((struct tiogatxt * (*)())((self)->header.tiogatxt←methods->info->procs->routines[0]))) (&tiogatxt←classheader, (self)->header.tiogatxt←methods->info->versionnumber))
#define tiogatxt←New() \
    (*((struct tiogatxt * (*)()) (tiogatxt←classheader.classprocedures->routines[0])))(&tiogatxt←classheader,tiogatxt←VERSION)
#define tiogatxt←Initialize(self) \
    (*((void (*)()) (tiogatxt←classheader.classprocedures->routines[2])))(&tiogatxt←classheader,self, tiogatxt←VERSION)

#define tiogatxt←Destroy(self) \
    ((* ((void (*)()) ((self)->header.tiogatxt←methods->info->procs->routines[1]))) (&tiogatxt←classheader, self))
#define tiogatxt←Finalize(self) \
    (*((void (*)()) (tiogatxt←classheader.classprocedures->routines[3])))(&tiogatxt←classheader,self)



#endif /* !defined(tiogatxt←ROUTINESDEFINED) && !defined(dontDefineRoutinesFor←tiogatxt ) && !defined(class←StaticEntriesOnly)*/