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 C-ENUM: SCRIPT_JUSTIFY_NONE
41 SCRIPT_JUSTIFY_ARABIC_BLANK
42 SCRIPT_JUSTIFY_CHARACTER
43 SCRIPT_JUSTIFY_RESERVED1
45 SCRIPT_JUSTIFY_RESERVED2
46 SCRIPT_JUSTIFY_RESERVED3
47 SCRIPT_JUSTIFY_ARABIC_NORMAL
48 SCRIPT_JUSTIFY_ARABIC_KASHIDA
55 SCRIPT_JUSTIFFY_RESERVED4 ;
57 STRUCT: SCRIPT_VISATTR
60 TYPEDEF: void* SCRIPT_CACHE*
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 HEX: 00000001
220 CONSTANT: SSA_TAB HEX: 00000002
221 CONSTANT: SSA_CLIP HEX: 00000004
222 CONSTANT: SSA_FIT HEX: 00000008
223 CONSTANT: SSA_DZWG HEX: 00000010
224 CONSTANT: SSA_FALLBACK HEX: 00000020
225 CONSTANT: SSA_BREAK HEX: 00000040
226 CONSTANT: SSA_GLYPHS HEX: 00000080
227 CONSTANT: SSA_RTL HEX: 00000100
228 CONSTANT: SSA_GCP HEX: 00000200
229 CONSTANT: SSA_HOTKEY HEX: 00000400
230 CONSTANT: SSA_METAFILE HEX: 00000800
231 CONSTANT: SSA_LINK HEX: 00001000
232 CONSTANT: SSA_HIDEHOTKEY HEX: 00002000
233 CONSTANT: SSA_HOTKEYONLY HEX: 00002400
234 CONSTANT: SSA_FULLMEASURE HEX: 04000000
235 CONSTANT: SSA_LPKANSIFALLBACK HEX: 08000000
236 CONSTANT: SSA_PIDX HEX: 10000000
237 CONSTANT: SSA_LAYOUTRTL HEX: 20000000
238 CONSTANT: SSA_DONTGLYPH HEX: 40000000
239 CONSTANT: SSA_NOKASHIDA HEX: 80000000
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,