Alexandre Julliard | 7cbe657 | 1995-01-09 18:21:16 +0000 | [diff] [blame] | 1 | /* |
| 2 | * GDI font definitions |
| 3 | * |
| 4 | * Copyright 1994 Alexandre Julliard |
| 5 | */ |
| 6 | |
Alexandre Julliard | 234bc24 | 1994-12-10 13:02:28 +0000 | [diff] [blame] | 7 | #ifndef __WINE_FONT_H |
| 8 | #define __WINE_FONT_H |
| 9 | |
Alexandre Julliard | 7cbe657 | 1995-01-09 18:21:16 +0000 | [diff] [blame] | 10 | #include "gdi.h" |
| 11 | |
Patrik Stridvall | c7a8dde | 1999-04-25 12:36:53 +0000 | [diff] [blame] | 12 | #include "pshpack1.h" |
Alexandre Julliard | 7cbe657 | 1995-01-09 18:21:16 +0000 | [diff] [blame] | 13 | |
| 14 | /* GDI logical font object */ |
| 15 | typedef struct |
| 16 | { |
| 17 | GDIOBJHDR header; |
Huw D M Davies | 2aa85ee | 2001-02-14 22:56:38 +0000 | [diff] [blame] | 18 | LOGFONTW logfont; |
Alexandre Julliard | 7cbe657 | 1995-01-09 18:21:16 +0000 | [diff] [blame] | 19 | } FONTOBJ; |
| 20 | |
Alexandre Julliard | 03468f7 | 1998-02-15 19:40:49 +0000 | [diff] [blame] | 21 | typedef struct { |
| 22 | WORD dfVersion; |
| 23 | DWORD dfSize; |
| 24 | CHAR dfCopyright[60]; |
| 25 | WORD dfType; |
| 26 | WORD dfPoints; |
| 27 | WORD dfVertRes; |
| 28 | WORD dfHorizRes; |
| 29 | WORD dfAscent; |
| 30 | WORD dfInternalLeading; |
| 31 | WORD dfExternalLeading; |
| 32 | BYTE dfItalic; |
| 33 | BYTE dfUnderline; |
| 34 | BYTE dfStrikeOut; |
| 35 | WORD dfWeight; |
| 36 | BYTE dfCharSet; |
| 37 | WORD dfPixWidth; |
| 38 | WORD dfPixHeight; |
| 39 | BYTE dfPitchAndFamily; |
| 40 | WORD dfAvgWidth; |
| 41 | WORD dfMaxWidth; |
| 42 | BYTE dfFirstChar; |
| 43 | BYTE dfLastChar; |
| 44 | BYTE dfDefaultChar; |
| 45 | BYTE dfBreakChar; |
| 46 | WORD dfWidthBytes; |
| 47 | DWORD dfDevice; |
| 48 | DWORD dfFace; |
| 49 | DWORD dfReserved; |
| 50 | CHAR szDeviceName[60]; /* FIXME: length unknown */ |
| 51 | CHAR szFaceName[60]; /* dito */ |
| 52 | } FONTDIR16, *LPFONTDIR16; |
| 53 | |
Patrik Stridvall | c7a8dde | 1999-04-25 12:36:53 +0000 | [diff] [blame] | 54 | #include "poppack.h" |
Alexandre Julliard | ca22b33 | 1996-07-12 19:02:39 +0000 | [diff] [blame] | 55 | |
Alexandre Julliard | 349a953 | 1997-02-02 19:01:52 +0000 | [diff] [blame] | 56 | #define FONTCACHE 32 /* dynamic font cache size */ |
Alexandre Julliard | 349a953 | 1997-02-02 19:01:52 +0000 | [diff] [blame] | 57 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 58 | extern BOOL FONT_Init( UINT16* pTextCaps ); |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 59 | extern INT16 FONT_GetObject16( FONTOBJ * font, INT16 count, LPSTR buffer ); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 60 | extern INT FONT_GetObjectA( FONTOBJ * font, INT count, LPSTR buffer ); |
| 61 | extern INT FONT_GetObjectW( FONTOBJ * font, INT count, LPSTR buffer ); |
Huw D M Davies | 2aa85ee | 2001-02-14 22:56:38 +0000 | [diff] [blame] | 62 | extern void FONT_LogFontATo16( const LOGFONTA* font32, LPLOGFONT16 font16 ); |
| 63 | extern void FONT_LogFontWTo16( const LOGFONTW* font32, LPLOGFONT16 font16 ); |
| 64 | extern void FONT_LogFont16ToA( const LOGFONT16* font16, LPLOGFONTA font32 ); |
| 65 | extern void FONT_LogFont16ToW( const LOGFONT16* font16, LPLOGFONTW font32 ); |
| 66 | extern void FONT_TextMetricATo16(const TEXTMETRICA *ptm32, LPTEXTMETRIC16 ptm16 ); |
| 67 | extern void FONT_TextMetricWTo16(const TEXTMETRICW *ptm32, LPTEXTMETRIC16 ptm16 ); |
| 68 | extern void FONT_TextMetric16ToA(const TEXTMETRIC16 *ptm16, LPTEXTMETRICA ptm32 ); |
| 69 | extern void FONT_TextMetric16ToW(const TEXTMETRIC16 *ptm16, LPTEXTMETRICW ptm32 ); |
| 70 | extern void FONT_TextMetricAToW(const TEXTMETRICA *ptm32A, LPTEXTMETRICW ptm32W ); |
| 71 | extern void FONT_NewTextMetricEx16ToW(const NEWTEXTMETRICEX16*, LPNEWTEXTMETRICEXW); |
| 72 | extern void FONT_EnumLogFontEx16ToW(const ENUMLOGFONTEX16*, LPENUMLOGFONTEXW); |
Alexandre Julliard | 60ce85c | 1998-02-01 18:33:27 +0000 | [diff] [blame] | 73 | |
Huw D M Davies | 2938242 | 2001-09-19 20:32:07 +0000 | [diff] [blame] | 74 | extern LPWSTR FONT_mbtowc(HDC, LPCSTR, INT, INT*, UINT*); |
| 75 | |
Huw D M Davies | 814654e | 2001-09-12 20:21:06 +0000 | [diff] [blame] | 76 | extern DWORD WineEngAddRefFont(GdiFont); |
| 77 | extern GdiFont WineEngCreateFontInstance(HFONT); |
| 78 | extern DWORD WineEngDecRefFont(GdiFont); |
| 79 | extern DWORD WineEngEnumFonts(LPLOGFONTW, DEVICEFONTENUMPROC, LPARAM); |
| 80 | extern BOOL WineEngGetCharWidth(GdiFont, UINT, UINT, LPINT); |
| 81 | extern DWORD WineEngGetGlyphOutline(GdiFont, UINT glyph, UINT format, |
| 82 | LPGLYPHMETRICS, DWORD buflen, LPVOID buf, |
| 83 | const MAT2*); |
| 84 | extern UINT WineEngGetOutlineTextMetrics(GdiFont, UINT, LPOUTLINETEXTMETRICW); |
| 85 | extern BOOL WineEngGetTextExtentPoint(GdiFont, LPCWSTR, INT, LPSIZE); |
| 86 | extern BOOL WineEngGetTextMetrics(GdiFont, LPTEXTMETRICW); |
| 87 | extern BOOL WineEngInit(void); |
Alexandre Julliard | 60ce85c | 1998-02-01 18:33:27 +0000 | [diff] [blame] | 88 | |
Alexandre Julliard | 234bc24 | 1994-12-10 13:02:28 +0000 | [diff] [blame] | 89 | #endif /* __WINE_FONT_H */ |