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