1 ! Copyright (C) 2009 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.syntax alien.destructors classes.struct ;
14 STRUCT: SCRIPT_ANALYSIS
20 { a SCRIPT_ANALYSIS } ;
22 FUNCTION: HRESULT ScriptItemize (
26 SCRIPT_CONTROL* psControl,
27 SCRIPT_STATE* psState,
32 FUNCTION: HRESULT ScriptLayout (
35 int* piVisualToLogical,
36 int* piLogicalToVisual
39 C-ENUM: SCRIPT_JUSTIFY_NONE
40 SCRIPT_JUSTIFY_ARABIC_BLANK
41 SCRIPT_JUSTIFY_CHARACTER
42 SCRIPT_JUSTIFY_RESERVED1
44 SCRIPT_JUSTIFY_RESERVED2
45 SCRIPT_JUSTIFY_RESERVED3
46 SCRIPT_JUSTIFY_ARABIC_NORMAL
47 SCRIPT_JUSTIFY_ARABIC_KASHIDA
54 SCRIPT_JUSTIFFY_RESERVED4 ;
56 STRUCT: SCRIPT_VISATTR
59 FUNCTION: HRESULT ScriptShape (
76 FUNCTION: HRESULT ScriptPlace (
88 FUNCTION: HRESULT ScriptTextOut (
105 FUNCTION: HRESULT ScriptJustify (
106 SCRIPT_VISATTR* psva,
114 STRUCT: SCRIPT_LOGATTR
117 FUNCTION: HRESULT ScriptBreak (
120 SCRIPT_ANALYSIS* psa,
124 FUNCTION: HRESULT ScriptCPtoX (
130 SCRIPT_VISATTR* psva,
132 SCRIPT_ANALYSIS* psa,
136 FUNCTION: HRESULT ScriptXtoCP (
142 SCRIPT_VISATTR* psva,
144 SCRIPT_ANALYSIS* psa,
149 FUNCTION: HRESULT ScriptGetLogicalWidths (
150 SCRIPT_ANALYSIS* psa,
155 SCRIPT_VISATTR* psva,
159 FUNCTION: HRESULT ScriptApplyLogicalWidth (
164 SCRIPT_VISATTR* psva,
166 SCRIPT_ANALYSIS* psa,
171 FUNCTION: HRESULT ScriptGetCMap (
180 FUNCTION: HRESULT ScriptGetGlyphABCWidth (
187 STRUCT: SCRIPT_PROPERTIES
190 FUNCTION: HRESULT ScriptGetProperties (
191 SCRIPT_PROPERTIES*** ppSp,
195 STRUCT: SCRIPT_FONTPROPERTIES
201 { iKashidaWidth int } ;
203 FUNCTION: HRESULT ScriptGetFontProperties (
206 SCRIPT_FONTPROPERTIES* sfp
209 FUNCTION: HRESULT ScriptCacheGetHeight (
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
237 STRUCT: SCRIPT_TABDEF
243 TYPEDEF: void* SCRIPT_STRING_ANALYSIS
245 FUNCTION: HRESULT ScriptStringAnalyse (
253 SCRIPT_CONTROL* psControl,
254 SCRIPT_STATE* psState,
256 SCRIPT_TABDEF* pTabDef,
258 SCRIPT_STRING_ANALYSIS* pssa
261 FUNCTION: HRESULT ScriptStringFree (
262 SCRIPT_STRING_ANALYSIS* pssa
265 DESTRUCTOR: ScriptStringFree
267 FUNCTION: SIZE* ScriptString_pSize ( SCRIPT_STRING_ANALYSIS ssa ) ;
269 FUNCTION: int* ScriptString_pcOutChars ( SCRIPT_STRING_ANALYSIS ssa ) ;
271 FUNCTION: SCRIPT_LOGATTR* ScriptString_pLogAttr ( SCRIPT_STRING_ANALYSIS ssa ) ;
273 FUNCTION: HRESULT ScriptStringGetOrder (
274 SCRIPT_STRING_ANALYSIS ssa,
278 FUNCTION: HRESULT ScriptStringCPtoX (
279 SCRIPT_STRING_ANALYSIS ssa,
285 FUNCTION: HRESULT ScriptStringXtoCP (
286 SCRIPT_STRING_ANALYSIS ssa,
292 FUNCTION: HRESULT ScriptStringGetLogicalWidths (
293 SCRIPT_STRING_ANALYSIS ssa,
297 FUNCTION: HRESULT ScriptStringValidate (
298 SCRIPT_STRING_ANALYSIS ssa
301 FUNCTION: HRESULT ScriptStringOut (
302 SCRIPT_STRING_ANALYSIS ssa,
312 CONSTANT: SIC_COMPLEX 1
313 CONSTANT: SIC_ASCIIDIGIT 2
314 CONSTANT: SIC_NEUTRAL 4
316 FUNCTION: HRESULT ScriptIsComplex (
322 STRUCT: SCRIPT_DIGITSUBSTITUTE
325 FUNCTION: HRESULT ScriptRecordDigitSubstitution (
327 SCRIPT_DIGITSUBSTITUTE* psds
330 CONSTANT: SCRIPT_DIGITSUBSTITUTE_CONTEXT 0
331 CONSTANT: SCRIPT_DIGITSUBSTITUTE_NONE 1
332 CONSTANT: SCRIPT_DIGITSUBSTITUTE_NATIONAL 2
333 CONSTANT: SCRIPT_DIGITSUBSTITUTE_TRADITIONAL 3
335 FUNCTION: HRESULT ScriptApplyDigitSubstitution (
336 SCRIPT_DIGITSUBSTITUTE* psds,