]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/windows/usp10/usp10.factor
Update actions, because Node.js 16 actions are deprecated, to Node.js 20
[factor.git] / basis / windows / usp10 / usp10.factor
old mode 100755 (executable)
new mode 100644 (file)
index 6ad149b..f2f37c8
@@ -1,23 +1,24 @@
 ! Copyright (C) 2009 Doug Coleman.
-! See http:
-USING: alien.syntax ;
+! See https://factorcode.org/license.txt for BSD license.
+USING: alien.c-types alien.syntax alien.destructors classes.struct
+windows.types ;
 IN: windows.usp10
 
 LIBRARY: usp10
 
-C-STRUCT: SCRIPT_CONTROL
-    { "DWORD" "flags" } ;
+STRUCT: SCRIPT_CONTROL
+    { flags DWORD } ;
 
-C-STRUCT: SCRIPT_STATE
-    { "WORD" "flags" } ;
+STRUCT: SCRIPT_STATE
+    { flags WORD } ;
 
-C-STRUCT: SCRIPT_ANALYSIS
-    { "WORD" "flags" }
-    { "SCRIPT_STATE" "s" } ;
+STRUCT: SCRIPT_ANALYSIS
+    { flags WORD }
+    { s SCRIPT_STATE } ;
 
-C-STRUCT: SCRIPT_ITEM
-    { "int" "iCharPos" }
-    { "SCRIPT_ANALYSIS" "a" } ;
+STRUCT: SCRIPT_ITEM
+    { iCharPos int }
+    { a SCRIPT_ANALYSIS } ;
 
 FUNCTION: HRESULT ScriptItemize (
     WCHAR* pwcInChars,
@@ -27,34 +28,37 @@ FUNCTION: HRESULT ScriptItemize (
     SCRIPT_STATE* psState,
     SCRIPT_ITEM* pItems,
     int* pcItems
-) ;
+)
 
 FUNCTION: HRESULT ScriptLayout (
     int cRuns,
     BYTE* pbLevel,
     int* piVisualToLogical,
     int* piLogicalToVisual
-) ;
-
-C-ENUM: SCRIPT_JUSTIFY_NONE
-SCRIPT_JUSTIFY_ARABIC_BLANK
-SCRIPT_JUSTIFY_CHARACTER
-SCRIPT_JUSTIFY_RESERVED1
-SCRIPT_JUSTIFY_BLANK
-SCRIPT_JUSTIFY_RESERVED2
-SCRIPT_JUSTIFY_RESERVED3
-SCRIPT_JUSTIFY_ARABIC_NORMAL
-SCRIPT_JUSTIFY_ARABIC_KASHIDA
-SCRIPT_JUSTIFY_ALEF
-SCRIPT_JUSTIFY_HA
-SCRIPT_JUSTIFY_RA
-SCRIPT_JUSTIFY_BA
-SCRIPT_JUSTIFY_BARA
-SCRIPT_JUSTIFY_SEEN
-SCRIPT_JUSTIFFY_RESERVED4 ;
-
-C-STRUCT: SCRIPT_VISATTR
-    { "WORD" "flags" } ;
+)
+
+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,
@@ -67,11 +71,11 @@ FUNCTION: HRESULT ScriptShape (
     WORD* pwLogClust,
     SCRIPT_VISATTR* psva,
     int* pcGlyphs
-) ;
+)
 
-C-STRUCT: GOFFSET
-    { "LONG" "du" }
-    { "LONG" "dv" } ;
+STRUCT: GOFFSET
+    { du LONG }
+    { dv LONG } ;
 
 FUNCTION: HRESULT ScriptPlace (
     HDC hdc,
@@ -83,7 +87,7 @@ FUNCTION: HRESULT ScriptPlace (
     int* piAdvance,
     GOFFSET* pGoffset,
     ABC* pABC
-) ;
+)
 
 FUNCTION: HRESULT ScriptTextOut (
     HDC hdc,
@@ -100,7 +104,7 @@ FUNCTION: HRESULT ScriptTextOut (
     int* piAdvance,
     int* piJustify,
     GOFFSET* pGoffset
-) ;
+)
 
 FUNCTION: HRESULT ScriptJustify (
     SCRIPT_VISATTR* psva,
@@ -109,17 +113,17 @@ FUNCTION: HRESULT ScriptJustify (
     int iDx,
     int iMinKashida,
     int* piJustify
-) ;
+)
 
-C-STRUCT: SCRIPT_LOGATTR
-    { "BYTE" "flags" } ;
+STRUCT: SCRIPT_LOGATTR
+    { flags BYTE } ;
 
 FUNCTION: HRESULT ScriptBreak (
     WCHAR* pwcChars,
     int cChars,
     SCRIPT_ANALYSIS* psa,
     SCRIPT_LOGATTR* psla
-) ;
+)
 
 FUNCTION: HRESULT ScriptCPtoX (
     int iCP,
@@ -131,7 +135,7 @@ FUNCTION: HRESULT ScriptCPtoX (
     int* piAdvance,
     SCRIPT_ANALYSIS* psa,
     int* piX
-) ;
+)
 
 FUNCTION: HRESULT ScriptXtoCP (
     int iCP,
@@ -144,7 +148,7 @@ FUNCTION: HRESULT ScriptXtoCP (
     SCRIPT_ANALYSIS* psa,
     int* piCP,
     int* piTrailing
-) ;
+)
 
 FUNCTION: HRESULT ScriptGetLogicalWidths (
     SCRIPT_ANALYSIS* psa,
@@ -154,7 +158,7 @@ FUNCTION: HRESULT ScriptGetLogicalWidths (
     WORD* pwLogClust,
     SCRIPT_VISATTR* psva,
     int* piDx
-) ;
+)
 
 FUNCTION: HRESULT ScriptApplyLogicalWidth (
     int* piDx,
@@ -166,7 +170,7 @@ FUNCTION: HRESULT ScriptApplyLogicalWidth (
     SCRIPT_ANALYSIS* psa,
     ABC* pABC,
     int* piJustify
-) ;
+)
 
 FUNCTION: HRESULT ScriptGetCMap (
     HDC hdc,
@@ -175,70 +179,70 @@ FUNCTION: HRESULT ScriptGetCMap (
     int cChars,
     DWORD dwFlags,
     WORD* pwOutGlyphs
-) ;
+)
 
 FUNCTION: HRESULT ScriptGetGlyphABCWidth (
     HDC hdc,
     SCRIPT_CACHE* psc,
     WORD wGlyph,
     ABC* pABC
-) ;
+)
 
-C-STRUCT: SCRIPT_PROPERTIES
-    { "DWORD" "flags" } ;
+STRUCT: SCRIPT_PROPERTIES
+    { flags DWORD } ;
 
 FUNCTION: HRESULT ScriptGetProperties (
     SCRIPT_PROPERTIES*** ppSp,
     int* piNumScripts
-) ;
+)
 
-C-STRUCT: SCRIPT_FONTPROPERTIES
-    { "int" "cBytes" }
-    { "WORD" "wgBlank" }
-    { "WORD" "wgDefault" }
-    { "WORD" "wgInvalid" }
-    { "WORD" "wgKashida" }
-    { "int" "iKashidaWidth" } ;
+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 HEX: 00000001
-CONSTANT: SSA_TAB HEX: 00000002
-CONSTANT: SSA_CLIP HEX: 00000004
-CONSTANT: SSA_FIT HEX: 00000008
-CONSTANT: SSA_DZWG HEX: 00000010
-CONSTANT: SSA_FALLBACK HEX: 00000020
-CONSTANT: SSA_BREAK HEX: 00000040
-CONSTANT: SSA_GLYPHS HEX: 00000080
-CONSTANT: SSA_RTL HEX: 00000100
-CONSTANT: SSA_GCP HEX: 00000200
-CONSTANT: SSA_HOTKEY HEX: 00000400
-CONSTANT: SSA_METAFILE HEX: 00000800
-CONSTANT: SSA_LINK HEX: 00001000
-CONSTANT: SSA_HIDEHOTKEY HEX: 00002000
-CONSTANT: SSA_HOTKEYONLY HEX: 00002400
-CONSTANT: SSA_FULLMEASURE HEX: 04000000
-CONSTANT: SSA_LPKANSIFALLBACK HEX: 08000000
-CONSTANT: SSA_PIDX HEX: 10000000
-CONSTANT: SSA_LAYOUTRTL HEX: 20000000
-CONSTANT: SSA_DONTGLYPH HEX: 40000000
-CONSTANT: SSA_NOKASHIDA HEX: 80000000
-
-C-STRUCT: SCRIPT_TABDEF
-    { "int" "cTabStops" }
-    { "int" "iScale" }
-    { "int*" "pTabStops" }
-    { "int" "iTabOrigin" } ;
+)
+
+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
 
@@ -256,45 +260,47 @@ FUNCTION: HRESULT ScriptStringAnalyse (
     SCRIPT_TABDEF* pTabDef,
     BYTE* pbInClass,
     SCRIPT_STRING_ANALYSIS* pssa
-) ;
+)
 
 FUNCTION: HRESULT ScriptStringFree (
     SCRIPT_STRING_ANALYSIS* pssa
-) ;
+)
 
-FUNCTION: SIZE* ScriptString_pSize ( SCRIPT_STRING_ANALYSIS ssa ) ;
+DESTRUCTOR: ScriptStringFree
 
-FUNCTION: int* ScriptString_pcOutChars ( SCRIPT_STRING_ANALYSIS ssa ) ;
+FUNCTION: SIZE* ScriptString_pSize ( SCRIPT_STRING_ANALYSIS ssa )
 
-FUNCTION: SCRIPT_LOGATTR* ScriptString_pLogAttr ( 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,
@@ -305,7 +311,7 @@ FUNCTION: HRESULT ScriptStringOut (
     int iMinSel,
     int iMaxSel,
     BOOL fDisabled
-) ;
+)
 
 CONSTANT: SIC_COMPLEX 1
 CONSTANT: SIC_ASCIIDIGIT 2
@@ -315,15 +321,15 @@ FUNCTION: HRESULT ScriptIsComplex (
     WCHAR* pwcInChars,
     int cInChars,
     DWORD dwFlags
-) ;
+)
 
-C-STRUCT: SCRIPT_DIGITSUBSTITUTE
-    { "DWORD" "flags" } ;
+STRUCT: SCRIPT_DIGITSUBSTITUTE
+    { flags DWORD } ;
 
 FUNCTION: HRESULT ScriptRecordDigitSubstitution (
     LCID Locale,
     SCRIPT_DIGITSUBSTITUTE* psds
-) ;
+)
 
 CONSTANT: SCRIPT_DIGITSUBSTITUTE_CONTEXT 0
 CONSTANT: SCRIPT_DIGITSUBSTITUTE_NONE 1
@@ -334,4 +340,4 @@ FUNCTION: HRESULT ScriptApplyDigitSubstitution (
     SCRIPT_DIGITSUBSTITUTE* psds,
     SCRIPT_CONTROL* psc,
     SCRIPT_STATE* pss
-) ;
\ No newline at end of file
+)