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
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
57 STRUCT: SCRIPT_VISATTR
63 FUNCTION: HRESULT ScriptShape (
80 FUNCTION: HRESULT ScriptPlace (
92 FUNCTION: HRESULT ScriptTextOut (
109 FUNCTION: HRESULT ScriptJustify (
110 SCRIPT_VISATTR* psva,
118 STRUCT: SCRIPT_LOGATTR
121 FUNCTION: HRESULT ScriptBreak (
124 SCRIPT_ANALYSIS* psa,
128 FUNCTION: HRESULT ScriptCPtoX (
134 SCRIPT_VISATTR* psva,
136 SCRIPT_ANALYSIS* psa,
140 FUNCTION: HRESULT ScriptXtoCP (
146 SCRIPT_VISATTR* psva,
148 SCRIPT_ANALYSIS* psa,
153 FUNCTION: HRESULT ScriptGetLogicalWidths (
154 SCRIPT_ANALYSIS* psa,
159 SCRIPT_VISATTR* psva,
163 FUNCTION: HRESULT ScriptApplyLogicalWidth (
168 SCRIPT_VISATTR* psva,
170 SCRIPT_ANALYSIS* psa,
175 FUNCTION: HRESULT ScriptGetCMap (
184 FUNCTION: HRESULT ScriptGetGlyphABCWidth (
191 STRUCT: SCRIPT_PROPERTIES
194 FUNCTION: HRESULT ScriptGetProperties (
195 SCRIPT_PROPERTIES*** ppSp,
199 STRUCT: SCRIPT_FONTPROPERTIES
205 { iKashidaWidth int } ;
207 FUNCTION: HRESULT ScriptGetFontProperties (
210 SCRIPT_FONTPROPERTIES* sfp
213 FUNCTION: HRESULT ScriptCacheGetHeight (
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
241 STRUCT: SCRIPT_TABDEF
247 TYPEDEF: void* SCRIPT_STRING_ANALYSIS
249 FUNCTION: HRESULT ScriptStringAnalyse (
257 SCRIPT_CONTROL* psControl,
258 SCRIPT_STATE* psState,
260 SCRIPT_TABDEF* pTabDef,
262 SCRIPT_STRING_ANALYSIS* pssa
265 FUNCTION: HRESULT ScriptStringFree (
266 SCRIPT_STRING_ANALYSIS* pssa
269 DESTRUCTOR: ScriptStringFree
271 FUNCTION: SIZE* ScriptString_pSize ( SCRIPT_STRING_ANALYSIS ssa )
273 FUNCTION: int* ScriptString_pcOutChars ( SCRIPT_STRING_ANALYSIS ssa )
275 FUNCTION: SCRIPT_LOGATTR* ScriptString_pLogAttr ( SCRIPT_STRING_ANALYSIS ssa )
277 FUNCTION: HRESULT ScriptStringGetOrder (
278 SCRIPT_STRING_ANALYSIS ssa,
282 FUNCTION: HRESULT ScriptStringCPtoX (
283 SCRIPT_STRING_ANALYSIS ssa,
289 FUNCTION: HRESULT ScriptStringXtoCP (
290 SCRIPT_STRING_ANALYSIS ssa,
296 FUNCTION: HRESULT ScriptStringGetLogicalWidths (
297 SCRIPT_STRING_ANALYSIS ssa,
301 FUNCTION: HRESULT ScriptStringValidate (
302 SCRIPT_STRING_ANALYSIS ssa
305 FUNCTION: HRESULT ScriptStringOut (
306 SCRIPT_STRING_ANALYSIS ssa,
316 CONSTANT: SIC_COMPLEX 1
317 CONSTANT: SIC_ASCIIDIGIT 2
318 CONSTANT: SIC_NEUTRAL 4
320 FUNCTION: HRESULT ScriptIsComplex (
326 STRUCT: SCRIPT_DIGITSUBSTITUTE
329 FUNCTION: HRESULT ScriptRecordDigitSubstitution (
331 SCRIPT_DIGITSUBSTITUTE* psds
334 CONSTANT: SCRIPT_DIGITSUBSTITUTE_CONTEXT 0
335 CONSTANT: SCRIPT_DIGITSUBSTITUTE_NONE 1
336 CONSTANT: SCRIPT_DIGITSUBSTITUTE_NATIONAL 2
337 CONSTANT: SCRIPT_DIGITSUBSTITUTE_TRADITIONAL 3
339 FUNCTION: HRESULT ScriptApplyDigitSubstitution (
340 SCRIPT_DIGITSUBSTITUTE* psds,