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
15 STRUCT: SCRIPT_ANALYSIS
21 { a SCRIPT_ANALYSIS } ;
23 FUNCTION: HRESULT ScriptItemize (
27 SCRIPT_CONTROL* psControl,
28 SCRIPT_STATE* psState,
33 FUNCTION: HRESULT ScriptLayout (
36 int* piVisualToLogical,
37 int* piLogicalToVisual
42 SCRIPT_JUSTIFY_ARABIC_BLANK
43 SCRIPT_JUSTIFY_CHARACTER
44 SCRIPT_JUSTIFY_RESERVED1
46 SCRIPT_JUSTIFY_RESERVED2
47 SCRIPT_JUSTIFY_RESERVED3
48 SCRIPT_JUSTIFY_ARABIC_NORMAL
49 SCRIPT_JUSTIFY_ARABIC_KASHIDA
56 SCRIPT_JUSTIFFY_RESERVED4 ;
58 STRUCT: SCRIPT_VISATTR
64 FUNCTION: HRESULT ScriptShape (
81 FUNCTION: HRESULT ScriptPlace (
93 FUNCTION: HRESULT ScriptTextOut (
100 SCRIPT_ANALYSIS* psa,
110 FUNCTION: HRESULT ScriptJustify (
111 SCRIPT_VISATTR* psva,
119 STRUCT: SCRIPT_LOGATTR
122 FUNCTION: HRESULT ScriptBreak (
125 SCRIPT_ANALYSIS* psa,
129 FUNCTION: HRESULT ScriptCPtoX (
135 SCRIPT_VISATTR* psva,
137 SCRIPT_ANALYSIS* psa,
141 FUNCTION: HRESULT ScriptXtoCP (
147 SCRIPT_VISATTR* psva,
149 SCRIPT_ANALYSIS* psa,
154 FUNCTION: HRESULT ScriptGetLogicalWidths (
155 SCRIPT_ANALYSIS* psa,
160 SCRIPT_VISATTR* psva,
164 FUNCTION: HRESULT ScriptApplyLogicalWidth (
169 SCRIPT_VISATTR* psva,
171 SCRIPT_ANALYSIS* psa,
176 FUNCTION: HRESULT ScriptGetCMap (
185 FUNCTION: HRESULT ScriptGetGlyphABCWidth (
192 STRUCT: SCRIPT_PROPERTIES
195 FUNCTION: HRESULT ScriptGetProperties (
196 SCRIPT_PROPERTIES*** ppSp,
200 STRUCT: SCRIPT_FONTPROPERTIES
206 { iKashidaWidth int } ;
208 FUNCTION: HRESULT ScriptGetFontProperties (
211 SCRIPT_FONTPROPERTIES* sfp
214 FUNCTION: HRESULT ScriptCacheGetHeight (
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
242 STRUCT: SCRIPT_TABDEF
248 TYPEDEF: void* SCRIPT_STRING_ANALYSIS
250 FUNCTION: HRESULT ScriptStringAnalyse (
258 SCRIPT_CONTROL* psControl,
259 SCRIPT_STATE* psState,
261 SCRIPT_TABDEF* pTabDef,
263 SCRIPT_STRING_ANALYSIS* pssa
266 FUNCTION: HRESULT ScriptStringFree (
267 SCRIPT_STRING_ANALYSIS* pssa
270 DESTRUCTOR: ScriptStringFree
272 FUNCTION: SIZE* ScriptString_pSize ( SCRIPT_STRING_ANALYSIS ssa ) ;
274 FUNCTION: int* ScriptString_pcOutChars ( SCRIPT_STRING_ANALYSIS ssa ) ;
276 FUNCTION: SCRIPT_LOGATTR* ScriptString_pLogAttr ( SCRIPT_STRING_ANALYSIS ssa ) ;
278 FUNCTION: HRESULT ScriptStringGetOrder (
279 SCRIPT_STRING_ANALYSIS ssa,
283 FUNCTION: HRESULT ScriptStringCPtoX (
284 SCRIPT_STRING_ANALYSIS ssa,
290 FUNCTION: HRESULT ScriptStringXtoCP (
291 SCRIPT_STRING_ANALYSIS ssa,
297 FUNCTION: HRESULT ScriptStringGetLogicalWidths (
298 SCRIPT_STRING_ANALYSIS ssa,
302 FUNCTION: HRESULT ScriptStringValidate (
303 SCRIPT_STRING_ANALYSIS ssa
306 FUNCTION: HRESULT ScriptStringOut (
307 SCRIPT_STRING_ANALYSIS ssa,
317 CONSTANT: SIC_COMPLEX 1
318 CONSTANT: SIC_ASCIIDIGIT 2
319 CONSTANT: SIC_NEUTRAL 4
321 FUNCTION: HRESULT ScriptIsComplex (
327 STRUCT: SCRIPT_DIGITSUBSTITUTE
330 FUNCTION: HRESULT ScriptRecordDigitSubstitution (
332 SCRIPT_DIGITSUBSTITUTE* psds
335 CONSTANT: SCRIPT_DIGITSUBSTITUTE_CONTEXT 0
336 CONSTANT: SCRIPT_DIGITSUBSTITUTE_NONE 1
337 CONSTANT: SCRIPT_DIGITSUBSTITUTE_NATIONAL 2
338 CONSTANT: SCRIPT_DIGITSUBSTITUTE_TRADITIONAL 3
340 FUNCTION: HRESULT ScriptApplyDigitSubstitution (
341 SCRIPT_DIGITSUBSTITUTE* psds,