]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/usp10/usp10.factor
Merge branch 'master' into smarter_error_list
[factor.git] / basis / windows / usp10 / usp10.factor
1 ! Copyright (C) 2009 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.syntax alien.destructors ;
4 IN: windows.usp10
5
6 LIBRARY: usp10
7
8 C-STRUCT: SCRIPT_CONTROL
9     { "DWORD" "flags" } ;
10
11 C-STRUCT: SCRIPT_STATE
12     { "WORD" "flags" } ;
13
14 C-STRUCT: SCRIPT_ANALYSIS
15     { "WORD" "flags" }
16     { "SCRIPT_STATE" "s" } ;
17
18 C-STRUCT: SCRIPT_ITEM
19     { "int" "iCharPos" }
20     { "SCRIPT_ANALYSIS" "a" } ;
21
22 FUNCTION: HRESULT ScriptItemize (
23     WCHAR* pwcInChars,
24     int cInChars,
25     int cMaxItems,
26     SCRIPT_CONTROL* psControl,
27     SCRIPT_STATE* psState,
28     SCRIPT_ITEM* pItems,
29     int* pcItems
30 ) ;
31
32 FUNCTION: HRESULT ScriptLayout (
33     int cRuns,
34     BYTE* pbLevel,
35     int* piVisualToLogical,
36     int* piLogicalToVisual
37 ) ;
38
39 C-ENUM: SCRIPT_JUSTIFY_NONE
40 SCRIPT_JUSTIFY_ARABIC_BLANK
41 SCRIPT_JUSTIFY_CHARACTER
42 SCRIPT_JUSTIFY_RESERVED1
43 SCRIPT_JUSTIFY_BLANK
44 SCRIPT_JUSTIFY_RESERVED2
45 SCRIPT_JUSTIFY_RESERVED3
46 SCRIPT_JUSTIFY_ARABIC_NORMAL
47 SCRIPT_JUSTIFY_ARABIC_KASHIDA
48 SCRIPT_JUSTIFY_ALEF
49 SCRIPT_JUSTIFY_HA
50 SCRIPT_JUSTIFY_RA
51 SCRIPT_JUSTIFY_BA
52 SCRIPT_JUSTIFY_BARA
53 SCRIPT_JUSTIFY_SEEN
54 SCRIPT_JUSTIFFY_RESERVED4 ;
55
56 C-STRUCT: SCRIPT_VISATTR
57     { "WORD" "flags" } ;
58
59 FUNCTION: HRESULT ScriptShape (
60     HDC hdc,
61     SCRIPT_CACHE* psc,
62     WCHAR* pwcChars,
63     int cChars,
64     int cMaxGlyphs,
65     SCRIPT_ANALYSIS* psa,
66     WORD* pwOutGlyphs,
67     WORD* pwLogClust,
68     SCRIPT_VISATTR* psva,
69     int* pcGlyphs
70 ) ;
71
72 C-STRUCT: GOFFSET
73     { "LONG" "du" }
74     { "LONG" "dv" } ;
75
76 FUNCTION: HRESULT ScriptPlace (
77     HDC hdc,
78     SCRIPT_CACHE* psc,
79     WORD* pwGlyphs,
80     int cGlyphs,
81     SCRIPT_VISATTR* psva,
82     SCRIPT_ANALYSIS* psa,
83     int* piAdvance,
84     GOFFSET* pGoffset,
85     ABC* pABC
86 ) ;
87
88 FUNCTION: HRESULT ScriptTextOut (
89     HDC hdc,
90     SCRIPT_CACHE* psc,
91     int x,
92     int y,
93     UINT fuOptions,
94     RECT* lprc,
95     SCRIPT_ANALYSIS* psa,
96     WCHAR* pwcReserved,
97     int iReserved,
98     WORD* pwGlyphs,
99     int cGlyphs,
100     int* piAdvance,
101     int* piJustify,
102     GOFFSET* pGoffset
103 ) ;
104
105 FUNCTION: HRESULT ScriptJustify (
106     SCRIPT_VISATTR* psva,
107     int* piAdvance,
108     int cGlyphs,
109     int iDx,
110     int iMinKashida,
111     int* piJustify
112 ) ;
113
114 C-STRUCT: SCRIPT_LOGATTR
115     { "BYTE" "flags" } ;
116
117 FUNCTION: HRESULT ScriptBreak (
118     WCHAR* pwcChars,
119     int cChars,
120     SCRIPT_ANALYSIS* psa,
121     SCRIPT_LOGATTR* psla
122 ) ;
123
124 FUNCTION: HRESULT ScriptCPtoX (
125     int iCP,
126     BOOL fTrailing,
127     int cChars,
128     int cGlyphs,
129     WORD* pwLogClust,
130     SCRIPT_VISATTR* psva,
131     int* piAdvance,
132     SCRIPT_ANALYSIS* psa,
133     int* piX
134 ) ;
135
136 FUNCTION: HRESULT ScriptXtoCP (
137     int iCP,
138     BOOL fTrailing,
139     int cChars,
140     int cGlyphs,
141     WORD* pwLogClust,
142     SCRIPT_VISATTR* psva,
143     int* piAdvance,
144     SCRIPT_ANALYSIS* psa,
145     int* piCP,
146     int* piTrailing
147 ) ;
148
149 FUNCTION: HRESULT ScriptGetLogicalWidths (
150     SCRIPT_ANALYSIS* psa,
151     int cChars,
152     int cGlyphs,
153     int* piGlyphWidth,
154     WORD* pwLogClust,
155     SCRIPT_VISATTR* psva,
156     int* piDx
157 ) ;
158
159 FUNCTION: HRESULT ScriptApplyLogicalWidth (
160     int* piDx,
161     int cChars,
162     int cGlyphs,
163     WORD* pwLogClust,
164     SCRIPT_VISATTR* psva,
165     int* piAdvance,
166     SCRIPT_ANALYSIS* psa,
167     ABC* pABC,
168     int* piJustify
169 ) ;
170
171 FUNCTION: HRESULT ScriptGetCMap (
172     HDC hdc,
173     SCRIPT_CACHE* psc,
174     WCHAR* pwcInChars,
175     int cChars,
176     DWORD dwFlags,
177     WORD* pwOutGlyphs
178 ) ;
179
180 FUNCTION: HRESULT ScriptGetGlyphABCWidth (
181     HDC hdc,
182     SCRIPT_CACHE* psc,
183     WORD wGlyph,
184     ABC* pABC
185 ) ;
186
187 C-STRUCT: SCRIPT_PROPERTIES
188     { "DWORD" "flags" } ;
189
190 FUNCTION: HRESULT ScriptGetProperties (
191     SCRIPT_PROPERTIES*** ppSp,
192     int* piNumScripts
193 ) ;
194
195 C-STRUCT: SCRIPT_FONTPROPERTIES
196     { "int" "cBytes" }
197     { "WORD" "wgBlank" }
198     { "WORD" "wgDefault" }
199     { "WORD" "wgInvalid" }
200     { "WORD" "wgKashida" }
201     { "int" "iKashidaWidth" } ;
202
203 FUNCTION: HRESULT ScriptGetFontProperties (
204     HDC hdc,
205     SCRIPT_CACHE* psc,
206     SCRIPT_FONTPROPERTIES* sfp
207 ) ;
208
209 FUNCTION: HRESULT ScriptCacheGetHeight (
210     HDC hdc,
211     SCRIPT_CACHE* psc,
212     long* tmHeight
213 ) ;
214
215 CONSTANT: SSA_PASSWORD HEX: 00000001
216 CONSTANT: SSA_TAB HEX: 00000002
217 CONSTANT: SSA_CLIP HEX: 00000004
218 CONSTANT: SSA_FIT HEX: 00000008
219 CONSTANT: SSA_DZWG HEX: 00000010
220 CONSTANT: SSA_FALLBACK HEX: 00000020
221 CONSTANT: SSA_BREAK HEX: 00000040
222 CONSTANT: SSA_GLYPHS HEX: 00000080
223 CONSTANT: SSA_RTL HEX: 00000100
224 CONSTANT: SSA_GCP HEX: 00000200
225 CONSTANT: SSA_HOTKEY HEX: 00000400
226 CONSTANT: SSA_METAFILE HEX: 00000800
227 CONSTANT: SSA_LINK HEX: 00001000
228 CONSTANT: SSA_HIDEHOTKEY HEX: 00002000
229 CONSTANT: SSA_HOTKEYONLY HEX: 00002400
230 CONSTANT: SSA_FULLMEASURE HEX: 04000000
231 CONSTANT: SSA_LPKANSIFALLBACK HEX: 08000000
232 CONSTANT: SSA_PIDX HEX: 10000000
233 CONSTANT: SSA_LAYOUTRTL HEX: 20000000
234 CONSTANT: SSA_DONTGLYPH HEX: 40000000
235 CONSTANT: SSA_NOKASHIDA HEX: 80000000
236
237 C-STRUCT: SCRIPT_TABDEF
238     { "int" "cTabStops" }
239     { "int" "iScale" }
240     { "int*" "pTabStops" }
241     { "int" "iTabOrigin" } ;
242
243 TYPEDEF: void* SCRIPT_STRING_ANALYSIS
244
245 FUNCTION: HRESULT ScriptStringAnalyse (
246     HDC hdc,
247     void* pString,
248     int cString,
249     int cGlyphs,
250     int iCharset,
251     DWORD dwFlags,
252     int iReqWidth,
253     SCRIPT_CONTROL* psControl,
254     SCRIPT_STATE* psState,
255     int* piDx,
256     SCRIPT_TABDEF* pTabDef,
257     BYTE* pbInClass,
258     SCRIPT_STRING_ANALYSIS* pssa
259 ) ;
260
261 FUNCTION: HRESULT ScriptStringFree (
262     SCRIPT_STRING_ANALYSIS* pssa
263 ) ;
264
265 DESTRUCTOR: ScriptStringFree
266
267 FUNCTION: SIZE* ScriptString_pSize ( SCRIPT_STRING_ANALYSIS ssa ) ;
268
269 FUNCTION: int* ScriptString_pcOutChars ( SCRIPT_STRING_ANALYSIS ssa ) ;
270
271 FUNCTION: SCRIPT_LOGATTR* ScriptString_pLogAttr ( SCRIPT_STRING_ANALYSIS ssa ) ;
272
273 FUNCTION: HRESULT ScriptStringGetOrder (
274     SCRIPT_STRING_ANALYSIS ssa,
275     UINT* puOrder
276 ) ;
277
278 FUNCTION: HRESULT ScriptStringCPtoX (
279     SCRIPT_STRING_ANALYSIS ssa,
280     int icp,
281     BOOL fTrailing,
282     int* pX
283 ) ;
284
285 FUNCTION: HRESULT ScriptStringXtoCP (
286     SCRIPT_STRING_ANALYSIS ssa,
287     int iX,
288     int* piCh,
289     int* piTrailing
290 ) ;
291
292 FUNCTION: HRESULT ScriptStringGetLogicalWidths (
293     SCRIPT_STRING_ANALYSIS ssa,
294     int* piDx
295 ) ;
296
297 FUNCTION: HRESULT ScriptStringValidate (
298     SCRIPT_STRING_ANALYSIS ssa
299 ) ;
300
301 FUNCTION: HRESULT ScriptStringOut (
302     SCRIPT_STRING_ANALYSIS ssa,
303     int iX,
304     int iY,
305     UINT uOptions,
306     RECT* prc,
307     int iMinSel,
308     int iMaxSel,
309     BOOL fDisabled
310 ) ;
311
312 CONSTANT: SIC_COMPLEX 1
313 CONSTANT: SIC_ASCIIDIGIT 2
314 CONSTANT: SIC_NEUTRAL 4
315
316 FUNCTION: HRESULT ScriptIsComplex (
317     WCHAR* pwcInChars,
318     int cInChars,
319     DWORD dwFlags
320 ) ;
321
322 C-STRUCT: SCRIPT_DIGITSUBSTITUTE
323     { "DWORD" "flags" } ;
324
325 FUNCTION: HRESULT ScriptRecordDigitSubstitution (
326     LCID Locale,
327     SCRIPT_DIGITSUBSTITUTE* psds
328 ) ;
329
330 CONSTANT: SCRIPT_DIGITSUBSTITUTE_CONTEXT 0
331 CONSTANT: SCRIPT_DIGITSUBSTITUTE_NONE 1
332 CONSTANT: SCRIPT_DIGITSUBSTITUTE_NATIONAL 2
333 CONSTANT: SCRIPT_DIGITSUBSTITUTE_TRADITIONAL 3
334
335 FUNCTION: HRESULT ScriptApplyDigitSubstitution (
336     SCRIPT_DIGITSUBSTITUTE* psds,
337     SCRIPT_CONTROL* psc,
338     SCRIPT_STATE* pss
339 ) ;