boot3/Interfaces/CIncludes/TextEdit.h
Elliot Nunn 5b0f0cc134 Bring in CubeE sources
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included.

The Tools directory, containing mostly junk, is also excluded.
2017-12-26 10:02:57 +08:00

424 lines
15 KiB
C

/************************************************************
Created: Saturday, July 27, 1991 at 7:16 PM
TextEdit.h
C Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1985-1992
All rights reserved
Change History (most recent first):
<23> 8/4/92 DCL Changing a few comments for New Inside Mac: doToggle,
teFInlineInput & teFUseTextServices
<22> 7/15/92 SMB ## <ys>: Move DoText selectors from TextEditPriv.a to here so
the whole darn world can use them instead of hard-coded
constants!
<21> 5/6/92 DCL NIIM: Added synonyms for TESetJust (TESetAlignment),
GetStyleScrap (TEGetStyleScrapHandle), SetClikLoop
(TESetClickLoop), SetWordBreak (TESetWordBreak).
<20> 4/15/92 DCL Changed TESetStyleScrap to TEUseStyleScrap
<19> 4/14/92 DCL Added new improved names in the continued pursuit of
name-nirvana in IM 2nd Edition.
<18> 4/6/92 DCL For New Inside Mac: Adding fancy new improved names for old
crusty routines. #1025005 Replaced recalBack & recalLines
with hDispatchRec in TERec.
<17> 2/17/92 MH Added better spelling SetStyleScrap.
<16> 11/8/91 JL Changed CharsPtr from a pointer to the Chars struct to a pointer
to the same type as the Chars struct. Chars is an array and
therefore a pointer to it would be a pointer to a pointer.
<15> 9/12/91 MH Add correctly spelled versions of 6 ..Style... Calls
(...Style... vs. Styl...)
<14> 7/31/91 JL Updated Copyright.
<13> 1/27/91 LN Checked in Database generate file from DSG.
<12> 11/14/90 JL Put formal parameter names back.
<11> 11/5/90 dba change TEGetScrapLen to be a #define
<10> 11/4/90 dba got rid of some extraneous parameter names; added more use of
const in parameters; change TEScrapHandle() to a #define
<9> 10/30/90 SMB Added intTextWidthHook as a new selector to the TECustomHook and
TextWidthHook as an offset into the dispatch table. Added new
feature bit, teFUseTextServices, to allow an application to
disable inline input.
<8> 10/24/90 JL Changed #Defines to anonymous enums.
<7> 6/11/90 SMB NEEDED FOR SIXPACK & 7.0: added TEFeatureFlag bit definition for
inline input, teFInlineInput.
<6> 2/13/90 SMB NEEDED for 6.0.5 - Added nWIDTHHook, IntNWidthHook for
TextEdit's new C2P routine.
<3> 1/30/90 SMB NEEDED for 6.0.5 - Adding names of FindWord callers.
<2> 1/17/90 SMB NEEDED FOR 6.0.5: Moved newTEFlags and intDispSize to
TextEditPriv.h. Added new names for TESetJust. Also added
offsets into TEDispatchRec and set/replace style modes.
<1> 12/18/90 CCH Adding for the first time into BBS.
** 1.3 smb 10/05/1989 Used Pascal comment delimitors rather than C! Oops.
** 1.2 smb 09/25/1989 Added selector for new interface, TEFeatureFlag
** 1.1 CCH 11/ 9/1988 Fixed headers and removed projector resource.
** 1.0 CCH 11/ 9/1988 Adding to EASE.
************************************************************/
#ifndef __TEXTEDIT__
#define __TEXTEDIT__
#ifndef __QUICKDRAW__
#include <Quickdraw.h>
#endif
enum {
/* Justification (word alignment) styles */
teJustLeft = 0,
teJustCenter = 1,
teJustRight = -1,
teForceLeft = -2,
/* new names for the Justification (word alignment) styles */
teFlushDefault = 0, /*flush according to the line direction */
teCenter = 1, /*center justify (word alignment) */
teFlushRight = -1, /*flush right for all scripts */
teFlushLeft = -2, /*flush left for all scripts */
/* Set/Replace style modes */
fontBit = 0, /*set font*/
faceBit = 1, /*set face*/
sizeBit = 2, /*set size*/
clrBit = 3, /*set color*/
addSizeBit = 4, /*add size mode*/
toggleBit = 5, /*set faces in toggle mode*/
toglBit = 5, /* obsolete. use toggleBit */
/* TESetStyle/TEContinuousStyle modes */
doFont = 1, /* set font (family) number*/
doFace = 2, /*set character style*/
doSize = 4, /*set type size*/
doColor = 8, /*set color*/
doAll = 15, /*set all attributes*/
addSize = 16 /*adjust type size*/
};
enum {
doToggle = 32, /*toggle mode for TESetStyle*/
/* offsets into TEDispatchRec */
EOLHook = 0, /*[ProcPtr] TEEOLHook*/
DRAWHook = 4, /*[ProcPtr] TEWidthHook*/
WIDTHHook = 8, /*[ProcPtr] TEDrawHook*/
HITTESTHook = 12, /*[ProcPtr] TEHitTestHook*/
nWIDTHHook = 24, /*[ProcPtr] nTEWidthHook*/
TextWidthHook = 28, /*[ProcPtr] TETextWidthHook*/
/* selectors for TECustomHook */
intEOLHook = 0, /*TEIntHook value*/
intDrawHook = 1, /*TEIntHook value*/
intWidthHook = 2, /*TEIntHook value*/
intHitTestHook = 3, /*TEIntHook value*/
intNWidthHook = 6, /*TEIntHook value for new version of WidthHook*/
intTextWidthHook = 7, /*TEIntHook value for new TextWidthHook*/
/* feature or bit definitions for TEFeatureFlag */
teFAutoScroll = 0, /*00000001b*/
teFAutoScr = 0, /*00000001b obsolete. use teFAutoScroll*/
teFTextBuffering = 1, /*00000010b*/
teFOutlineHilite = 2, /*00000100b*/
teFInlineInput = 3, /*00001000b */
teFUseTextServices = 4, /*00010000b */
/* action for the new "bit (un)set" interface, TEFeatureFlag */
TEBitClear = 0,
TEBitSet = 1 /*set the selector bit*/
};
enum {
TEBitTest = -1, /*no change; just return the current setting*/
teBitClear = 0,
teBitSet = 1, /*set the selector bit*/
teBitTest = -1, /*no change; just return the current setting*/
/*constants for identifying the routine that called FindWord */
teWordSelect = 4, /*clickExpand to select word*/
teWordDrag = 8, /*clickExpand to drag new word*/
teFromFind = 12, /*FindLine called it ($0C)*/
teFromRecal = 16, /*RecalLines called it ($10) obsolete */
/*constants for identifying DoText selectors */
teFind = 0, /*DoText called for searching*/
teHighlight = 1, /*DoText called for highlighting*/
teDraw = -1, /*DoText called for drawing text*/
teCaret = -2 /*DoText called for drawing the caret*/
};
typedef pascal Boolean (*WordBreakProcPtr)(Ptr text, short charPos);
typedef pascal Boolean (*ClikLoopProcPtr)(void);
struct TERec {
Rect destRect;
Rect viewRect;
Rect selRect;
short lineHeight;
short fontAscent;
Point selPoint;
short selStart;
short selEnd;
short active;
WordBreakProcPtr wordBreak;
ClikLoopProcPtr clikLoop;
long clickTime;
short clickLoc;
long caretTime;
short caretState;
short just;
short teLength;
Handle hText;
/* short recalBack; */
/* short recalLines; */
long hDispatchRec; /* added to replace recalBack & recalLines. it's a handle anyway */
short clikStuff;
short crOnly;
short txFont;
Style txFace; /*txFace is unpacked byte*/
char filler;
short txMode;
short txSize;
GrafPtr inPort;
ProcPtr highHook;
ProcPtr caretHook;
short nLines;
short lineStarts[16001];
};
typedef struct TERec TERec;
typedef TERec *TEPtr, **TEHandle;
typedef char Chars[32001];
typedef char *CharsPtr,**CharsHandle;
struct StyleRun {
short startChar; /*starting character position*/
short styleIndex; /*index in style table*/
};
typedef struct StyleRun StyleRun;
struct STElement {
short stCount; /*number of runs in this style*/
short stHeight; /*line height*/
short stAscent; /*font ascent*/
short stFont; /*font (family) number*/
Style stFace; /*character Style*/
char filler; /*stFace is unpacked byte*/
short stSize; /*size in points*/
RGBColor stColor; /*absolute (RGB) color*/
};
typedef struct STElement STElement;
typedef STElement TEStyleTable[1777], *STPtr, **STHandle;
struct LHElement {
short lhHeight; /*maximum height in line*/
short lhAscent; /*maximum ascent in line*/
};
typedef struct LHElement LHElement;
typedef LHElement LHTable[8001], *LHPtr, **LHHandle; /* ARRAY [0..8000] OF LHElement */
struct ScrpSTElement {
long scrpStartChar; /*starting character position*/
short scrpHeight; /*starting character position*/
short scrpAscent;
short scrpFont;
Style scrpFace; /*unpacked byte*/
char filler; /*scrpFace is unpacked byte*/
short scrpSize;
RGBColor scrpColor;
};
typedef struct ScrpSTElement ScrpSTElement;
typedef ScrpSTElement ScrpSTTable[1601]; /* ARRAY [0..1600] OF ScrpSTElement */
struct StScrpRec {
short scrpNStyles; /*number of styles in scrap*/
ScrpSTTable scrpStyleTab; /*table of styles for scrap*/
};
typedef struct StScrpRec StScrpRec;
typedef StScrpRec *StScrpPtr, **StScrpHandle;
struct NullStRec {
long teReserved; /*reserved for future expansion*/
StScrpHandle nullScrap; /*handle to scrap style table*/
};
typedef struct NullStRec NullStRec;
typedef NullStRec *NullStPtr, **NullStHandle;
struct TEStyleRec {
short nRuns; /*number of style runs*/
short nStyles; /*size of style table*/
STHandle styleTab; /*handle to style table*/
LHHandle lhTab; /*handle to line-height table*/
long teRefCon; /*reserved for application use*/
NullStHandle nullStyle; /*Handle to style set at null selection*/
StyleRun runs[8001]; /*ARRAY [0..8000] OF StyleRun*/
};
typedef struct TEStyleRec TEStyleRec;
typedef TEStyleRec *TEStylePtr, **TEStyleHandle;
struct TextStyle {
short tsFont; /*font (family) number*/
Style tsFace; /*character Style*/
char filler; /*tsFace is unpacked byte*/
short tsSize; /*size in point*/
RGBColor tsColor; /*absolute (RGB) color*/
};
typedef struct TextStyle TextStyle;
typedef TextStyle *TextStylePtr, **TextStyleHandle;
typedef short TEIntHook;
#ifdef __cplusplus
extern "C" {
#endif
pascal void TEInit(void)
= 0xA9CC;
pascal TEHandle TENew(const Rect *destRect,const Rect *viewRect)
= 0xA9D2;
pascal void TEDispose(TEHandle hTE)
= 0xA9CD;
pascal void TESetText(const void *text,long length,TEHandle hTE)
= 0xA9CF;
pascal CharsHandle TEGetText(TEHandle hTE)
= 0xA9CB;
pascal void TEIdle(TEHandle hTE)
= 0xA9DA;
pascal void TESetSelect(long selStart,long selEnd,TEHandle hTE)
= 0xA9D1;
pascal void TEActivate(TEHandle hTE)
= 0xA9D8;
pascal void TEDeactivate(TEHandle hTE)
= 0xA9D9;
pascal void TEKey(short key,TEHandle hTE)
= 0xA9DC;
pascal void TECut(TEHandle hTE)
= 0xA9D6;
pascal void TECopy(TEHandle hTE)
= 0xA9D5;
pascal void TEPaste(TEHandle hTE)
= 0xA9DB;
pascal void TEDelete(TEHandle hTE)
= 0xA9D7;
pascal void TEInsert(const void *text,long length,TEHandle hTE)
= 0xA9DE;
pascal void TESetAlignment(short just,TEHandle hTE)
= 0xA9DF;
pascal void TESetJust(short just,TEHandle hTE)
= 0xA9DF;
pascal void TEUpdate(const Rect *rUpdate,TEHandle hTE)
= 0xA9D3;
pascal void TETextBox(const void *text,long length,const Rect *box,short just)
= 0xA9CE;
pascal void TextBox(const void *text,long length,const Rect *box,short just)
= 0xA9CE;
pascal void TEScroll(short dh,short dv,TEHandle hTE)
= 0xA9DD;
pascal void TESelView(TEHandle hTE)
= 0xA811;
pascal void TEPinScroll(short dh,short dv,TEHandle hTE)
= 0xA812;
pascal void TEAutoView(Boolean fAuto,TEHandle hTE)
= 0xA813;
#define TEScrapHandle() (* (Handle*) 0xAB4)
pascal void TECalText(TEHandle hTE)
= 0xA9D0;
pascal short TEGetOffset(Point pt,TEHandle hTE)
= 0xA83C;
pascal Point TEGetPoint(short offset,TEHandle hTE)
= {0x3F3C,0x0008,0xA83D};
pascal void TEClick(Point pt,Boolean fExtend,TEHandle h)
= 0xA9D4;
pascal TEHandle TEStylNew(const Rect *destRect,const Rect *viewRect)
= 0xA83E;
pascal TEHandle TEStyleNew(const Rect *destRect,const Rect *viewRect)
= 0xA83E;
pascal void SetStylHandle(TEStyleHandle theHandle,TEHandle hTE)
= {0x3F3C,0x0005,0xA83D};
pascal void SetStyleHandle(TEStyleHandle theHandle,TEHandle hTE)
= {0x3F3C,0x0005,0xA83D};
pascal void TESetStyleHandle(TEStyleHandle theHandle,TEHandle hTE)
= {0x3F3C,0x0005,0xA83D};
pascal TEStyleHandle GetStylHandle(TEHandle hTE)
= {0x3F3C,0x0004,0xA83D};
pascal TEStyleHandle GetStyleHandle(TEHandle hTE)
= {0x3F3C,0x0004,0xA83D};
pascal TEStyleHandle TEGetStyleHandle(TEHandle hTE)
= {0x3F3C,0x0004,0xA83D};
pascal void TEGetStyle(short offset,TextStyle *theStyle,short *lineHeight,
short *fontAscent,TEHandle hTE)
= {0x3F3C,0x0003,0xA83D};
pascal void TEStylPaste(TEHandle hTE)
= {0x3F3C,0x0000,0xA83D};
pascal void TEStylePaste(TEHandle hTE)
= {0x3F3C,0x0000,0xA83D};
pascal void TESetStyle(short mode,const TextStyle *newStyle,Boolean fRedraw,
TEHandle hTE)
= {0x3F3C,0x0001,0xA83D};
pascal void TEReplaceStyle(short mode,const TextStyle *oldStyle,const TextStyle *newStyle,
Boolean fRedraw,TEHandle hTE)
= {0x3F3C,0x0002,0xA83D};
pascal StScrpHandle TEGetStyleScrapHandle(TEHandle hTE)
= {0x3F3C,0x0006,0xA83D};
pascal StScrpHandle GetStylScrap(TEHandle hTE)
= {0x3F3C,0x0006,0xA83D};
pascal StScrpHandle GetStyleScrap(TEHandle hTE)
= {0x3F3C,0x0006,0xA83D};
pascal void TEStylInsert(const void *text,long length,StScrpHandle hST,
TEHandle hTE)
= {0x3F3C,0x0007,0xA83D};
pascal void TEStyleInsert(const void *text,long length,StScrpHandle hST,
TEHandle hTE)
= {0x3F3C,0x0007,0xA83D};
pascal long TEGetHeight(long endLine,long startLine,TEHandle hTE)
= {0x3F3C,0x0009,0xA83D};
pascal Boolean TEContinuousStyle(short *mode,TextStyle *aStyle,TEHandle hTE)
= {0x3F3C,0x000A,0xA83D};
pascal void SetStylScrap(long rangeStart,long rangeEnd,StScrpHandle newStyles,
Boolean redraw,TEHandle hTE)
= {0x3F3C,0x000B,0xA83D};
pascal void SetStyleScrap(long rangeStart,long rangeEnd,StScrpHandle newStyles,
Boolean redraw,TEHandle hTE)
= {0x3F3C,0x000B,0xA83D};
pascal void TEUseStyleScrap(long rangeStart,long rangeEnd,StScrpHandle newStyles,
Boolean fRedraw,TEHandle hTE)
= {0x3F3C,0x000B,0xA83D};
pascal void TECustomHook(TEIntHook which,ProcPtr *addr,TEHandle hTE)
= {0x3F3C,0x000C,0xA83D};
pascal long TENumStyles(long rangeStart,long rangeEnd,TEHandle hTE)
= {0x3F3C,0x000D,0xA83D};
pascal short TEFeatureFlag(short feature,short action,TEHandle hTE)
= {0x3F3C,0x000E,0xA83D};
#define TEGetScrapLength() ((long) * (unsigned short *) 0x0AB0)
#define TEGetScrapLen() ((long) * (unsigned short *) 0x0AB0)
pascal void TESetScrapLength(long length);
pascal void TESetScrapLen(long length);
pascal OSErr TEFromScrap(void);
pascal OSErr TEToScrap(void);
pascal void TESetClickLoop(ClikLoopProcPtr clikProc,TEHandle hTE);
pascal void SetClikLoop(ClikLoopProcPtr clikProc,TEHandle hTE);
pascal void TESetWordBreak(WordBreakProcPtr wBrkProc,TEHandle hTE);
pascal void SetWordBreak(WordBreakProcPtr wBrkProc,TEHandle hTE);
void teclick(Point *pt,Boolean fExtend,TEHandle h);
#ifdef __cplusplus
}
#endif
#endif