sys7.1-doc-wip/Interfaces/CIncludes/QuickdrawText.h
2019-07-27 22:37:48 +08:00

176 lines
5.9 KiB
C

/*
File: QuickdrawText.h
Contains: C Interface to the Macintosh Libraries
Written by: Don Louv
Copyright: © 1983-1992 by Apple Computer, Inc., all rights reserved.
Change History (most recent first):
<4> 8/4/92 DCL Changed the textLen parameter to textLength in the prototypes
for PortionText, VisibleLength, PixelToChar & CharToPixel.
<3> 6/11/92 DCL Cleanup minor formatting to match Interface Stacks. Happy Happy
Joy Joy.
<2> 5/29/92 DCL Moved StdText from QuickDraw to QuickDrawText and fixed up some
comments.
<1> 5/5/92 DCL first checked in
*/
#ifndef __QUICKDRAWTEXT__
#define __QUICKDRAWTEXT__
#ifndef __TYPES__
#include <Types.h>
#endif
#ifndef __INTLRESOURCES__
#include <IntlResources.h>
#endif
enum{
/* CharToPixel directions */
leftCaret = 0, /*Place caret for left block*/
rightCaret = -1, /*Place caret for right block*/
hilite = 1, /*Direction is SysDirection*/
smLeftCaret = 0, /*Place caret for left block obsolete */
smRightCaret = -1, /*Place caret for right block obsolete */
smHilite = 1, /*Direction is TESysJust obsolete */
/*Constants for styleRunPosition argument in PortionLine, DrawJustified,
MeasureJustified, CharToPixel, and PixelToChar.*/
onlyStyleRun = 0, /* This is the only style run on the line */
leftStyleRun = 1, /* This is leftmost of multiple style runs on the line */
rightStyleRun = 2, /* This is rightmost of multiple style runs on the line */
middleStyleRun = 3, /* There are multiple style runs on the line and this
is neither the leftmost nor the rightmost. */
smOnlyStyleRun = 0, /* obsolete */
smLeftStyleRun = 1, /* obsolete */
smRightStyleRun = 2, /* obsolete */
smMiddleStyleRun = 3 /* obsolete */
};
/* type for styleRunPosition parameter in PixelToChar etc. */
typedef short JustStyleCode;
struct FontInfo {
short ascent;
short descent;
short widMax;
short leading;
};
typedef struct FontInfo FontInfo;
typedef short FormatOrder[1];
typedef FormatOrder *FormatOrderPtr;
typedef short FormatStatus;
#ifdef __cplusplus
extern "C" {
#endif
pascal short Pixel2Char(Ptr textBuf,short textLen,short slop,short pixelWidth,
Boolean *leadingEdge)
= {0x2F3C,0x820E,0x0014,0xA8B5};
pascal short Char2Pixel(Ptr textBuf,short textLen,short slop,short offset,
short direction)
= {0x2F3C,0x820C,0x0016,0xA8B5};
pascal short PixelToChar(Ptr textBuf,long textLength,Fixed slop,Fixed pixelWidth,
Boolean *leadingEdge,Fixed *widthRemaining,JustStyleCode styleRunPosition,
Point numer,Point denom)
= {0x2F3C,0x8222,0x002E,0xA8B5};
pascal short NPixel2Char(Ptr textBuf,long textLen,Fixed slop,Fixed pixelWidth,
Boolean *leadingEdge,Fixed *widthRemaining,JustStyleCode styleRunPosition,
Point numer,Point denom)
= {0x2F3C,0x8222,0x002E,0xA8B5};
pascal short CharToPixel(Ptr textBuf,long textLength,Fixed slop,long offset,
short direction,JustStyleCode styleRunPosition,Point numer,Point denom)
= {0x2F3C,0x821C,0x0030,0xA8B5};
pascal short NChar2Pixel(Ptr textBuf,long textLen,Fixed slop,long offset,
short direction,JustStyleCode styleRunPosition,Point numer,Point denom)
= {0x2F3C,0x821C,0x0030,0xA8B5};
pascal void DrawJustified(Ptr textPtr,long textLength,Fixed slop,JustStyleCode styleRunPosition,
Point numer,Point denom)
= {0x2F3C,0x8016,0x0032,0xA8B5};
pascal void NDrawJust(Ptr textPtr,long textLength,Fixed slop,JustStyleCode styleRunPosition,
Point numer,Point denom)
= {0x2F3C,0x8016,0x0032,0xA8B5};
pascal void MeasureJustified(Ptr textPtr,long textLength,Fixed slop,Ptr charLocs,
JustStyleCode styleRunPosition,Point numer,Point denom)
= {0x2F3C,0x801A,0x0034,0xA8B5};
pascal void NMeasureJust(Ptr textPtr,long textLength,Fixed slop,Ptr charLocs,
JustStyleCode styleRunPosition,Point numer,Point denom)
= {0x2F3C,0x801A,0x0034,0xA8B5};
pascal Fixed PortionLine(Ptr textPtr,long textLen,JustStyleCode styleRunPosition,
Point numer,Point denom)
= {0x2F3C,0x8412,0x0036,0xA8B5};
pascal Fixed NPortionText(Ptr textPtr,long textLen,JustStyleCode styleRunPosition,
Point numer,Point denom)
= {0x2F3C,0x8412,0x0036,0xA8B5};
pascal void HiliteText(Ptr textPtr,short textLength,short firstOffset,short secondOffset,
OffsetTable offsets)
= {0x2F3C,0x800E,0x001C,0xA8B5};
pascal void DrawJust(Ptr textPtr,short textLength,short slop)
= {0x2F3C,0x8008,0x001E,0xA8B5};
pascal void MeasureJust(Ptr textPtr,short textLength,short slop,Ptr charLocs)
= {0x2F3C,0x800C,0x0020,0xA8B5};
pascal Fixed PortionText(Ptr textPtr,long textLength)
= {0x2F3C,0x8408,0x0024,0xA8B5};
pascal long VisibleLength(Ptr textPtr,long textLength)
= {0x2F3C,0x8408,0x0028,0xA8B5};
pascal void GetFormatOrder(FormatOrderPtr ordering,short firstFormat,short lastFormat,
Boolean lineRight,Ptr rlDirProc,Ptr dirParam)
= {0x2F3C,0x8012,0xFFFC,0xA8B5};
pascal void TextFont(short font)
= 0xA887;
pascal void TextFace(short face)
= 0xA888;
pascal void TextMode(short mode)
= 0xA889;
pascal void TextSize(short size)
= 0xA88A;
pascal void SpaceExtra(Fixed extra)
= 0xA88E;
pascal void DrawChar(short ch)
= 0xA883;
pascal void DrawString(ConstStr255Param s)
= 0xA884;
pascal void DrawText(const void *textBuf,short firstByte,short byteCount)
= 0xA885;
pascal short CharWidth(short ch)
= 0xA88D;
pascal short StringWidth(ConstStr255Param s)
= 0xA88C;
pascal short TextWidth(const void *textBuf,short firstByte,short byteCount)
= 0xA886;
pascal void MeasureText(short count,const void *textAddr,void *charLocs)
= 0xA837;
pascal void GetFontInfo(FontInfo *info)
= 0xA88B;
pascal void CharExtra(Fixed extra)
= 0xAA23;
pascal void StdText(short count,const void *textAddr,Point numer,Point denom)
= 0xA882;
void stdtext(short count,const void *textAddr,Point *numer,Point *denom);
pascal short StdTxMeas(short byteCount,const void *textAddr,Point *numer,
Point *denom,FontInfo *info)
= 0xA8ED;
#ifdef __cplusplus
}
#endif
#endif