mirror of
https://github.com/ctm/executor.git
synced 2026-03-12 02:41:37 +00:00
589 lines
22 KiB
C
589 lines
22 KiB
C
#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_ */
|