#if !defined (_TEXTEDIT_H_) #define _TEXTEDIT_H_ /* * Copyright 1986, 1989, 1990, 1995 by Abacus Research and Development, Inc. * All rights reserved. * * $Id: TextEdit.h 63 2004-12-24 18:19:43Z ctm $ */ #include "QuickDraw.h" /* new justification defines, accepted by `TESetAlignment ()' and `TETextBox ()' */ #define teFlushDefault 0 #define teCenter 1 #define teFlushRight (-1) #define teFlushLeft (-2) /* older justification defines */ #define teJustLeft 0 #define teJustCenter 1 #define teJustRight (-1) #define teForceLeft (-2) #define doFont 1 #define doFace 2 #define doSize 4 #define doColor 8 #define doAll 15 #define addSize 16 #define doToggle 32 #define teFind 0 #define teHilite 1 #define teDraw -1 #define teCaret -2 #define caret_vis (-1) #define caret_invis (255) #define hilite_vis (0) #define teFAutoScroll (0) #define teFTextBuffering (1) #define teFOutlineHilite (2) #define teFInlineInput (3) #define teFUseTextServices (4) #define teBitClear (0) #define teBitSet (1) #define teBitTest (-1) typedef struct { Rect destRect PACKED; Rect viewRect PACKED; Rect selRect PACKED; INTEGER lineHeight PACKED; INTEGER fontAscent PACKED; Point selPoint PACKED; INTEGER selStart PACKED; INTEGER selEnd PACKED; INTEGER active PACKED; ProcPtr wordBreak PACKED_P; ProcPtr clikLoop PACKED_P; LONGINT clickTime PACKED; INTEGER clickLoc PACKED; LONGINT caretTime PACKED; INTEGER caretState PACKED; INTEGER just PACKED; INTEGER teLength PACKED; Handle hText PACKED_P; INTEGER recalBack PACKED; INTEGER recalLines PACKED; INTEGER clikStuff PACKED; INTEGER crOnly PACKED; INTEGER txFont PACKED; Style txFace PACKED; Byte filler PACKED; INTEGER txMode PACKED; INTEGER txSize PACKED; GrafPtr inPort PACKED_P; ProcPtr highHook PACKED_P; ProcPtr caretHook PACKED_P; INTEGER nLines PACKED; INTEGER lineStarts[1] PACKED; } TERec; typedef TERec *TEPtr; typedef struct { TEPtr p PACKED_P; } HIDDEN_TEPtr; typedef HIDDEN_TEPtr *TEHandle; typedef struct { INTEGER startChar PACKED; INTEGER styleIndex PACKED; } StyleRun; typedef struct { INTEGER stCount PACKED; INTEGER stHeight PACKED; INTEGER stAscent PACKED; INTEGER stFont PACKED; Style stFace PACKED; Byte filler PACKED; INTEGER stSize PACKED; RGBColor stColor PACKED; } STElement; typedef STElement TEStyleTable[1]; typedef STElement *STPtr; typedef struct { STPtr p PACKED_P; } HIDDEN_STPtr; typedef HIDDEN_STPtr *STHandle; typedef struct { INTEGER lhHeight PACKED; INTEGER lhAscent PACKED; } LHElement; typedef LHElement LHTable[1]; typedef LHElement *LHPtr; typedef struct { LHPtr p PACKED_P; } HIDDEN_LHPtr; typedef HIDDEN_LHPtr *LHHandle; typedef struct { INTEGER tsFont PACKED; Style tsFace PACKED; Byte filler PACKED; INTEGER tsSize PACKED; RGBColor tsColor PACKED; } TextStyle; typedef struct { LONGINT scrpStartChar PACKED; INTEGER scrpHeight PACKED; INTEGER scrpAscent PACKED; INTEGER scrpFont PACKED; Style scrpFace PACKED; Byte filler PACKED; INTEGER scrpSize PACKED; RGBColor scrpColor PACKED; } ScrpSTElement; typedef ScrpSTElement ScrpSTTable[1]; typedef struct { INTEGER scrpNStyles PACKED; ScrpSTTable scrpStyleTab PACKED; } StScrpRec; typedef StScrpRec *StScrpPtr; typedef struct { StScrpPtr p PACKED_P; } HIDDEN_StScrpPtr; typedef HIDDEN_StScrpPtr *StScrpHandle; typedef struct { LONGINT TEReserved PACKED; StScrpHandle nullScrap PACKED_P; } NullSTRec; typedef NullSTRec *NullSTPtr; typedef struct { NullSTPtr p PACKED_P; } HIDDEN_NullSTPtr; typedef HIDDEN_NullSTPtr *NullSTHandle; typedef struct { INTEGER nRuns PACKED; INTEGER nStyles PACKED; STHandle styleTab PACKED_P; LHHandle lhTab PACKED_P; LONGINT teRefCon PACKED; NullSTHandle nullStyle PACKED_P; StyleRun runs[1] PACKED; } TEStyleRec; typedef TEStyleRec *TEStylePtr; typedef struct { TEStylePtr p PACKED_P; } HIDDEN_TEStylePtr; typedef HIDDEN_TEStylePtr *TEStyleHandle; typedef Byte Chars[1], *CharsPtr, **CharsHandle; /* accessors! */ #define TE_DO_TEXT(te, start, end, what) \ ({ \ int16 retval; \ \ LOCK_HANDLE_EXCURSION_1 \ (te, \ { \ retval = ROMlib_call_TEDoText (STARH (te), start, end, what); \ }); \ retval; \ }) #define TE_CHAR_TO_POINT(te, sel, pt) \ ({ \ LOCK_HANDLE_EXCURSION_1 \ (te, \ { \ te_char_to_point (STARH (te), sel, pt); \ }); \ }) /* no need to lock te, since `te_char_to_lineno' cannot move memory blocks */ #define TE_CHAR_TO_LINENO(te, sel) \ te_char_to_lineno (STARH (te), sel) #define TE_DEST_RECT(te) (HxX ((te), destRect)) #define TE_VIEW_RECT(te) (HxX ((te), viewRect)) #define TE_SEL_RECT(te) (HxX ((te), selRect)) #define TE_SEL_POINT(te) (HxX ((te), selPoint)) #define TE_LINE_STARTS(te) (HxX ((te), lineStarts)) #define TE_GET_STYLE(te) \ ({ \ TEStyleHandle retval; \ \ if (!TE_STYLIZED_P (te)) \ retval = NULL; \ else \ retval = MR (*(TEStyleHandle *) &TE_TX_FONT_X (te)); \ retval; \ }) extern void ROMlib_sledgehammer_te (TEHandle te); #if ERROR_SUPPORTED_P (ERROR_TEXT_EDIT_SLAM) #define TE_SLAM(te) \ ({ \ if (ERROR_ENABLED_P (ERROR_TEXT_EDIT_SLAM)) \ ROMlib_sledgehammer_te (te); \ }) #else /* No ERROR_TEXT_EDIT_SLAM */ #define TE_SLAM(te) #endif /* No ERROR_TEXT_EDIT_SLAM */ #define TE_TX_FACE(te) (HxX ((te), txFace)) #define TE_STYLIZED_P(te) (HxX ((te), txSize) == CWC (-1)) #define TE_LINE_HEIGHT_X(te) (HxX ((te), lineHeight)) #define TE_FONT_ASCENT_X(te) (HxX ((te), fontAscent)) #define TE_LENGTH_X(te) (HxX ((te), teLength)) #define TE_ACTIVE_X(te) (HxX ((te), active)) #define TE_CARET_STATE_X(te) (HxX ((te), caretState)) #define TE_SEL_START_X(te) (HxX ((te), selStart)) #define TE_SEL_END_X(te) (HxX ((te), selEnd)) #define TE_N_LINES_X(te) (HxX ((te), nLines)) #define TE_HTEXT_X(te) (HxX ((te), hText)) #define TE_CLICK_STUFF_X(te) (HxX ((te), clikStuff)) #define TE_CLICK_LOC_X(te) (HxX ((te), clickLoc)) #define TE_CLICK_TIME_X(te) (HxX ((te), clickTime)) #define TE_JUST_X(te) (HxX ((te), just)) #define TE_TX_FONT_X(te) (HxX ((te), txFont)) #define TE_TX_SIZE_X(te) (HxX ((te), txSize)) #define TE_TX_MODE_X(te) (HxX ((te), txMode)) #define TE_IN_PORT_X(te) (HxX ((te), inPort)) #define TE_LINE_HEIGHT(te) (CW (TE_LINE_HEIGHT_X (te))) #define TE_FONT_ASCENT(te) (CW (TE_FONT_ASCENT_X (te))) #define TE_LENGTH(te) (CW (TE_LENGTH_X (te))) #define TE_ACTIVE(te) (CW (TE_ACTIVE_X (te))) #define TE_CARET_STATE(te) (CW (TE_CARET_STATE_X (te))) #define TE_SEL_START(te) (CW (TE_SEL_START_X (te))) #define TE_SEL_END(te) (CW (TE_SEL_END_X (te))) #define TE_N_LINES(te) (CW (TE_N_LINES_X (te))) #define TE_CLICK_STUFF(te) (CW (TE_CLICK_STUFF_X (te))) #define TE_CLICK_LOC(te) (CW (TE_CLICK_LOC_X (te))) #define TE_CLICK_TIME(te) (CL (TE_CLICK_TIME_X (te))) #define TE_HTEXT(te) (MR (TE_HTEXT_X (te))) #define TE_JUST(te) (CW (TE_JUST_X (te))) #define TE_TX_FONT(te) (CW (TE_TX_FONT_X (te))) #define TE_TX_SIZE(te) (CW (TE_TX_SIZE_X (te))) #define TE_TX_MODE(te) (CW (TE_TX_MODE_X (te))) #define TE_IN_PORT(te) (MR (TE_IN_PORT_X (te))) #define TE_FLAGS_X(te) (HxX (TEHIDDENH (te), flags)) #define TE_FLAGS(te) (CL (TE_FLAGS_X (te))) #if !defined (NDEBUG) #define TEP_DO_TEXT(tep, start, end, what) \ ({ \ Handle te; \ \ te = RecoverHandle ((Ptr) tep); \ gui_assert (te && (HGetState (te) & LOCKBIT)); \ ROMlib_call_TEDoText (tep, start, end, what); \ }) #else #define TEP_DO_TEXT(tep, start, end, what) \ ({ ROMlib_call_TEDoText (tep, start, end, what); }) #endif #if !defined (NDEBUG) #define TEP_CHAR_TO_POINT(tep, sel, pt) \ ({ \ Handle te; \ \ te = RecoverHandle ((Ptr) tep); \ gui_assert (te && (HGetState (te) & LOCKBIT)); \ te_char_to_point (tep, sel, pt); \ }) #else #define TEP_CHAR_TO_POINT(tep, sel, pt) \ ({ te_char_to_point (tep, sel, pt); }) #endif #define TEP_CHAR_TO_LINENO(tep, sel) \ te_char_to_lineno (tep, sel) #define TEP_SLAM(tep) \ ({ \ Handle te; \ \ te = RecoverHandle (tep) \ ROMlib_sledgehammer_te (te); \ }) #define TEP_SEL_RECT(te) ((tep)->selRect) #define TEP_DEST_RECT(tep) ((tep)->destRect) #define TEP_VIEW_RECT(tep) ((tep)->viewRect) #define TEP_LINE_STARTS(tep) ((tep)->lineStarts) #define TEP_SEL_POINT(tep) ((tep)->selPoint) #define TEP_TX_FACE(tep) ((tep)->txFace) #define TEP_GET_STYLE(tep) \ ({ \ TEStyleHandle retval; \ \ if (!TEP_STYLIZED_P (tep)) \ retval = NULL; \ else \ retval = MR (*(TEStyleHandle *) &TEP_TX_FONT_X (tep)); \ retval; \ }) #define TEP_STYLIZED_P(tep) ((tep)->txSize == CWC (-1)) #define TEP_LINE_HEIGHT_X(tep) ((tep)->lineHeight) #define TEP_FONT_ASCENT_X(tep) ((tep)->fontAscent) #define TEP_LENGTH_X(tep) ((tep)->teLength) #define TEP_ACTIVE_X(tep) ((tep)->active) #define TEP_CARET_STATE_X(tep) ((tep)->caretState) #define TEP_SEL_START_X(tep) ((tep)->selStart) #define TEP_SEL_END_X(tep) ((tep)->selEnd) #define TEP_N_LINES_X(tep) ((tep)->nLines) #define TEP_HTEXT_X(tep) ((tep)->hText) #define TEP_CLICK_STUFF_X(tep) ((tep)->clikStuff) #define TEP_CLICK_LOC_X(tep) ((tep)->clickLoc) #define TEP_JUST_X(tep) ((tep)->just) #define TEP_TX_FONT_X(tep) ((tep)->txFont) #define TEP_TX_SIZE_X(tep) ((tep)->txSize) #define TEP_IN_PORT_X(tep) ((tep)->inPort) #define TEP_LINE_HEIGHT(tep) (CW (TEP_LINE_HEIGHT_X (tep))) #define TEP_FONT_ASCENT(tep) (CW (TEP_FONT_ASCENT_X (tep))) #define TEP_LENGTH(tep) (CW (TEP_LENGTH_X (tep))) #define TEP_ACTIVE(tep) (CW (TEP_ACTIVE_X (tep))) #define TEP_CARET_STATE(tep) (CW (TEP_CARET_STATE_X (tep))) #define TEP_SEL_START(tep) (CW (TEP_SEL_START_X (tep))) #define TEP_SEL_END(tep) (CW (TEP_SEL_END_X (tep))) #define TEP_N_LINES(tep) (CW (TEP_N_LINES_X (tep))) #define TEP_CLICK_STUFF(tep) (CW (TEP_CLICK_STUFF_X (tep))) #define TEP_CLICK_LOC(tep) (CL (TEP_CLICK_LOC_X (tep))) #define TEP_HTEXT(tep) (MR (TEP_HTEXT_X (tep))) #define TEP_JUST(tep) (CW (TEP_JUST_X (tep))) #define TEP_TX_FONT(tep) (CW (TEP_TX_FONT_X (tep))) #define TEP_TX_SIZE(tep) (CW (TEP_TX_SIZE_X (tep))) #define TEP_IN_PORT(tep) (MR (TEP_IN_PORT_X (tep))) #define TEP_HEIGHT_FOR_LINE(tep, lineno) \ (TEP_STYLIZED_P (tep) && TEP_LINE_HEIGHT_X (tep) == CWC (-1) \ ? ({ \ TEStyleHandle te_style = TEP_GET_STYLE (tep); \ LHElement *lh = STARH (TE_STYLE_LH_TABLE (te_style)); \ LH_HEIGHT (&lh[lineno]); \ }) \ : TEP_LINE_HEIGHT (tep)) #define TEP_ASCENT_FOR_LINE(tep, lineno) \ (TEP_STYLIZED_P (tep) && TEP_FONT_ASCENT_X (tep) == CWC (-1) \ ? ({ \ TEStyleHandle te_style = TEP_GET_STYLE (tep); \ LHElement *lh = STARH (TE_STYLE_LH_TABLE (te_style)); \ LH_ASCENT (&lh[lineno]); \ }) \ : TEP_FONT_ASCENT (tep)) #define TEP_TEXT_WIDTH(tep, text, start, len) \ (TEP_STYLIZED_P (tep) \ ? ROMlib_StyleTextWidth (tep, start, len) \ : TextWidth (text, start, len)) #define LINE_START_X(line_starts, index) \ ((line_starts)[index]) #define LINE_START(line_starts, index) \ (CW (LINE_START_X (line_starts, index))) #define TE_STYLE_SIZE_FOR_N_RUNS(n_runs) \ (sizeof (TEStyleRec) \ - sizeof TE_STYLE_RUNS ((TEStyleHandle) NULL) \ + (n_runs + 1) * sizeof *TE_STYLE_RUNS ((TEStyleHandle) NULL)) #define TE_STYLE_N_RUNS_X(te_style) (HxX ((te_style), nRuns)) #define TE_STYLE_N_STYLES_X(te_style) (HxX ((te_style), nStyles)) #define TE_STYLE_RUNS(te_style) (HxX ((te_style), runs)) #define TE_STYLE_RUN(te_style, run_i) \ (&TE_STYLE_RUNS (te_style)[run_i]) #define TE_STYLE_STYLE_TABLE_X(te_style) \ (HxX ((te_style), styleTab)) #define TE_STYLE_LH_TABLE_X(te_style) \ (HxX ((te_style), lhTab)) #define TE_STYLE_NULL_STYLE_X(te_style) \ (HxX ((te_style), nullStyle)) #define TE_STYLE_N_RUNS(te_style) (CW (TE_STYLE_N_RUNS_X (te_style))) #define TE_STYLE_N_STYLES(te_style) (CW (TE_STYLE_N_STYLES_X (te_style))) #define TE_STYLE_STYLE_TABLE(te_style) \ (MR (TE_STYLE_STYLE_TABLE_X (te_style))) #define TE_STYLE_LH_TABLE(te_style) \ (MR (TE_STYLE_LH_TABLE_X (te_style))) #define TE_STYLE_NULL_STYLE(te_style) \ (MR (TE_STYLE_NULL_STYLE_X (te_style))) #define TE_STYLE_NULL_SCRAP(te_style) \ (NULL_STYLE_NULL_SCRAP (TE_STYLE_NULL_STYLE (te_style))) #define NULL_STYLE_NULL_SCRAP_X(null_style) \ (HxX ((null_style), nullScrap)) #define NULL_STYLE_NULL_SCRAP(null_style) \ (MR (NULL_STYLE_NULL_SCRAP_X (null_style))) #define SCRAP_N_STYLES_X(scrap) \ (HxX ((scrap), scrpNStyles)) #define SCRAP_ST_ELT(scrap, elt_i) \ (&(HxX ((scrap), scrpStyleTab))[elt_i]) #define SCRAP_N_STYLES(scrap) \ (CW (SCRAP_N_STYLES_X (scrap))) #define SCRAP_SIZE_FOR_N_STYLES(n_styles) \ (sizeof (StScrpRec) + ((n_styles) - 1) * sizeof (ScrpSTElement)) #define RUN_START_CHAR_X(run) (STYLE_RUN_START_CHAR_X (run)) #define RUN_STYLE_INDEX_X(run) (STYLE_RUN_STYLE_INDEX_X (run)) #define RUN_START_CHAR(run) (STYLE_RUN_START_CHAR (run)) #define RUN_STYLE_INDEX(run) (STYLE_RUN_STYLE_INDEX (run)) #define STYLE_RUN_START_CHAR_X(run) ((run)->startChar) #define STYLE_RUN_STYLE_INDEX_X(run) ((run)->styleIndex) #define STYLE_RUN_START_CHAR(run) (CW (STYLE_RUN_START_CHAR_X (run))) #define STYLE_RUN_STYLE_INDEX(run) (CW (STYLE_RUN_STYLE_INDEX_X (run))) #define TS_FACE(ts) ((ts)->tsFace) #define TS_FONT_X(ts) ((ts)->tsFont) #define TS_SIZE_X(ts) ((ts)->tsSize) #define TS_COLOR(ts) ((ts)->tsColor) #define TS_FONT(ts) (CW (TS_FONT_X (ts))) #define TS_SIZE(ts) (CW (TS_SIZE_X (ts))) #define LH_HEIGHT_X(lh) ((lh)->lhHeight) #define LH_HEIGHT(lh) (CW (LH_HEIGHT_X (lh))) #define LH_ASCENT_X(lh) ((lh)->lhAscent) #define LH_ASCENT(lh) (CW (LH_ASCENT_X (lh))) #define STYLE_TABLE_SIZE_FOR_N_STYLES(n_styles) \ ((n_styles) * sizeof (STElement)) #define ST_ELT(st, st_elt_i) \ (&STARH (st)[st_elt_i]) #define ST_ELT_FACE(st_elt) ((st_elt)->stFace) #define ST_ELT_COUNT_X(st_elt) ((st_elt)->stCount) #define ST_ELT_HEIGHT_X(st_elt) ((st_elt)->stHeight) #define ST_ELT_ASCENT_X(st_elt) ((st_elt)->stAscent) #define ST_ELT_FONT_X(st_elt) ((st_elt)->stFont) #define ST_ELT_SIZE_X(st_elt) ((st_elt)->stSize) #define ST_ELT_COLOR(st_elt) ((st_elt)->stColor) #define ST_ELT_COUNT(st_elt) (CW (ST_ELT_COUNT_X (st_elt))) #define ST_ELT_HEIGHT(st_elt) (CW (ST_ELT_HEIGHT_X (st_elt))) #define ST_ELT_ASCENT(st_elt) (CW (ST_ELT_ASCENT_X (st_elt))) #define ST_ELT_FONT(st_elt) (CW (ST_ELT_FONT_X (st_elt))) #define ST_ELT_SIZE(st_elt) (CW (ST_ELT_SIZE_X (st_elt))) #define SCRAP_ELT_START_CHAR_X(scrap_elt) \ ((scrap_elt)->scrpStartChar) #define SCRAP_ELT_START_CHAR(scrap_elt) \ (CL (SCRAP_ELT_START_CHAR_X (scrap_elt))) extern boolean_t adjust_attrs (TextStyle *orig_attrs, TextStyle *new_attrs, TextStyle *dst_attrs, TextStyle *continuous_attrs, int16 mode); extern int16 make_style_run_at (TEStyleHandle te_style, int16 sel); extern int16 get_style_index (TEStyleHandle te_style, TextStyle *attrs, int incr_count_p); extern void release_style_index (TEStyleHandle te_style, int16 style_index); extern void stabilize_style_info (TEStyleHandle te_style); extern void te_style_combine_runs (TEStyleHandle te_style); #if !defined (TEDoText_H) extern HIDDEN_ProcPtr TEDoText_H; extern HIDDEN_Handle TEScrpHandle_H; extern INTEGER TEScrpLength; #endif #define TEDoText (TEDoText_H.p) #define TEScrpHandle (TEScrpHandle_H.p) extern pascal trap void C_TESetText( Ptr p, LONGINT ln, TEHandle teh ); extern pascal trap void P_TESetText( Ptr p, LONGINT ln, TEHandle teh); extern pascal trap CharsHandle C_TEGetText( TEHandle teh ); extern pascal trap CharsHandle P_TEGetText( TEHandle teh); extern pascal trap void C_TESetJust( INTEGER j, TEHandle teh ); extern pascal trap void P_TESetJust( INTEGER j, TEHandle teh); extern pascal trap void C_TEUpdate( Rect *r, TEHandle teh ); extern pascal trap void P_TEUpdate( Rect *r, TEHandle teh); extern pascal trap void C_TextBox( Ptr p, LONGINT ln, Rect *r, INTEGER j ); extern pascal trap void P_TextBox( Ptr p, LONGINT ln, Rect *r, INTEGER j ); extern pascal trap void C_TEScroll( INTEGER dh, INTEGER dv, TEHandle teh ); extern pascal trap void P_TEScroll( INTEGER dh, INTEGER dv, TEHandle teh); extern pascal trap void C_TEKey( CHAR thec, TEHandle teh ); extern pascal trap void P_TEKey( CHAR thec, TEHandle teh); extern pascal trap void C_TECopy( TEHandle teh ); extern pascal trap void P_TECopy( TEHandle teh); extern pascal trap void C_TECut( TEHandle teh ); extern pascal trap void P_TECut( TEHandle teh); extern pascal trap void C_TEPaste( TEHandle teh ); extern pascal trap void P_TEPaste( TEHandle teh); extern pascal trap void C_TEDelete( TEHandle teh ); extern pascal trap void P_TEDelete( TEHandle teh); extern pascal trap void C_TEInsert( Ptr p, LONGINT ln, TEHandle teh ); extern pascal trap void P_TEInsert( Ptr p, LONGINT ln, TEHandle teh); extern pascal trap void C_TEPinScroll( INTEGER dh, INTEGER dv, TEHandle teh ); extern pascal trap void P_TEPinScroll( INTEGER dh, INTEGER dv, TEHandle teh ); extern void ROMlib_teautoloop( TEHandle teh ); extern pascal trap void C_TESelView( TEHandle teh ); extern pascal trap void P_TESelView( TEHandle teh); extern pascal trap void C_TEAutoView( BOOLEAN autoflag, TEHandle teh ); extern pascal trap void P_TEAutoView( BOOLEAN autoflag, TEHandle teh ); extern pascal trap TEHandle C_TEStylNew( Rect *dst, Rect *view ); extern pascal trap TEHandle P_TEStylNew( Rect *dst, Rect *view); extern pascal trap void C_SetStylHandle( TEStyleHandle theHandle, TEHandle teh ); extern pascal trap void P_SetStylHandle( TEStyleHandle theHandle, TEHandle teh ); extern pascal trap TEStyleHandle C_GetStylHandle( TEHandle teh ); extern pascal trap TEStyleHandle P_GetStylHandle( TEHandle teh); extern pascal trap StScrpHandle C_GetStylScrap( TEHandle teh ); extern pascal trap StScrpHandle P_GetStylScrap( TEHandle teh); extern pascal trap void C_TEStylInsert( Ptr text, LONGINT length, StScrpHandle hST, TEHandle teh ); extern pascal trap void P_TEStylInsert( Ptr text, LONGINT length, StScrpHandle hST, TEHandle teh ); extern pascal trap INTEGER C_TEGetOffset( Point pt, TEHandle teh ); extern pascal trap INTEGER P_TEGetOffset( Point pt, TEHandle teh); extern pascal trap LONGINT C_TEGetPoint( INTEGER offset, TEHandle teh ); extern pascal trap LONGINT P_TEGetPoint( INTEGER offset, TEHandle teh); extern pascal trap int32 C_TEGetHeight (LONGINT endLine, LONGINT startLine, TEHandle teh); extern pascal trap LONGINT P_TEGetHeight( LONGINT endLine, LONGINT startLine, TEHandle teh ); extern pascal trap void C_TEGetStyle( INTEGER offset, TextStyle *theStyle, INTEGER *lineHeight, INTEGER *fontAscent, TEHandle teh ); extern pascal trap void P_TEGetStyle( INTEGER offset, TextStyle *theStyle, INTEGER *lineHeight, INTEGER *fontAscent, TEHandle teh ); extern pascal trap void C_TEStylPaste( TEHandle teh ); extern pascal trap void P_TEStylPaste( TEHandle teh); extern pascal trap void C_TESetStyle( INTEGER mode, TextStyle *newStyle, BOOLEAN redraw, TEHandle teh ); extern pascal trap void P_TESetStyle( INTEGER mode, TextStyle *newStyle, BOOLEAN redraw, TEHandle teh ); extern pascal trap void C_TEReplaceStyle( INTEGER mode, TextStyle *oldStyle, TextStyle *newStyle, BOOLEAN redraw, TEHandle teh ); extern pascal trap void P_TEReplaceStyle( INTEGER mode, TextStyle *oldStyle, TextStyle *newStyle, BOOLEAN redraw, TEHandle teh ); extern pascal trap BOOLEAN C_TEContinuousStyle( INTEGER *modep, TextStyle *thestyle, TEHandle teh ); extern pascal trap BOOLEAN P_TEContinuousStyle( INTEGER *modep, TextStyle *thestyle, TEHandle teh ); extern pascal trap void C_SetStylScrap( LONGINT start, LONGINT stop, StScrpHandle newstyles, BOOLEAN redraw, TEHandle teh ); extern pascal trap void P_SetStylScrap( LONGINT start, LONGINT stop, StScrpHandle newstyles, BOOLEAN redraw, TEHandle teh ); extern pascal trap void C_TECustomHook( INTEGER sel, HIDDEN_ProcPtr *addr, TEHandle teh ); extern pascal trap void P_TECustomHook( INTEGER sel, HIDDEN_ProcPtr *addr, TEHandle teh ); extern pascal trap LONGINT C_TENumStyles( LONGINT start, LONGINT stop, TEHandle teh ); extern pascal trap LONGINT P_TENumStyles( LONGINT start, LONGINT stop, TEHandle teh ); extern pascal trap void C_TEInit( void ); extern pascal trap void P_TEInit( void ); extern pascal trap TEHandle C_TENew( Rect *dst, Rect *view ); extern pascal trap TEHandle P_TENew( Rect *dst, Rect *view); extern pascal trap void C_TEDispose( TEHandle teh ); extern pascal trap void P_TEDispose( TEHandle teh); extern pascal trap void C_TEIdle( TEHandle teh ); extern pascal trap void P_TEIdle( TEHandle teh); extern pascal trap void C_TEClick( Point p, BOOLEAN ext, TEHandle teh ); extern pascal trap void P_TEClick( Point p, BOOLEAN ext, TEHandle teh); extern pascal trap void C_TESetSelect( LONGINT start, LONGINT stop, TEHandle teh ); extern pascal trap void P_TESetSelect( LONGINT start, LONGINT stop, TEHandle teh ); extern pascal trap void C_TEActivate( TEHandle teh ); extern pascal trap void P_TEActivate( TEHandle teh); extern pascal trap void C_TEDeactivate( TEHandle teh ); extern pascal trap void P_TEDeactivate( TEHandle teh); extern void SetWordBreak( ProcPtr wb, TEHandle teh ); extern void SetClikLoop( ProcPtr cp, TEHandle teh ); extern pascal trap void C_TECalText( TEHandle teh ); extern pascal trap void P_TECalText( TEHandle teh); extern OSErr TEFromScrap( void ); extern OSErr TEToScrap( void ); extern Handle TEScrapHandle( void ); extern LONGINT TEGetScrapLen( void ); extern void TESetScrapLen( LONGINT ln ); extern pascal trap int16 C_TEFeatureFlag (int16 feature, int16 action, TEHandle te); #endif /* _TEXTEDIT_H_ */