1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
/*********************************************************************\
* Module Name: 32IFIMET.H
*
* OS/2 Intelligent Font Interface
*
* Copyright (c) 1989,1994 IBM Corporation
* Copyright (c) 1989 Microsoft Corporation
*
* Definition and description of IFIMETRICS structure
* This file is included by FDSTRUCS.H
*
\*********************************************************************/
#ifndef __32IFIMET_H__
#define __32IFIMET_H__
#define FACESIZE 32
#define GLYPHNAMESIZE 16
/* #defines for fsType in IFIMETRICS */
#define IFIMETRICS_FIXED 0x0001 /*Fixed pitch */
#define IFIMETRICS_LICENSED 0x0002 /*Font subject of licensing agreement */
#define IFIMETRICS_KERNING 0x0004 /*Font has kerning data */
#define IFIMETRICS_DBCS 0x0010 /*DBCS font */
#define IFIMETRICS_MBCS 0x0018 /*MBCS (DBCS + SBCS) font */
/* Reserved 0x8000 */
#define IFIMETRICS_ATOMS 0x4000 /*The atom name fields are valid */
#define IFIMETRICS_FAMTRUNC 0x2000 /*Familyname field is truncated */
#define IFIMETRICS_FACETRUNC 0x1000 /*Facename field is truncated */
#define IFIMETRICS_ANTIALIASED 0x0020
#define IFIMETRICS_UNICODE 0x0040
#define IFIMETRICS_NO_CACHE 0x0080
/* #defines for fsDefn in IFIMETRICS */
#define IFIMETRICS_OUTLINE 0x0001 /*1 - Outline. 0 - Raster */
/* Reserved 0x0002 */
/* Reserved 0x0004 */
/* Reserved 0x8000 */
#define IFIMETRICS_UDC_FONT 0x0010 /*User defined font */
/* Reserved */
/* #defines for fsSelection in IFIMETRICS valid for bitmap or outline fonts */
#define IFIMETRICS_ITALIC 0x8000 /*Italic */
#define IFIMETRICS_UNDERSCORE 0x4000 /*Underscored */
#define IFIMETRICS_OVERSTRUCK 0x2000 /*Overstruck */
/* #defines for fsSelection in IFIMETRICS valid for bitmap fonts */
#define IFIMETRICS_NEGATIVE 0x1000 /*Negative image */
#define IFIMETRICS_HOLLOW 0x0800 /*Outline (hollow) */
#if defined(__IBMCPP__) || defined(__IBMC__)
#pragma pack(1)
#else
#pragma Align_members(1)
#endif
typedef struct _IFIMETRICS /* ifim */
{ /* UNITS */
UCHAR szFamilyname[FACESIZE]; /*Font Family Name, e.g. Roman */
UCHAR szFacename[FACESIZE]; /*Face name, e.g. Tms Rmn Bold Italic */
UCHAR szGlyphlistName[GLYPHNAMESIZE]; /*e.g. PM316, Latin-2, Greek */
USHORT idRegistry; /*IBM registration number (or zero). I */
LONG lCapEmHeight; /*Height of uppercase M N */
LONG lXHeight; /*Nominal height of lowercase N */
LONG lMaxAscender; /*Maximum height above baseline of any char N */
LONG lMaxDescender; /*Maximum depth below baseline of any char N */
LONG lLowerCaseAscent; /*Maximum height above baseline of any a-z N */
LONG lLowerCaseDescent; /*Maximum depth below basiline of any a-z N */
LONG lInternalLeading; /*White space within character N */
LONG lExternalLeading; /*White space between lines N */
LONG lAveCharWidth; /*Weighted average character width N */
LONG lMaxCharInc; /*Maximum character increment N */
LONG lEmInc; /*Increment for Capitals (typically 'M') N */
LONG lMaxBaselineExt; /*Height of character cell N */
FIXED fxCharSlope; /*Slope angle, degrees, clockwise D */
FIXED fxInlineDir; /*Drawing direction, degrees clockwise D */
FIXED fxCharRot; /*Glyph rotation in cell, degrees clockwise D */
USHORT usWeightClass; /*Character weight, 1-9 (1=ultra-light) I */
USHORT usWidthClass; /*Character width, 1-9 (1=ultra condensed) I */
LONG lEmSquareSizeX; /*Em Square size, x-direction N */
LONG lEmSquareSizeY; /*Em Square size, y-direction N */
GLYPH giFirstChar; /*Number of first glyph in font I */
GLYPH giLastChar; /*Number of last glyph in font I */
GLYPH giDefaultChar; /*Glyph used if requested glyph invalid I */
GLYPH giBreakChar; /*Space glyph I */
USHORT usNominalPointSize; /*Point size for which font was designed N */
USHORT usMinimumPointSize; /*Minimum point size scaling for font N */
USHORT usMaximumPointSize; /*Maximum point size scaling for font N */
USHORT fsType; /*Type indicators (see #defines) B */
USHORT fsDefn; /*Font definition data (see #defines) B */
USHORT fsSelection; /*Font selection flags (see #defines) B */
USHORT fsCapabilities; /*Font capabilities must be 0 B */
LONG lSubscriptXSize; /*Size in x-direction of subscript N */
LONG lSubscriptYSize; /*Size in y-direction of subscript N */
LONG lSubscriptXOffset; /*Offset in x-direction of subscript N */
LONG lSubscriptYOffset; /*Offset in y-direction of subscript N */
LONG lSuperscriptXSize; /*Size in x-direction of superscript N */
LONG lSuperscriptYSize; /*Size in y-direction of superscript N */
LONG lSuperscriptXOffset; /*Offset in x-direction of superscript N */
LONG lSuperscriptYOffset; /*Offset in y-direction of superscript N */
LONG lUnderscoreSize; /*Underscore size N */
LONG lUnderscorePosition; /*Underscore position N */
LONG lStrikeoutSize; /*Strikeout size N */
LONG lStrikeoutPosition; /*Strikeout position N */
SHORT cKerningPairs; /*Number of kerning pairs in pair table I */
ULONG ulFontClass; /*IBM font classification B */
} IFIMETRICS;
typedef IFIMETRICS FAR *PIFIMETRICS;
#if defined(__IBMCPP__) || defined(__IBMC__)
#pragma pack()
#else
#pragma Align_members()
#endif
#endif
|