|
| #define | NewHighHookUPP(userRoutine) |
| |
| #define | NewEOLHookUPP(userRoutine) |
| |
| #define | NewCaretHookUPP(userRoutine) |
| |
| #define | NewWidthHookUPP(userRoutine) |
| |
| #define | NewTextWidthHookUPP(userRoutine) |
| |
| #define | NewNWidthHookUPP(userRoutine) |
| |
| #define | NewDrawHookUPP(userRoutine) |
| |
| #define | NewHitTestHookUPP(userRoutine) |
| |
| #define | NewTEFindWordUPP(userRoutine) |
| |
| #define | NewTERecalcUPP(userRoutine) |
| |
| #define | NewTEDoTextUPP(userRoutine) |
| |
| #define | NewTEClickLoopUPP(userRoutine) |
| |
| #define | NewWordBreakUPP(userRoutine) |
| |
|
#define | DisposeHighHookUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeEOLHookUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeCaretHookUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeWidthHookUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeTextWidthHookUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeNWidthHookUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeDrawHookUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeHitTestHookUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeTEFindWordUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeTERecalcUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeTEDoTextUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeTEClickLoopUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | DisposeWordBreakUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
| |
|
#define | InvokeHighHookUPP(r, pTE, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppHighHookProcInfo, (r), (pTE)) |
| |
| #define | InvokeEOLHookUPP(theChar, pTE, hTE, userUPP) |
| |
|
#define | InvokeCaretHookUPP(r, pTE, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppCaretHookProcInfo, (r), (pTE)) |
| |
| #define | InvokeWidthHookUPP(textLen, textOffset, textBufferPtr, pTE, hTE, userUPP) |
| |
| #define | InvokeTextWidthHookUPP(textLen, textOffset, textBufferPtr, pTE, hTE, userUPP) |
| |
| #define | InvokeNWidthHookUPP(styleRunLen, styleRunOffset, slop, direction, textBufferPtr, lineStart, pTE, hTE, userUPP) |
| |
| #define | InvokeDrawHookUPP(textOffset, drawLen, textBufferPtr, pTE, hTE, userUPP) |
| |
| #define | InvokeHitTestHookUPP(styleRunLen, styleRunOffset, slop, textBufferPtr, pTE, hTE, pixelWidth, charOffset, pixelInChar, userUPP) |
| |
| #define | InvokeTEFindWordUPP(currentPos, caller, pTE, hTE, wordStart, wordEnd, userUPP) |
| |
| #define | InvokeTERecalcUPP(pTE, changeLength, lineStart, firstChar, lastChar, userUPP) |
| |
| #define | InvokeTEDoTextUPP(pTE, firstChar, lastChar, selector, currentGrafPort, charPosition, userUPP) |
| |
|
#define | InvokeTEClickLoopUPP(pTE, userUPP) (Boolean) CALL_ONE_PARAMETER_UPP((userUPP), uppTEClickLoopProcInfo, (pTE)) |
| |
| #define | InvokeWordBreakUPP(text, charPos, userUPP) |
| |
|
#define | NewHighHookProc(userRoutine) NewHighHookUPP(userRoutine) |
| |
|
#define | NewEOLHookProc(userRoutine) NewEOLHookUPP(userRoutine) |
| |
|
#define | NewCaretHookProc(userRoutine) NewCaretHookUPP(userRoutine) |
| |
|
#define | NewWidthHookProc(userRoutine) NewWidthHookUPP(userRoutine) |
| |
|
#define | NewTextWidthHookProc(userRoutine) NewTextWidthHookUPP(userRoutine) |
| |
|
#define | NewNWidthHookProc(userRoutine) NewNWidthHookUPP(userRoutine) |
| |
|
#define | NewDrawHookProc(userRoutine) NewDrawHookUPP(userRoutine) |
| |
|
#define | NewHitTestHookProc(userRoutine) NewHitTestHookUPP(userRoutine) |
| |
|
#define | NewTEFindWordProc(userRoutine) NewTEFindWordUPP(userRoutine) |
| |
|
#define | NewTERecalcProc(userRoutine) NewTERecalcUPP(userRoutine) |
| |
|
#define | NewTEDoTextProc(userRoutine) NewTEDoTextUPP(userRoutine) |
| |
|
#define | NewTEClickLoopProc(userRoutine) NewTEClickLoopUPP(userRoutine) |
| |
|
#define | NewWordBreakProc(userRoutine) NewWordBreakUPP(userRoutine) |
| |
|
#define | CallHighHookProc(userRoutine, r, pTE) InvokeHighHookUPP(r, pTE, userRoutine) |
| |
|
#define | CallEOLHookProc(userRoutine, theChar, pTE, hTE) InvokeEOLHookUPP(theChar, pTE, hTE, userRoutine) |
| |
|
#define | CallCaretHookProc(userRoutine, r, pTE) InvokeCaretHookUPP(r, pTE, userRoutine) |
| |
|
#define | CallWidthHookProc(userRoutine, textLen, textOffset, textBufferPtr, pTE, hTE) InvokeWidthHookUPP(textLen, textOffset, textBufferPtr, pTE, hTE, userRoutine) |
| |
| #define | CallTextWidthHookProc(userRoutine, textLen, textOffset, textBufferPtr, pTE, hTE) |
| |
| #define | CallNWidthHookProc(userRoutine, styleRunLen, styleRunOffset, slop, direction, textBufferPtr, lineStart, pTE, hTE) |
| |
|
#define | CallDrawHookProc(userRoutine, textOffset, drawLen, textBufferPtr, pTE, hTE) InvokeDrawHookUPP(textOffset, drawLen, textBufferPtr, pTE, hTE, userRoutine) |
| |
| #define | CallHitTestHookProc(userRoutine, styleRunLen, styleRunOffset, slop, textBufferPtr, pTE, hTE, pixelWidth, charOffset, pixelInChar) |
| |
| #define | CallTEFindWordProc(userRoutine, currentPos, caller, pTE, hTE, wordStart, wordEnd) |
| |
| #define | CallTERecalcProc(userRoutine, pTE, changeLength, lineStart, firstChar, lastChar) |
| |
| #define | CallTEDoTextProc(userRoutine, pTE, firstChar, lastChar, selector, currentGrafPort, charPosition) |
| |
|
#define | CallTEClickLoopProc(userRoutine, pTE) InvokeTEClickLoopUPP(pTE, userRoutine) |
| |
|
#define | CallWordBreakProc(userRoutine, text, charPos) InvokeWordBreakUPP(text, charPos, userRoutine) |
| |
|
| enum | {
teJustLeft = 0
, teJustCenter = 1
, teJustRight = -1
, teForceLeft
,
teFlushDefault = 0
, teCenter = 1
, teFlushRight = -1
, teFlushLeft = -2
} |
| |
| enum | {
fontBit = 0
, faceBit = 1
, sizeBit = 2
, clrBit = 3
,
addSizeBit = 4
, toggleBit = 5
} |
| |
| enum | {
doFont = 1
, doFace = 2
, doSize = 4
, doColor = 8
,
doAll = 15
, addSize = 16
, doToggle = 32
} |
| |
| enum | {
EOLHook = 0
, DRAWHook = 4
, WIDTHHook = 8
, HITTESTHook = 12
,
nWIDTHHook = 24
, TextWidthHook = 28
} |
| |
| enum | {
intEOLHook = 0
, intDrawHook = 1
, intWidthHook = 2
, intHitTestHook = 3
,
intNWidthHook = 6
, intTextWidthHook = 7
, intInlineInputTSMTEPreUpdateHook
, intInlineInputTSMTEPostUpdateHook
} |
| |
| enum | { teFAutoScroll = 0
, teFUseWhiteBackground = 4
, teFUseInlineInput = 5
, teFInlineInputAutoScroll = 6
} |
| |
| enum | { teFIdleWithEventLoopTimer = 7
} |
| |
| enum | { teBitClear = 0
, teBitSet = 1
, teBitTest = -1
} |
| |
| enum | { teWordSelect = 4
, teWordDrag = 8
, teFromFind = 12
, teFromRecal = 16
} |
| |
| enum | { teFind = 0
, teHighlight = 1
, teDraw = -1
, teCaret = -2
} |
| |
| enum | { uppHighHookProcInfo = 0x0000000F
} |
| |
| enum | { uppEOLHookProcInfo = 0x0000001F
} |
| |
| enum | { uppCaretHookProcInfo = 0x0000000F
} |
| |
| enum | { uppWidthHookProcInfo = 0x0000002F
} |
| |
| enum | { uppTextWidthHookProcInfo = 0x0000002F
} |
| |
| enum | { uppNWidthHookProcInfo = 0x0000003F
} |
| |
| enum | { uppDrawHookProcInfo = 0x0000004F
} |
| |
| enum | { uppHitTestHookProcInfo = 0x0000005F
} |
| |
| enum | { uppTEFindWordProcInfo = 0x0000006F
} |
| |
| enum | { uppTERecalcProcInfo = 0x0000009F
} |
| |
| enum | { uppTEDoTextProcInfo = 0x000000AF
} |
| |
| enum | { uppTEClickLoopProcInfo = 0x0000F812
} |
| |
| enum | { uppWordBreakProcInfo = 0x00029812
} |
| |
| enum | |
| |
|
|
typedef | CALLBACK_API_REGISTER68K (void, HighHookProcPtr,(const Rect *r, TEPtr pTE)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (Boolean, EOLHookProcPtr,(char theChar, TEPtr pTE, TEHandle hTE)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (void, CaretHookProcPtr,(const Rect *r, TEPtr pTE)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (unsigned short, WidthHookProcPtr,(unsigned short textLen, unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (unsigned short, TextWidthHookProcPtr,(unsigned short textLen, unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (unsigned short, NWidthHookProcPtr,(unsigned short styleRunLen, unsigned short styleRunOffset, short slop, short direction, void *textBufferPtr, short *lineStart, TEPtr pTE, TEHandle hTE)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (void, DrawHookProcPtr,(unsigned short textOffset, unsigned short drawLen, void *textBufferPtr, TEPtr pTE, TEHandle hTE)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (Boolean, HitTestHookProcPtr,(unsigned short styleRunLen, unsigned short styleRunOffset, unsigned short slop, void *textBufferPtr, TEPtr pTE, TEHandle hTE, unsigned short *pixelWidth, unsigned short *charOffset, Boolean *pixelInChar)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (void, TEFindWordProcPtr,(unsigned short currentPos, short caller, TEPtr pTE, TEHandle hTE, unsigned short *wordStart, unsigned short *wordEnd)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (void, TERecalcProcPtr,(TEPtr pTE, unsigned short changeLength, unsigned short *lineStart, unsigned short *firstChar, unsigned short *lastChar)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (void, TEDoTextProcPtr,(TEPtr pTE, unsigned short firstChar, unsigned short lastChar, short selector, GrafPtr *currentGrafPort, short *charPosition)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (Boolean, TEClickLoopProcPtr,(TEPtr pTE)) |
| |
|
typedef | CALLBACK_API_REGISTER68K (Boolean, WordBreakProcPtr,(Ptr text, short charPos)) |
| |
| typedef | REGISTER_UPP_TYPE (HighHookProcPtr) HighHookUPP |
| |
|
typedef | REGISTER_UPP_TYPE (EOLHookProcPtr) EOLHookUPP |
| |
|
typedef | REGISTER_UPP_TYPE (CaretHookProcPtr) CaretHookUPP |
| |
|
typedef | REGISTER_UPP_TYPE (WidthHookProcPtr) WidthHookUPP |
| |
|
typedef | REGISTER_UPP_TYPE (TextWidthHookProcPtr) TextWidthHookUPP |
| |
|
typedef | REGISTER_UPP_TYPE (NWidthHookProcPtr) NWidthHookUPP |
| |
|
typedef | REGISTER_UPP_TYPE (DrawHookProcPtr) DrawHookUPP |
| |
|
typedef | REGISTER_UPP_TYPE (HitTestHookProcPtr) HitTestHookUPP |
| |
|
typedef | REGISTER_UPP_TYPE (TEFindWordProcPtr) TEFindWordUPP |
| |
|
typedef | REGISTER_UPP_TYPE (TERecalcProcPtr) TERecalcUPP |
| |
|
typedef | REGISTER_UPP_TYPE (TEDoTextProcPtr) TEDoTextUPP |
| |
|
typedef | REGISTER_UPP_TYPE (TEClickLoopProcPtr) TEClickLoopUPP |
| |
|
typedef | REGISTER_UPP_TYPE (WordBreakProcPtr) WordBreakUPP |
| |
| HighHookUPP | NewHighHookUPP (HighHookProcPtr userRoutine) |
| |
| EOLHookUPP | NewEOLHookUPP (EOLHookProcPtr userRoutine) |
| |
| CaretHookUPP | NewCaretHookUPP (CaretHookProcPtr userRoutine) |
| |
| WidthHookUPP | NewWidthHookUPP (WidthHookProcPtr userRoutine) |
| |
| TextWidthHookUPP | NewTextWidthHookUPP (TextWidthHookProcPtr userRoutine) |
| |
| NWidthHookUPP | NewNWidthHookUPP (NWidthHookProcPtr userRoutine) |
| |
| DrawHookUPP | NewDrawHookUPP (DrawHookProcPtr userRoutine) |
| |
| HitTestHookUPP | NewHitTestHookUPP (HitTestHookProcPtr userRoutine) |
| |
| TEFindWordUPP | NewTEFindWordUPP (TEFindWordProcPtr userRoutine) |
| |
| TERecalcUPP | NewTERecalcUPP (TERecalcProcPtr userRoutine) |
| |
| TEDoTextUPP | NewTEDoTextUPP (TEDoTextProcPtr userRoutine) |
| |
| TEClickLoopUPP | NewTEClickLoopUPP (TEClickLoopProcPtr userRoutine) |
| |
| WordBreakUPP | NewWordBreakUPP (WordBreakProcPtr userRoutine) |
| |
| void | DisposeHighHookUPP (HighHookUPP userUPP) |
| |
| void | DisposeEOLHookUPP (EOLHookUPP userUPP) |
| |
| void | DisposeCaretHookUPP (CaretHookUPP userUPP) |
| |
| void | DisposeWidthHookUPP (WidthHookUPP userUPP) |
| |
| void | DisposeTextWidthHookUPP (TextWidthHookUPP userUPP) |
| |
| void | DisposeNWidthHookUPP (NWidthHookUPP userUPP) |
| |
| void | DisposeDrawHookUPP (DrawHookUPP userUPP) |
| |
| void | DisposeHitTestHookUPP (HitTestHookUPP userUPP) |
| |
| void | DisposeTEFindWordUPP (TEFindWordUPP userUPP) |
| |
| void | DisposeTERecalcUPP (TERecalcUPP userUPP) |
| |
| void | DisposeTEDoTextUPP (TEDoTextUPP userUPP) |
| |
| void | DisposeTEClickLoopUPP (TEClickLoopUPP userUPP) |
| |
| void | DisposeWordBreakUPP (WordBreakUPP userUPP) |
| |
| void | InvokeHighHookUPP (const Rect *r, TEPtr pTE, HighHookUPP userUPP) |
| |
| Boolean | InvokeEOLHookUPP (char theChar, TEPtr pTE, TEHandle hTE, EOLHookUPP userUPP) |
| |
| void | InvokeCaretHookUPP (const Rect *r, TEPtr pTE, CaretHookUPP userUPP) |
| |
| unsigned short | InvokeWidthHookUPP (unsigned short textLen, unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE, WidthHookUPP userUPP) |
| |
| unsigned short | InvokeTextWidthHookUPP (unsigned short textLen, unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE, TextWidthHookUPP userUPP) |
| |
| unsigned short | InvokeNWidthHookUPP (unsigned short styleRunLen, unsigned short styleRunOffset, short slop, short direction, void *textBufferPtr, short *lineStart, TEPtr pTE, TEHandle hTE, NWidthHookUPP userUPP) |
| |
| void | InvokeDrawHookUPP (unsigned short textOffset, unsigned short drawLen, void *textBufferPtr, TEPtr pTE, TEHandle hTE, DrawHookUPP userUPP) |
| |
| Boolean | InvokeHitTestHookUPP (unsigned short styleRunLen, unsigned short styleRunOffset, unsigned short slop, void *textBufferPtr, TEPtr pTE, TEHandle hTE, unsigned short *pixelWidth, unsigned short *charOffset, Boolean *pixelInChar, HitTestHookUPP userUPP) |
| |
| void | InvokeTEFindWordUPP (unsigned short currentPos, short caller, TEPtr pTE, TEHandle hTE, unsigned short *wordStart, unsigned short *wordEnd, TEFindWordUPP userUPP) |
| |
| void | InvokeTERecalcUPP (TEPtr pTE, unsigned short changeLength, unsigned short *lineStart, unsigned short *firstChar, unsigned short *lastChar, TERecalcUPP userUPP) |
| |
| void | InvokeTEDoTextUPP (TEPtr pTE, unsigned short firstChar, unsigned short lastChar, short selector, GrafPtr *currentGrafPort, short *charPosition, TEDoTextUPP userUPP) |
| |
| Boolean | InvokeTEClickLoopUPP (TEPtr pTE, TEClickLoopUPP userUPP) |
| |
| Boolean | InvokeWordBreakUPP (Ptr text, short charPos, WordBreakUPP userUPP) |
| |
| Handle | TEScrapHandle (void) |
| | Obtain handle leading to TextEdit scrap. More...
|
| |
| long | TEGetScrapLength (void) |
| |
| void | TEInit (void) |
| |
| TEHandle | TENew (const Rect *destRect, const Rect *viewRect) |
| |
| void | TEDispose (TEHandle hTE) |
| |
| void | TESetText (const void *text, long length, TEHandle hTE) |
| |
| CharsHandle | TEGetText (TEHandle hTE) |
| |
| void | TEIdle (TEHandle hTE) |
| |
| void | TESetSelect (long selStart, long selEnd, TEHandle hTE) |
| |
| void | TEActivate (TEHandle hTE) |
| |
| void | TEDeactivate (TEHandle hTE) |
| |
| void | TEKey (CharParameter key, TEHandle hTE) |
| |
| void | TECut (TEHandle hTE) |
| |
| void | TECopy (TEHandle hTE) |
| |
| void | TEPaste (TEHandle hTE) |
| |
| void | TEDelete (TEHandle hTE) |
| |
| void | TEInsert (const void *text, long length, TEHandle hTE) |
| |
| void | TESetAlignment (short just, TEHandle hTE) |
| |
| void | TEUpdate (const Rect *rUpdate, TEHandle hTE) |
| |
| void | TETextBox (const void *text, long length, const Rect *box, short just) |
| |
| void | TEScroll (short dh, short dv, TEHandle hTE) |
| |
| void | TESelView (TEHandle hTE) |
| |
| void | TEPinScroll (short dh, short dv, TEHandle hTE) |
| |
| void | TEAutoView (Boolean fAuto, TEHandle hTE) |
| |
| void | TECalText (TEHandle hTE) |
| |
| short | TEGetOffset (Point pt, TEHandle hTE) |
| |
| Point | TEGetPoint (short offset, TEHandle hTE) |
| |
| void | TEClick (Point pt, Boolean fExtend, TEHandle h) |
| |
| TEHandle | TEStyleNew (const Rect *destRect, const Rect *viewRect) |
| |
| void | TESetStyleHandle (TEStyleHandle theHandle, TEHandle hTE) |
| |
| TEStyleHandle | TEGetStyleHandle (TEHandle hTE) |
| |
| void | TEGetStyle (short offset, TextStyle *theStyle, short *lineHeight, short *fontAscent, TEHandle hTE) |
| |
| void | TEStylePaste (TEHandle hTE) |
| |
| void | TESetStyle (short mode, const TextStyle *newStyle, Boolean fRedraw, TEHandle hTE) |
| |
| void | TEReplaceStyle (short mode, const TextStyle *oldStyle, const TextStyle *newStyle, Boolean fRedraw, TEHandle hTE) |
| |
| StScrpHandle | TEGetStyleScrapHandle (TEHandle hTE) |
| |
| void | TEStyleInsert (const void *text, long length, StScrpHandle hST, TEHandle hTE) |
| |
| long | TEGetHeight (long endLine, long startLine, TEHandle hTE) |
| |
| Boolean | TEContinuousStyle (short *mode, TextStyle *aStyle, TEHandle hTE) |
| | TEContinuousStyle Check if a style element is continuous across selection. More...
|
| |
| void | TEUseStyleScrap (long rangeStart, long rangeEnd, StScrpHandle newStyles, Boolean fRedraw, TEHandle hTE) |
| |
| void | TECustomHook (TEIntHook which, UniversalProcPtr *addr, TEHandle hTE) |
| | Install custom handlers for TextEdit bottleneck routines. More...
|
| |
| long | TENumStyles (long rangeStart, long rangeEnd, TEHandle hTE) |
| | Obtains a count of style runs in a range of text. More...
|
| |
|
The action for the new | bit (un) set" interface |
| |
| OSErr | TEGetHiliteRgn (RgnHandle region, TEHandle hTE) |
| |
| void | TESetScrapLength (long length) |
| |
| OSErr | TEFromScrap (void) |
| |
| OSErr | TEToScrap (void) |
| |
| void | TESetClickLoop (TEClickLoopUPP clikProc, TEHandle hTE) |
| |
| void | TESetWordBreak (WordBreakUPP wBrkProc, TEHandle hTE) |
| |
| TEDoTextUPP | TEGetDoTextHook (void) |
| |
| void | TESetDoTextHook (TEDoTextUPP value) |
| |
| TERecalcUPP | TEGetRecalcHook (void) |
| |
| void | TESetRecalcHook (TERecalcUPP value) |
| |
| TEFindWordUPP | TEGetFindWordHook (void) |
| |
| void | TESetFindWordHook (TEFindWordUPP value) |
| |
| Handle | TEGetScrapHandle (void) |
| |
| void | TESetScrapHandle (Handle value) |
| |
| UInt8 | LMGetWordRedraw (void) |
| |
| void | LMSetWordRedraw (UInt8 value) |
| |
| void | teclick (Point *pt, Boolean fExtend, TEHandle h) |
| |
TextEdit Interfaces.
- Introduced In: System 8.5
- Avaliable From: Universal Interfaces 3.4.1
- Copyright: © 1985-2001 by Apple Computer, Inc., all rights reserved
For bug reports, consult the following page on the World Wide Web:
http://developer.apple.com/bugreporter/
| typedef REGISTER_UPP_TYPE |
( |
HighHookProcPtr |
| ) |
|
Important note about TEClickLoopProcPtr and WordBreakProcPtr
At one point these were defined as returning the function result in the condition code Z-bit. This was correct, in that it was what the 68K implementation of TextEdit actually tested. But, MixedMode had a different idea of what returning a boolean in the Z-bit meant. MixedMode was setting the Z-bit the complement of what was wanted.
Therefore, these ProcPtrs have been changed (back) to return the result in register D0. It turns out that for register based routines, MixedMode sets the Z-bit of the 68K emulator based on the contents of the return result register. Thus we can get the Z-bit set correctly.
But, when TextEdit is recoded in PowerPC, if it calls a 68K ClickLoop or WordBreak routine, register D0 had better have the result (in addition to the Z-bit). Therefore all 68K apps should make sure their ClickLoop or WordBreak routines set register D0 at the end. There is no function to get/set the low-mem for FindWordHook at 0x07F8. This is because it is not a low-mem ProcPtr. That address is the entry in the OS TrapTable for trap 0xA0FE. You can use Get/SetTrapAddress to acccess it. The following ProcPtrs cannot be written in or called from a high-level language without the help of mixed mode or assembly glue because they use the following parameter-passing conventions:
typedef pascal void (*HighHookProcPtr)(const Rect *r, TEPtr pTE); typedef pascal void (*CaretHookProcPtr)(const Rect *r, TEPtr pTE);
In:
=> r on stack
=> pTE A3.L
Out:
none
typedef pascal Boolean (*EOLHookProcPtr)(char theChar, TEPtr pTE, TEHandle hTE);
In:
=> theChar D0.B
=> pTE A3.L
=> hTE A4.L
Out:
<= Boolean Z bit of the CCR
typedef pascal unsigned short (*WidthHookProcPtr)(unsigned short textLen, unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE); typedef pascal unsigned short (*TextWidthHookProcPtr)(unsigned short textLen, unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE);
In:
=> textLen D0.W
=> textOffset D1.W
=> textBufferPtr A0.L
=> pTE A3.L
=> hTE A4.L
Out:
<= unsigned short D1.W
typedef pascal unsigned short (*NWidthHookProcPtr)(unsigned short styleRunLen, unsigned short styleRunOffset, short slop, short direction, void textBufferPtr, short *lineStart, TEPtr pTE, TEHandle hTE);
In:
=> styleRunLen D0.W
=> styleRunOffset D1.W
=> slop D2.W (low)
=> direction D2.W (high)
=> textBufferPtr A0.L
=> lineStart A2.L
=> pTE A3.L
=> hTE A4.L
Out:
<= unsigned short D1.W
typedef pascal void (*DrawHookProcPtr)(unsigned short textOffset, unsigned short drawLen, void *textBufferPtr, TEPtr pTE, TEHandle hTE);
In:
=> textOffset D0.W
=> drawLen D1.W
=> textBufferPtr A0.L
=> pTE A3.L
=> hTE A4.L
Out:
none
typedef pascal Boolean (*HitTestHookProcPtr)(unsigned short styleRunLen, unsigned short styleRunOffset, unsigned short slop, void *textBufferPtr, TEPtr pTE, TEHandle hTE, unsigned short *pixelWidth, unsigned short charOffset, Boolean *pixelInChar);
In:
=> styleRunLen D0.W
=> styleRunOffset D1.W
=> slop D2.W
=> textBufferPtr A0.L
=> pTE A3.L
=> hTE A4.L
Out:
<= pixelWidth D0.W (low)
<= Boolean D0.W (high)
<= charOffset D1.W
<= pixelInChar D2.W
typedef pascal void (*TEFindWordProcPtr)(unsigned short currentPos, short caller, TEPtr pTE, TEHandle hTE, unsigned short *wordStart, unsigned short wordEnd);
In:
=> currentPos D0.W
=> caller D2.W
=> pTE A3.L
=> hTE A4.L
Out:
<= wordStart D0.W
<= wordEnd D1.W
typedef pascal void (*TERecalcProcPtr)(TEPtr pTE, unsigned short changeLength, unsigned short *lineStart, unsigned short *firstChar, unsigned short *lastChar);
In:
=> pTE A3.L
=> changeLength D7.W
Out:
<= lineStart D2.W
<= firstChar D3.W
<= lastChar D4.W
typedef pascal void (*TEDoTextProcPtr)(TEPtr pTE, unsigned short firstChar, unsigned short lastChar, short selector, GrafPtr *currentGrafPort, short charPosition);
In:
=> pTE A3.L
=> firstChar D3.W
=> lastChar D4.W
=> selector D7.W
Out:
<= currentGrafPort A0.L
<= charPosition D0.W