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