mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-25 09:30:50 +00:00
185 lines
6.2 KiB
OpenEdge ABL
185 lines
6.2 KiB
OpenEdge ABL
|
{
|
||
|
File: QuickdrawText.p
|
||
|
Pascal Interface to the Macintosh Libraries
|
||
|
|
||
|
Copyright: © 1983-1992 by Apple Computer, Inc.
|
||
|
All rights reserved.
|
||
|
|
||
|
Change History (most recent first):
|
||
|
|
||
|
<3> 8/4/92 DCL Changed the textLen parameter to textLength in the prototypes
|
||
|
for PortionText, VisibleLength, PixelToChar & CharToPixel.
|
||
|
<2> 5/29/92 DCL Moved StdText from QuickDraw to QuickDrawText and fixed up some
|
||
|
comments.
|
||
|
<1> 5/5/92 DCL first checked in
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
{$IFC UNDEFINED UsingIncludes}
|
||
|
{$SETC UsingIncludes := 0}
|
||
|
{$ENDC}
|
||
|
|
||
|
{$IFC NOT UsingIncludes}
|
||
|
UNIT QuickdrawText;
|
||
|
INTERFACE
|
||
|
{$ENDC}
|
||
|
|
||
|
{$IFC UNDEFINED UsingQuickdrawText}
|
||
|
{$SETC UsingQuickdrawText := 1}
|
||
|
|
||
|
{$I+}
|
||
|
{$SETC QuickdrawTextIncludes := UsingIncludes}
|
||
|
{$SETC UsingIncludes := 1}
|
||
|
{$IFC UNDEFINED UsingTypes}
|
||
|
{$I $$Shell(PInterfaces)Types.p}
|
||
|
{$ENDC}
|
||
|
{$IFC UNDEFINED UsingIntlResources}
|
||
|
{$I $$Shell(PInterfaces)IntlResources.p}
|
||
|
{$ENDC}
|
||
|
{$SETC UsingIncludes := QuickdrawTextIncludes}
|
||
|
|
||
|
CONST
|
||
|
|
||
|
{ 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
|
||
|
|
||
|
{ type for styleRunPosition parameter in PixelToChar etc. }
|
||
|
JustStyleCode = INTEGER;
|
||
|
|
||
|
FontInfo = RECORD
|
||
|
ascent: INTEGER;
|
||
|
descent: INTEGER;
|
||
|
widMax: INTEGER;
|
||
|
leading: INTEGER;
|
||
|
END;
|
||
|
|
||
|
FormatOrder = ARRAY [0..0] OF INTEGER;
|
||
|
FormatOrderPtr = ^FormatOrder;
|
||
|
FormatStatus = INTEGER;
|
||
|
|
||
|
|
||
|
|
||
|
FUNCTION Pixel2Char(textBuf: Ptr;textLen: INTEGER;slop: INTEGER;pixelWidth: INTEGER;
|
||
|
VAR leadingEdge: BOOLEAN): INTEGER;
|
||
|
INLINE $2F3C,$820E,$0014,$A8B5;
|
||
|
FUNCTION Char2Pixel(textBuf: Ptr;textLen: INTEGER;slop: INTEGER;offset: INTEGER;
|
||
|
direction: INTEGER): INTEGER;
|
||
|
INLINE $2F3C,$820C,$0016,$A8B5;
|
||
|
|
||
|
{ New for 7.0 }
|
||
|
FUNCTION PixelToChar(textBuf: Ptr;textLength: LONGINT;slop: Fixed;pixelWidth: Fixed;
|
||
|
VAR leadingEdge: BOOLEAN;VAR widthRemaining: Fixed;styleRunPosition: JustStyleCode;
|
||
|
numer: Point;denom: Point): INTEGER;
|
||
|
INLINE $2F3C,$8222,$002E,$A8B5;
|
||
|
FUNCTION NPixel2Char(textBuf: Ptr;textLen: LONGINT;slop: Fixed;pixelWidth: Fixed;
|
||
|
VAR leadingEdge: BOOLEAN;VAR widthRemaining: Fixed;styleRunPosition: JustStyleCode;
|
||
|
numer: Point;denom: Point): INTEGER;
|
||
|
INLINE $2F3C,$8222,$002E,$A8B5;
|
||
|
FUNCTION CharToPixel(textBuf: Ptr;textLength: LONGINT;slop: Fixed;offset: LONGINT;
|
||
|
direction: INTEGER;styleRunPosition: JustStyleCode;numer: Point;denom: Point): INTEGER;
|
||
|
INLINE $2F3C,$821C,$0030,$A8B5;
|
||
|
FUNCTION NChar2Pixel(textBuf: Ptr;textLen: LONGINT;slop: Fixed;offset: LONGINT;
|
||
|
direction: INTEGER;styleRunPosition: JustStyleCode;numer: Point;denom: Point): INTEGER;
|
||
|
INLINE $2F3C,$821C,$0030,$A8B5;
|
||
|
PROCEDURE DrawJustified(textPtr: Ptr;textLength: LONGINT;slop: Fixed;styleRunPosition: JustStyleCode;
|
||
|
numer: Point;denom: Point);
|
||
|
INLINE $2F3C,$8016,$0032,$A8B5;
|
||
|
PROCEDURE NDrawJust(textPtr: Ptr;textLength: LONGINT;slop: Fixed;styleRunPosition: JustStyleCode;
|
||
|
numer: Point;denom: Point);
|
||
|
INLINE $2F3C,$8016,$0032,$A8B5;
|
||
|
PROCEDURE MeasureJustified(textPtr: Ptr;textLength: LONGINT;slop: Fixed;charLocs: Ptr;
|
||
|
styleRunPosition: JustStyleCode;numer: Point;denom: Point);
|
||
|
INLINE $2F3C,$801A,$0034,$A8B5;
|
||
|
PROCEDURE NMeasureJust(textPtr: Ptr;textLength: LONGINT;slop: Fixed;charLocs: Ptr;
|
||
|
styleRunPosition: JustStyleCode;numer: Point;denom: Point);
|
||
|
INLINE $2F3C,$801A,$0034,$A8B5;
|
||
|
FUNCTION NPortionText(textPtr: Ptr;textLen: LONGINT;styleRunPosition: JustStyleCode;
|
||
|
numer: Point;denom: Point): Fixed;
|
||
|
INLINE $2F3C,$8412,$0036,$A8B5;
|
||
|
FUNCTION PortionLine(textPtr: Ptr;textLen: LONGINT;styleRunPosition: JustStyleCode;
|
||
|
numer: Point;denom: Point): Fixed;
|
||
|
INLINE $2F3C,$8412,$0036,$A8B5;
|
||
|
|
||
|
PROCEDURE HiliteText(textPtr: Ptr;textLength: INTEGER;firstOffset: INTEGER;
|
||
|
secondOffset: INTEGER;VAR offsets: OffsetTable);
|
||
|
INLINE $2F3C,$800E,$001C,$A8B5;
|
||
|
PROCEDURE DrawJust(textPtr: Ptr;textLength: INTEGER;slop: INTEGER);
|
||
|
INLINE $2F3C,$8008,$001E,$A8B5;
|
||
|
PROCEDURE MeasureJust(textPtr: Ptr;textLength: INTEGER;slop: INTEGER;charLocs: Ptr);
|
||
|
INLINE $2F3C,$800C,$0020,$A8B5;
|
||
|
|
||
|
FUNCTION PortionText(textPtr: Ptr;textLength: LONGINT): Fixed;
|
||
|
INLINE $2F3C,$8408,$0024,$A8B5;
|
||
|
FUNCTION VisibleLength(textPtr: Ptr;textLength: LONGINT): LONGINT;
|
||
|
INLINE $2F3C,$8408,$0028,$A8B5;
|
||
|
PROCEDURE GetFormatOrder(ordering: FormatOrderPtr;firstFormat: INTEGER;
|
||
|
lastFormat: INTEGER;lineRight: BOOLEAN;rlDirProc: Ptr;dirParam: Ptr);
|
||
|
INLINE $2F3C,$8012,$FFFC,$A8B5;
|
||
|
|
||
|
|
||
|
PROCEDURE TextFont(font: INTEGER);
|
||
|
INLINE $A887;
|
||
|
PROCEDURE TextFace(face: Style);
|
||
|
INLINE $A888;
|
||
|
PROCEDURE TextMode(mode: INTEGER);
|
||
|
INLINE $A889;
|
||
|
PROCEDURE TextSize(size: INTEGER);
|
||
|
INLINE $A88A;
|
||
|
PROCEDURE SpaceExtra(extra: Fixed);
|
||
|
INLINE $A88E;
|
||
|
PROCEDURE DrawChar(ch: CHAR);
|
||
|
INLINE $A883;
|
||
|
PROCEDURE DrawString(s: Str255);
|
||
|
INLINE $A884;
|
||
|
PROCEDURE DrawText(textBuf: Ptr;firstByte: INTEGER;byteCount: INTEGER);
|
||
|
INLINE $A885;
|
||
|
FUNCTION CharWidth(ch: CHAR): INTEGER;
|
||
|
INLINE $A88D;
|
||
|
FUNCTION StringWidth(s: Str255): INTEGER;
|
||
|
INLINE $A88C;
|
||
|
FUNCTION TextWidth(textBuf: Ptr;firstByte: INTEGER;byteCount: INTEGER): INTEGER;
|
||
|
INLINE $A886;
|
||
|
PROCEDURE MeasureText(count: INTEGER;textAddr: Ptr;charLocs: Ptr);
|
||
|
INLINE $A837;
|
||
|
PROCEDURE GetFontInfo(VAR info: FontInfo);
|
||
|
INLINE $A88B;
|
||
|
|
||
|
PROCEDURE CharExtra(extra: Fixed);
|
||
|
INLINE $AA23;
|
||
|
|
||
|
PROCEDURE StdText(count: INTEGER;textAddr: Ptr;numer: Point;denom: Point);
|
||
|
INLINE $A882;
|
||
|
FUNCTION StdTxMeas(byteCount: INTEGER;textAddr: Ptr;VAR numer: Point;VAR denom: Point;
|
||
|
VAR info: FontInfo): INTEGER;
|
||
|
INLINE $A8ED;
|
||
|
|
||
|
|
||
|
{$ENDC} { UsingQuickdrawText }
|
||
|
|
||
|
{$IFC NOT UsingIncludes}
|
||
|
END.
|
||
|
{$ENDC}
|
||
|
|