diff semiconginev2/thirdparty/x11/xft.nim @ 1218:56781cc0fc7c compiletime-tests

did: renamge main package
author sam <sam@basx.dev>
date Wed, 17 Jul 2024 21:01:37 +0700
parents semicongine/old/thirdparty/x11/xft.nim@239adab121a3
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/semiconginev2/thirdparty/x11/xft.nim	Wed Jul 17 21:01:37 2024 +0700
@@ -0,0 +1,680 @@
+# Converted from X11/Xft/Xft.h
+import
+  x,
+  xlib,
+  xrender,
+  xutil
+
+const
+  xftLib = "libXft.so"
+
+# Defined in the FreeType library
+type
+  FT_UInt* = cuint
+  PFT_UInt* = ptr FT_UInt
+  FT_Face* = object
+  PFT_Face* = ptr FT_Face
+
+# Defined in the fontconfig library
+type
+  FcEndian* = enum
+    FcEndianBig, FcEndianLittle
+
+  FcResult* = enum
+    FcResultMatch, FcResultNoMatch, FcResultTypeMismatch,
+    FcResultNoId, FcResultOutOfMemory
+  PFcResult* = ptr FcResult
+
+  FcBool* = cint
+
+  FcCharSet* = object
+  PFcCharSet* = ptr FcCharSet
+
+  FcPattern* = object
+  PFcPattern* = ptr FcPattern
+
+  FcFontSet* = object
+    nfont*: cint
+    sfont*: cint
+    fonts*: ptr PFcPattern
+  PFcFontSet* = ptr FcFontSet
+
+  FcChar8* = cuchar
+  PFcChar8* = ptr FcChar8
+
+  FcChar16* = cushort
+  PFcChar16* = ptr FcChar16
+
+  FcChar32* = cuint
+  PFcChar32* = ptr FcChar32
+
+type
+  XftFontInfo* = object 
+  PXftFontInfo* = ptr XftFontInfo
+  XftFont* = object
+    ascent*: cint
+    descent*: cint
+    height*: cint
+    max_advance_width*: cint
+    charset*: PFcCharSet
+    pattern*: PFcPattern    
+  PXftFont* = ptr XftFont
+
+  XftDraw* = object
+  PXftDraw* = ptr XftDraw
+
+  XftColor* = object
+    pixel*: culong
+    color*: XRenderColor
+  PXftColor* = ptr XftColor
+
+  XftCharSpec* = object
+    ucs4*: FcChar32
+    x*: cshort
+    y*: cshort
+  PXftCharSpec* = ptr XftCharSpec
+
+  XftCharFontSpec* = object
+    font*: PXftFont
+    ucs4*: FcChar32
+    x*: cshort
+    y*: cshort
+  PXftCharFontSpec* = ptr XftCharFontSpec
+
+  XftGlyphSpec* = object
+    glyph*: FT_UInt
+    x*: cshort
+    y*: cshort
+  PXftGlyphSpec* = ptr XftGlyphSpec
+
+  XftGlyphFontSpec* = object
+    font*: PXftFont
+    glyph*: FT_UInt
+    x*: cshort
+    y*: cshort
+  PXftGlyphFontSpec = ptr XftGlyphFontSpec
+
+# xftcolor.c
+proc XftColorAllocName*(
+  display: PDisplay,
+  visual: PVisual,
+  cmap: Colormap,
+  name: cstring,
+  result: PXftColor
+): XBool {.cdecl, dynlib: xftLib, importc.}
+
+proc XftColorAllocValue*(
+  display: PDisplay,
+  visual: PVisual,
+  cmap: Colormap,
+  color: PXRenderColor,
+  result: PXftColor
+): XBool {.cdecl, dynlib: xftLib, importc.}
+
+proc XftColorFree*(
+  display: PDisplay,
+  visual: PVisual,
+  cmap: Colormap,
+  color: PXftColor
+) {.cdecl, dynlib: xftLib, importc.} 
+
+# xftdpy.c
+proc XftDefaultHasRender*(
+  display: PDisplay
+): XBool {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDefaultSet*(
+  display: PDisplay,
+  defaults: PFcPattern
+): XBool {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDefaultSubstitute*(
+  display: PDisplay,
+  screen: cint,
+  pattern: PFcPattern
+) {.cdecl, dynlib: xftLib, importc.}
+
+# xftdraw.c
+proc XftDrawCreate*(
+  display: PDisplay,
+  drawable: Drawable,
+  visual: PVisual,
+  colormap: Colormap 
+): PXftDraw {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawCreateBitmap*(
+  display: PDisplay,
+  bitmap: Pixmap
+): PXftDraw {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawCreateAlpha*(
+  display: PDisplay,
+  pixmap: Pixmap,
+  depth: cint
+): PXftDraw {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawChange*(
+  draw: PXftDraw,
+  drawable: Drawable
+) {.cdecl, dynlib: xftLib, importc.} 
+
+proc XftDrawDisplay*(
+  draw: PXftDraw
+): PDisplay {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawDrawable*(
+  draw: PXftDraw
+): Drawable {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawColormap*(
+  draw: PXftDraw
+): Colormap {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawVisual*(
+  draw: PXftDraw
+): PVisual {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawDestroy*(
+  draw: PXftDraw
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawPicture*(
+  draw: PXftDraw
+): Picture {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawSrcPicture*(
+  draw: PXftDraw,
+  color: PXftColor
+): Picture {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawGlyphs*(
+  draw: PXftDraw,
+  color: PXftColor,
+  pub: PXftFont,
+  x: cint,
+  y: cint,
+  glyphs: PFt_UInt,
+  nglyphs: cint
+) {.cdecl, dynlib: xftLib, importc.} 
+
+proc XftDrawString8*(
+  draw: PXftDraw,
+  color: PXftColor,
+  pub: PXftFont,
+  x: cint,
+  y: cint,
+  str: PFcChar8,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawString16*(
+  draw: PXftDraw,
+  color: PXftColor,
+  pub: PXftFont,
+  x: cint,
+  y: cint,
+  str: PFcChar16,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawString32*(
+  draw: PXftDraw,
+  color: PXftColor,
+  pub: PXftFont,
+  x: cint,
+  y: cint,
+  str: PFcChar32,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawStringUtf8*(
+  draw: PXftDraw,
+  color: PXftColor,
+  pub: PXftFont,
+  x: cint,
+  y: cint,
+  str: PFcChar8,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawStringUtf16*(
+  draw: PXftDraw,
+  color: PXftColor,
+  pub: PXftFont,
+  x: cint,
+  y: cint,
+  str: PFcChar8,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawCharSpec*(
+  draw: PXftDraw,
+  color: PXftColor,
+  pub: PXftFont,
+  chars: PXftCharSpec,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawCharFontSpec*(
+  draw: PXftDraw,
+  color: PXftColor,
+  chars: PXftCharFontSpec,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawGlyphSpec*(
+  draw: PXftDraw,
+  color: PXftColor,
+  pub: PXftFont,
+  glyphs: PXftGlyphSpec,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawGlyphFontSpec*(
+  draw: PXftDraw,
+  color: PXftColor,
+  glyphs: PXftGlyphFontSpec,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawRect*(
+  draw: PXftDraw,
+  color: PXftColor,
+  x: cint,
+  y: cint,
+  width: cuint,
+  height: cuint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawSetClip*(
+  draw: PXftDraw,
+  r: Region
+): XBool {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawSetClipRectangles*(
+  draw: PXftDraw,
+  xOrigin: cint,
+  yOrigin: cint,
+  rects: PXRectangle,
+  n: cint
+): XBool {.cdecl, dynlib: xftLib, importc.}
+
+proc XftDrawSetSubwindowMode*(
+  draw: PXftDraw,
+  mode: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+# xftextent.c
+proc XftGlyphExtents*(
+  display: PDisplay,
+  pub: PXftFont,
+  glyphs: PFT_UInt,
+  nglyphs: cint,
+  extends: PXGlyphInfo
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextExtents8*(
+  display: PDisplay,
+  pub: PXftFont,
+  str: PFcChar8,
+  len: cint,
+  extents: PXGlyphInfo
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextExtents16*(
+  display: PDisplay,
+  pub: PXftFont,
+  str: PFcChar16,
+  len: cint,
+  extents: PXGlyphInfo
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextExtents32*(
+  display: PDisplay,
+  pub: PXftFont,
+  str: PFcChar32,
+  len: cint,
+  extents: PXGlyphInfo
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextExtentsUtf8*(
+  display: PDisplay,
+  pub: PXftFont,
+  str: PFcChar8,
+  len: cint,
+  extents: PXGlyphInfo
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextExtentsUtf16*(
+  display: PDisplay,
+  pub: PXftFont,
+  str: PFcChar8,
+  endian: FcEndian,
+  len: cint,
+  extents: PXGlyphInfo
+) {.cdecl, dynlib: xftLib, importc.}
+
+# xftfont.c
+proc XftFontMatch*(
+  display: PDisplay,
+  screen: cint,
+  pattern: PFcPattern,
+  result: PFcResult
+): PFcPattern {.cdecl, dynlib: xftLib, importc.}
+
+# Expects display to be nil as an argument
+proc XftFontOpen*(
+  display: PDisplay,
+  screen: cint
+): PXftFont {.cdecl, dynlib: xftLib, importc, varargs.}
+
+proc XftFontOpenName*(
+  display: PDisplay,
+  screen: cint,
+  name: cstring
+): PXftFont {.cdecl, dynlib: xftLib, importc.}
+
+proc XftFontOpenXlfd*(
+  display: PDisplay,
+  screen: cint,
+  xlfd: cstring
+): PXftFont {.cdecl, dynlib: xftLib, importc.}
+
+# xftfreetype.c
+proc XftLockFace*(
+  pub: PXftFont
+): FT_Face {.cdecl, dynlib: xftLib, importc.}
+
+proc XftUnlockFace*(
+  pub: PXftFont
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftFontInfoCreate*(
+  display: PDisplay,
+  pattern: PFcPattern
+): PXftFontInfo {.cdecl, dynlib: xftLib, importc.}
+
+proc XftFontInfoDestroy*(
+  display: PDisplay,
+  fi: PXftFontInfo
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftFontInfoHash*(
+  fi: PXftFontInfo
+): PFcChar32 {.cdecl, dynlib: xftLib, importc.}
+
+proc XftFontInfoEqual*(
+  a: PXftFontInfo,
+  b: PXftFontInfo
+): FcBool {.cdecl, dynlib: xftLib, importc.}
+
+proc XftFontOpenInfo*(
+  display: PDisplay,
+  pattern: PFcPattern,
+  fi: PXftFontInfo
+): PXftFont {.cdecl, dynlib: xftLib, importc.}
+
+proc XftFontOpenPattern*(
+  display: PDisplay,
+  pattern: PFcPattern
+): PXftFont {.cdecl, dynlib: xftLib, importc.}
+
+proc XftFontCopy*(
+  display: PDisplay,
+  pub: PXftFont
+): PXftFont {.cdecl, dynlib: xftLib, importc.}
+
+proc XftFontClose*(
+  display: PDisplay,
+  pub: PXftFont
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftInitFtLibrary*(): FcBool {.cdecl, dynlib: xftLib, importc.}
+
+# xftglyphs.c
+proc XftFontLoadGlyphs*(
+  display: PDisplay,
+  pub: PXftFont,
+  need_bitmaps: FcBool,
+  glyphs: PFT_UInt,
+  nglyph: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftFontUnloadGlyphs*(
+  display: PDisplay,
+  pub: PXftFont,
+  glyphs: PFT_UInt,
+  nglyph: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+const XFT_NMISSING* = 256
+
+proc XftFontCheckGlyph*(
+  display: PDisplay,
+  pub: PXftFont,
+  need_bitmaps: FcBool,
+  glyph: FT_UInt,
+  missing: PFT_UInt,
+  nmissing: cint
+): FcBool {.cdecl, dynlib: xftLib, importc.}
+
+proc XftCharExists*(
+  display: PDisplay,
+  pub: PXftFont,
+  ucs4: FcChar32
+): FcBool {.cdecl, dynlib: xftLib, importc.}
+
+proc XftCharIndex*(
+  display: PDisplay,
+  pub: PXftFont,
+  ucs4: FcChar32
+): FT_UInt {.cdecl, dynlib: xftLib, importc.}
+
+# xftinit.c
+proc XftInit*(
+  config: cstring
+): FcBool {.cdecl, dynlib: xftLib, importc.}
+
+proc XftGetVersion*(): cint {.cdecl, dynlib: xftLib, importc.}
+
+# xftlist.c
+# Expects display to be nil as an argument
+proc XftListFonts*(
+  display: PDisplay,
+  screen: cint
+): PFcFontSet {.cdecl, dynlib: xftLib, importc, varargs.}
+
+# xftname.c
+proc XftNameParse*(
+  name: cstring
+): PFcPattern {.cdecl, dynlib: xftLib, importc.}
+
+# xftrender.c
+proc XftGlyphRender*(display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  x: cint,
+  y: cint,
+  glyphs: PFT_UInt,
+  nglyphs: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftGlyphSpecRender*(display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  glyphs: PXftGlyphSpec,
+  nglyphs: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftCharSpecRender*(display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  chars: PXftCharSpec,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftGlyphFontSpecRender*(display: PDisplay,
+  op: cint,
+  src: Picture,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  glyphs: PXftGlyphFontSpec,
+  nglyphs: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftCharFontSpecRender*(display: PDisplay,
+  op: cint,
+  src: Picture,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  chars: PXftCharFontSpec,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextRender8*(display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  x: cint,
+  y: cint,
+  str: PFcChar8,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextRender16*(
+  display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  x: cint,
+  y: cint,
+  str: PFcChar16,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextRender16BE*(
+  display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  x: cint,
+  y: cint,
+  str: PFcChar8,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextRender16LE*(
+  display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  x: cint,
+  y: cint,
+  str: PFcChar8,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextRender32*(
+  display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  x: cint,
+  y: cint,
+  str: PFcChar32,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextRender32BE*(
+  display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  x: cint,
+  y: cint,
+  str: PFcChar8,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextRender32LE*(
+  display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  x: cint,
+  y: cint,
+  str: PFcChar8,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextRenderUtf8*(
+  display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  x: cint,
+  y: cint,
+  str: PFcChar8,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+proc XftTextRenderUtf16*(
+  display: PDisplay,
+  op: cint,
+  src: Picture,
+  pub: PXftFont,
+  dst: Picture,
+  srcx: cint,
+  srcy: cint,
+  x: cint,
+  y: cint,
+  str: PFcChar8,
+  endian: FcEndian,
+  len: cint
+) {.cdecl, dynlib: xftLib, importc.}
+
+# xftxlfd.c
+proc XftXlfdParse8*(
+  xlfd_orig: cstring,
+  ignore_scalable: XBool,
+  complete: XBool
+): PFcPattern {.cdecl, dynlib: xftLib, importc.}
+