factor/basis/windows/usp10/usp10.factor

344 lines
6.8 KiB
Factor

! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: alien.c-types alien.syntax alien.destructors classes.struct
windows.types ;
IN: windows.usp10
LIBRARY: usp10
STRUCT: SCRIPT_CONTROL
{ flags DWORD } ;
STRUCT: SCRIPT_STATE
{ flags WORD } ;
STRUCT: SCRIPT_ANALYSIS
{ flags WORD }
{ s SCRIPT_STATE } ;
STRUCT: SCRIPT_ITEM
{ iCharPos int }
{ a SCRIPT_ANALYSIS } ;
FUNCTION: HRESULT ScriptItemize (
WCHAR* pwcInChars,
int cInChars,
int cMaxItems,
SCRIPT_CONTROL* psControl,
SCRIPT_STATE* psState,
SCRIPT_ITEM* pItems,
int* pcItems
)
FUNCTION: HRESULT ScriptLayout (
int cRuns,
BYTE* pbLevel,
int* piVisualToLogical,
int* piLogicalToVisual
)
CONSTANT: SCRIPT_JUSTIFY_NONE 0
CONSTANT: SCRIPT_JUSTIFY_ARABIC_BLANK 1
CONSTANT: SCRIPT_JUSTIFY_CHARACTER 2
CONSTANT: SCRIPT_JUSTIFY_RESERVED1 3
CONSTANT: SCRIPT_JUSTIFY_BLANK 4
CONSTANT: SCRIPT_JUSTIFY_RESERVED2 5
CONSTANT: SCRIPT_JUSTIFY_RESERVED3 6
CONSTANT: SCRIPT_JUSTIFY_ARABIC_NORMAL 7
CONSTANT: SCRIPT_JUSTIFY_ARABIC_KASHIDA 8
CONSTANT: SCRIPT_JUSTIFY_ALEF 9
CONSTANT: SCRIPT_JUSTIFY_HA 10
CONSTANT: SCRIPT_JUSTIFY_RA 11
CONSTANT: SCRIPT_JUSTIFY_BA 12
CONSTANT: SCRIPT_JUSTIFY_BARA 13
CONSTANT: SCRIPT_JUSTIFY_SEEN 14
CONSTANT: SCRIPT_JUSTIFFY_RESERVED4 15
STRUCT: SCRIPT_VISATTR
{ flags WORD } ;
C-TYPE: SCRIPT_CACHE
C-TYPE: ABC
FUNCTION: HRESULT ScriptShape (
HDC hdc,
SCRIPT_CACHE* psc,
WCHAR* pwcChars,
int cChars,
int cMaxGlyphs,
SCRIPT_ANALYSIS* psa,
WORD* pwOutGlyphs,
WORD* pwLogClust,
SCRIPT_VISATTR* psva,
int* pcGlyphs
)
STRUCT: GOFFSET
{ du LONG }
{ dv LONG } ;
FUNCTION: HRESULT ScriptPlace (
HDC hdc,
SCRIPT_CACHE* psc,
WORD* pwGlyphs,
int cGlyphs,
SCRIPT_VISATTR* psva,
SCRIPT_ANALYSIS* psa,
int* piAdvance,
GOFFSET* pGoffset,
ABC* pABC
)
FUNCTION: HRESULT ScriptTextOut (
HDC hdc,
SCRIPT_CACHE* psc,
int x,
int y,
UINT fuOptions,
RECT* lprc,
SCRIPT_ANALYSIS* psa,
WCHAR* pwcReserved,
int iReserved,
WORD* pwGlyphs,
int cGlyphs,
int* piAdvance,
int* piJustify,
GOFFSET* pGoffset
)
FUNCTION: HRESULT ScriptJustify (
SCRIPT_VISATTR* psva,
int* piAdvance,
int cGlyphs,
int iDx,
int iMinKashida,
int* piJustify
)
STRUCT: SCRIPT_LOGATTR
{ flags BYTE } ;
FUNCTION: HRESULT ScriptBreak (
WCHAR* pwcChars,
int cChars,
SCRIPT_ANALYSIS* psa,
SCRIPT_LOGATTR* psla
)
FUNCTION: HRESULT ScriptCPtoX (
int iCP,
BOOL fTrailing,
int cChars,
int cGlyphs,
WORD* pwLogClust,
SCRIPT_VISATTR* psva,
int* piAdvance,
SCRIPT_ANALYSIS* psa,
int* piX
)
FUNCTION: HRESULT ScriptXtoCP (
int iCP,
BOOL fTrailing,
int cChars,
int cGlyphs,
WORD* pwLogClust,
SCRIPT_VISATTR* psva,
int* piAdvance,
SCRIPT_ANALYSIS* psa,
int* piCP,
int* piTrailing
)
FUNCTION: HRESULT ScriptGetLogicalWidths (
SCRIPT_ANALYSIS* psa,
int cChars,
int cGlyphs,
int* piGlyphWidth,
WORD* pwLogClust,
SCRIPT_VISATTR* psva,
int* piDx
)
FUNCTION: HRESULT ScriptApplyLogicalWidth (
int* piDx,
int cChars,
int cGlyphs,
WORD* pwLogClust,
SCRIPT_VISATTR* psva,
int* piAdvance,
SCRIPT_ANALYSIS* psa,
ABC* pABC,
int* piJustify
)
FUNCTION: HRESULT ScriptGetCMap (
HDC hdc,
SCRIPT_CACHE* psc,
WCHAR* pwcInChars,
int cChars,
DWORD dwFlags,
WORD* pwOutGlyphs
)
FUNCTION: HRESULT ScriptGetGlyphABCWidth (
HDC hdc,
SCRIPT_CACHE* psc,
WORD wGlyph,
ABC* pABC
)
STRUCT: SCRIPT_PROPERTIES
{ flags DWORD } ;
FUNCTION: HRESULT ScriptGetProperties (
SCRIPT_PROPERTIES*** ppSp,
int* piNumScripts
)
STRUCT: SCRIPT_FONTPROPERTIES
{ cBytes int }
{ wgBlank WORD }
{ wgDefault WORD }
{ wgInvalid WORD }
{ wgKashida WORD }
{ iKashidaWidth int } ;
FUNCTION: HRESULT ScriptGetFontProperties (
HDC hdc,
SCRIPT_CACHE* psc,
SCRIPT_FONTPROPERTIES* sfp
)
FUNCTION: HRESULT ScriptCacheGetHeight (
HDC hdc,
SCRIPT_CACHE* psc,
long* tmHeight
)
CONSTANT: SSA_PASSWORD 0x00000001
CONSTANT: SSA_TAB 0x00000002
CONSTANT: SSA_CLIP 0x00000004
CONSTANT: SSA_FIT 0x00000008
CONSTANT: SSA_DZWG 0x00000010
CONSTANT: SSA_FALLBACK 0x00000020
CONSTANT: SSA_BREAK 0x00000040
CONSTANT: SSA_GLYPHS 0x00000080
CONSTANT: SSA_RTL 0x00000100
CONSTANT: SSA_GCP 0x00000200
CONSTANT: SSA_HOTKEY 0x00000400
CONSTANT: SSA_METAFILE 0x00000800
CONSTANT: SSA_LINK 0x00001000
CONSTANT: SSA_HIDEHOTKEY 0x00002000
CONSTANT: SSA_HOTKEYONLY 0x00002400
CONSTANT: SSA_FULLMEASURE 0x04000000
CONSTANT: SSA_LPKANSIFALLBACK 0x08000000
CONSTANT: SSA_PIDX 0x10000000
CONSTANT: SSA_LAYOUTRTL 0x20000000
CONSTANT: SSA_DONTGLYPH 0x40000000
CONSTANT: SSA_NOKASHIDA 0x80000000
STRUCT: SCRIPT_TABDEF
{ cTabStops int }
{ iScale int }
{ pTabStops int* }
{ iTabOrigin int } ;
TYPEDEF: void* SCRIPT_STRING_ANALYSIS
FUNCTION: HRESULT ScriptStringAnalyse (
HDC hdc,
void* pString,
int cString,
int cGlyphs,
int iCharset,
DWORD dwFlags,
int iReqWidth,
SCRIPT_CONTROL* psControl,
SCRIPT_STATE* psState,
int* piDx,
SCRIPT_TABDEF* pTabDef,
BYTE* pbInClass,
SCRIPT_STRING_ANALYSIS* pssa
)
FUNCTION: HRESULT ScriptStringFree (
SCRIPT_STRING_ANALYSIS* pssa
)
DESTRUCTOR: ScriptStringFree
FUNCTION: SIZE* ScriptString_pSize ( SCRIPT_STRING_ANALYSIS ssa )
FUNCTION: int* ScriptString_pcOutChars ( SCRIPT_STRING_ANALYSIS ssa )
FUNCTION: SCRIPT_LOGATTR* ScriptString_pLogAttr ( SCRIPT_STRING_ANALYSIS ssa )
FUNCTION: HRESULT ScriptStringGetOrder (
SCRIPT_STRING_ANALYSIS ssa,
UINT* puOrder
)
FUNCTION: HRESULT ScriptStringCPtoX (
SCRIPT_STRING_ANALYSIS ssa,
int icp,
BOOL fTrailing,
int* pX
)
FUNCTION: HRESULT ScriptStringXtoCP (
SCRIPT_STRING_ANALYSIS ssa,
int iX,
int* piCh,
int* piTrailing
)
FUNCTION: HRESULT ScriptStringGetLogicalWidths (
SCRIPT_STRING_ANALYSIS ssa,
int* piDx
)
FUNCTION: HRESULT ScriptStringValidate (
SCRIPT_STRING_ANALYSIS ssa
)
FUNCTION: HRESULT ScriptStringOut (
SCRIPT_STRING_ANALYSIS ssa,
int iX,
int iY,
UINT uOptions,
RECT* prc,
int iMinSel,
int iMaxSel,
BOOL fDisabled
)
CONSTANT: SIC_COMPLEX 1
CONSTANT: SIC_ASCIIDIGIT 2
CONSTANT: SIC_NEUTRAL 4
FUNCTION: HRESULT ScriptIsComplex (
WCHAR* pwcInChars,
int cInChars,
DWORD dwFlags
)
STRUCT: SCRIPT_DIGITSUBSTITUTE
{ flags DWORD } ;
FUNCTION: HRESULT ScriptRecordDigitSubstitution (
LCID Locale,
SCRIPT_DIGITSUBSTITUTE* psds
)
CONSTANT: SCRIPT_DIGITSUBSTITUTE_CONTEXT 0
CONSTANT: SCRIPT_DIGITSUBSTITUTE_NONE 1
CONSTANT: SCRIPT_DIGITSUBSTITUTE_NATIONAL 2
CONSTANT: SCRIPT_DIGITSUBSTITUTE_TRADITIONAL 3
FUNCTION: HRESULT ScriptApplyDigitSubstitution (
SCRIPT_DIGITSUBSTITUTE* psds,
SCRIPT_CONTROL* psc,
SCRIPT_STATE* pss
)