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