123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- (******************************************************************************
- *
- * Copyright (c) 1994-2000 Palm, Inc. or its subsidiaries.
- * All rights reserved.
- *
- * File: Font.h
- *
- * Release: Palm OS SDK 4.0 (63220)
- *
- * Description:
- * This file defines font structures and routines.
- *
- * History:
- * 09/13/94 art Created by Art Lamb.
- * 05/05/98 art Add structures for font mapping table.
- * 07/03/98 kwk Added FntWidthToOffset.
- * 10/23/98 kwk Changed fontMapTable to 0xC000 (was 0xFFFF).
- * 10/20/99 kwk Moved private values to FontPrv.h
- * 05/12/00 kwk Added FntWCharWidth.
- *
- *****************************************************************************)
- {$MACRO ON}
- unit font;
- interface
- uses palmos, coretraps;
- // Pixel width of tab stops in fields
- const
- fntTabChrWidth = 20;
- // Width of character missing from font.
- const
- fntMissingChar = -1;
- type
- FontCharInfoType = record
- {$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FONTS} // These fields will not be available in the next OS release!
- offset: Int8;
- width: Int8;
- {$endif}
- end;
- FontCharInfoTag = FontCharInfoType;
- FontCharInfoPtr = ^FontCharInfoType;
- type
- FontType = record
- {$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FONTS} // These fields will not be available in the next OS release!
- fontType: Int16; // font type
- firstChar: Int16; // ASCII code of first character
- lastChar: Int16; // ASCII code of last character
- maxWidth: Int16; // maximum character width
- kernMax: Int16; // negative of maximum character kern
- nDescent: Int16; // negative of descent
- fRectWidth: Int16; // width of font rectangle
- fRectHeight: Int16; // height of font rectangle
- owTLoc: Int16; // offset to offset/width table
- ascent: Int16; // ascent
- descent: Int16; // descent
- leading: Int16; // leading
- rowWords: Int16; // row width of bit image / 2
- {$endif}
- end;
- FontTag = FontType;
- FontPtr = ^FontType;
- FontTablePtr = ^FontPtr;
- type
- FontID = Enum;
- const
- stdFont = $00; // Small font used for the user's writing. Shows a good amount
- boldFont = Succ(stdFont); // Small font. Bold for easier reading. Used often for ui.
- largeFont = Succ(boldFont); // Larger font for easier reading. Shows a lot less.
- symbolFont = Succ(largeFont); // Various ui images like check boxes and arrows
- symbol11Font = Succ(symbolFont); // Larger various ui images
- symbol7Font = Succ(symbol11Font); // Smaller various ui images
- ledFont = Succ(symbol7Font); // Calculator specific font
- largeBoldFont = Succ(ledFont); // A thicker version of the large font. More readable.
- fntAppFontCustomBase = $80; // First available application-defined font ID
- const
- checkboxFont = symbol11Font;
- function FntIsAppDefined(fnt: FontID): Boolean;
- //--------------------------------------------------------------------
- //
- // Font Function
- //
- //--------------------------------------------------------------------
- function FntGetFont: FontID; syscall sysTrapFntGetFont;
- function FntSetFont(font: FontID): FontID; syscall sysTrapFntSetFont;
- function FntGetFontPtr: FontPtr; syscall sysTrapFntGetFontPtr;
- function FntBaseLine: Int16; syscall sysTrapFntBaseLine;
- function FntCharHeight: Int16; syscall sysTrapFntCharHeight;
- function FntLineHeight: Int16; syscall sysTrapFntLineHeight;
- function FntAverageCharWidth: Int16; syscall sysTrapFntAverageCharWidth;
- function FntCharWidth(ch: Char): Int16; syscall sysTrapFntCharWidth;
- function FntWCharWidth(iChar: WChar): Int16; syscall sysTrapFntWCharWidth;
- function FntCharsWidth(const chars: PChar; len: Int16): Int16; syscall sysTrapFntCharsWidth;
- function FntWidthToOffset(const pChars: PChar; length: UInt16; pixelWidth: Int16; var leadingEdge: Boolean; var truncWidth: Int16): Int16; syscall sysTrapFntWidthToOffset;
- procedure FntCharsInWidth(const AString: PChar; var stringWidthP, stringLengthP: Int16;
- var fitWithinWidth: Boolean); syscall sysTrapFntCharsInWidth;
- function FntDescenderHeight: Int16; syscall sysTrapFntDescenderHeight;
- function FntLineWidth(const pChars: PChar; length: UInt16): Int16; syscall sysTrapFntLineWidth;
- function FntWordWrap(const chars: PChar; maxWidth: UInt16): UInt16; syscall sysTrapFntWordWrap;
- procedure FntWordWrapReverseNLines(const chars: PChar; maxWidth: UInt16; var linesToScrollP, scrollPosP: UInt16); syscall sysTrapFntWordWrapReverseNLines;
- procedure FntGetScrollValues(const chars: PChar; width, scrollPos: UInt16; var linesP, topLine: UInt16); syscall sysTrapFntGetScrollValues;
- function FntDefineFont(font: FontID; fontP: FontPtr): Err; syscall sysTrapFntDefineFont;
- implementation
- function FntIsAppDefined(fnt: FontID): Boolean;
- begin
- FntIsAppDefined := fnt >= fntAppFontCustomBase;
- end;
- end.
|