update for HEAD-2003050101
[reactos.git] / include / win32k / text.h
1
2 #ifndef __WIN32K_TEXT_H
3 #define __WIN32K_TEXT_H
4
5 /* GDI logical font object */
6 typedef struct
7 {
8    LOGFONTW   logfont;
9    HFONT      GDIFontHandle;
10 } TEXTOBJ, *PTEXTOBJ;
11
12 /*  Internal interface  */
13
14 #define  TEXTOBJ_AllocText() \
15   ((HFONT) GDIOBJ_AllocObj (sizeof (TEXTOBJ), GO_FONT_MAGIC))
16 #define  TEXTOBJ_FreeText(hBMObj)  GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GO_FONT_MAGIC, GDIOBJFLAG_DEFAULT)
17 #define  TEXTOBJ_LockText(hBMObj) ((PTEXTOBJ) GDIOBJ_LockObj ((HGDIOBJ) hBMObj, GO_FONT_MAGIC))
18 #define  TEXTOBJ_UnlockText(hBMObj) GDIOBJ_UnlockObj ((HGDIOBJ) hBMObj, GO_FONT_MAGIC)
19
20 NTSTATUS TextIntRealizeFont(HFONT FontHandle);
21 NTSTATUS TextIntCreateFontIndirect(CONST LPLOGFONTW lf, HFONT *NewFont);
22
23 int
24 STDCALL
25 W32kAddFontResource(LPCWSTR  Filename);
26
27 HFONT
28 STDCALL
29 W32kCreateFont(int  Height,
30                       int  Width,
31                       int  Escapement,
32                       int  Orientation,
33                       int  Weight,
34                       DWORD  Italic,
35                       DWORD  Underline,
36                       DWORD  StrikeOut,
37                       DWORD  CharSet,
38                       DWORD  OutputPrecision,
39                       DWORD  ClipPrecision,
40                       DWORD  Quality,
41                       DWORD  PitchAndFamily,
42                       LPCWSTR  Face);
43
44 HFONT
45 STDCALL
46 W32kCreateFontIndirect(CONST LPLOGFONTW lf);
47
48 BOOL
49 STDCALL
50 W32kCreateScalableFontResource(DWORD  Hidden,
51                                      LPCWSTR  FontRes,
52                                      LPCWSTR  FontFile,
53                                      LPCWSTR  CurrentPath);
54
55 int
56 STDCALL
57 W32kEnumFontFamilies(HDC  hDC,
58                           LPCWSTR  Family,
59                           FONTENUMPROC  EnumFontFamProc,
60                           LPARAM  lParam);
61
62 int
63 STDCALL
64 W32kEnumFontFamiliesEx(HDC  hDC,
65                             LPLOGFONTW  Logfont,
66                             FONTENUMPROC  EnumFontFamExProc,
67                             LPARAM  lParam,
68                             DWORD  Flags);
69
70 int
71 STDCALL
72 W32kEnumFonts(HDC  hDC,
73                    LPCWSTR FaceName,
74                    FONTENUMPROC  FontFunc,
75                    LPARAM  lParam);
76
77 BOOL
78 STDCALL
79 W32kExtTextOut(HDC  hDC,
80                      int  X,
81                      int  Y,
82                      UINT  Options,
83                      CONST LPRECT  rc,
84                      LPCWSTR  String,
85                      UINT  Count,
86                      CONST LPINT  Dx);
87
88 BOOL
89 STDCALL
90 W32kGetAspectRatioFilterEx(HDC  hDC,
91                                  LPSIZE  AspectRatio);
92
93 BOOL
94 STDCALL
95 W32kGetCharABCWidths(HDC  hDC,
96                            UINT  FirstChar,
97                            UINT  LastChar,
98                            LPABC  abc);
99
100 BOOL
101 STDCALL
102 W32kGetCharABCWidthsFloat(HDC  hDC,
103                                 UINT  FirstChar,
104                                 UINT  LastChar,
105                                 LPABCFLOAT  abcF);
106
107 DWORD
108 STDCALL
109 W32kGetCharacterPlacement(HDC  hDC,
110                                  LPCWSTR  String,
111                                  int  Count,
112                                  int  MaxExtent,
113                                  LPGCP_RESULTS  Results,
114                                  DWORD  Flags);
115
116 BOOL
117 STDCALL
118 W32kGetCharWidth(HDC  hDC,
119                        UINT  FirstChar,
120                        UINT  LastChar,
121                        LPINT  Buffer);
122
123 BOOL
124 STDCALL
125 W32kGetCharWidth32(HDC  hDC,
126                          UINT  FirstChar,
127                          UINT  LastChar,
128                          LPINT  Buffer);
129
130 BOOL
131 STDCALL
132 W32kGetCharWidthFloat(HDC  hDC,
133                             UINT  FirstChar,
134                             UINT  LastChar,
135                             PFLOAT  Buffer);
136
137 DWORD
138 STDCALL
139 W32kGetFontLanguageInfo(HDC  hDC);
140
141 DWORD
142 STDCALL
143 W32kGetGlyphOutline(HDC  hDC,
144                            UINT  Char,
145                            UINT  Format,
146                            LPGLYPHMETRICS  gm,
147                            DWORD  Bufsize,
148                            LPVOID  Buffer,
149                            CONST LPMAT2 mat2);
150
151 DWORD
152 STDCALL
153 W32kGetKerningPairs(HDC  hDC,
154                            DWORD  NumPairs,
155                            LPKERNINGPAIR  krnpair);
156
157 UINT
158 STDCALL
159 W32kGetOutlineTextMetrics(HDC  hDC,
160                                 UINT  Data,
161                                 LPOUTLINETEXTMETRICW otm);
162
163 BOOL
164 STDCALL
165 W32kGetRasterizerCaps(LPRASTERIZER_STATUS  rs,
166                             UINT  Size);
167
168 UINT
169 STDCALL
170 W32kGetTextCharset(HDC  hDC);
171
172 UINT
173 STDCALL
174 W32kGetTextCharsetInfo(HDC  hDC,
175                              LPFONTSIGNATURE  Sig,
176                              DWORD  Flags);
177
178 BOOL
179 STDCALL
180 W32kGetTextExtentExPoint(HDC  hDC,
181                                LPCWSTR String,
182                                int  Count,
183                                int  MaxExtent,
184                                LPINT  Fit,
185                                LPINT  Dx,
186                                LPSIZE  Size);
187
188 BOOL
189 STDCALL
190 W32kGetTextExtentPoint(HDC  hDC,
191                              LPCWSTR  String,
192                              int  Count,
193                              LPSIZE  Size);
194
195 BOOL
196 STDCALL
197 W32kGetTextExtentPoint32(HDC  hDC,
198                                LPCWSTR  String,
199                                int  Count,
200                                LPSIZE  Size);
201
202 int
203 STDCALL
204 W32kGetTextFace(HDC  hDC,
205                      int  Count,
206                      LPWSTR  FaceName);
207
208 BOOL
209 STDCALL
210 W32kGetTextMetrics(HDC  hDC,
211                          LPTEXTMETRICW  tm);
212
213 BOOL
214 STDCALL
215 W32kPolyTextOut(HDC  hDC,
216                       CONST LPPOLYTEXT  txt,
217                       int  Count);
218
219 BOOL
220 STDCALL
221 W32kRemoveFontResource(LPCWSTR  FileName);
222
223 DWORD
224 STDCALL
225 W32kSetMapperFlags(HDC  hDC,
226                           DWORD  Flag);
227
228 UINT
229 STDCALL
230 W32kSetTextAlign(HDC  hDC,
231                        UINT  Mode);
232
233 COLORREF
234 STDCALL
235 W32kSetTextColor(HDC  hDC,
236                            COLORREF  Color);
237
238 BOOL
239 STDCALL
240 W32kSetTextJustification(HDC  hDC,
241                                int  BreakExtra,
242                                int  BreakCount);
243
244 BOOL
245 STDCALL
246 W32kTextOut(HDC  hDC,
247                   int  XStart,
248                   int  YStart,
249                   LPCWSTR  String,
250                   int  Count);
251
252 UINT
253 STDCALL
254 W32kTranslateCharsetInfo(PDWORD  Src,
255                                LPCHARSETINFO  CSI,
256                                DWORD  Flags);
257
258 #endif
259