#ifndef _XFT_H_
#define _XFT_H_
#include <X11/extensions/Xrender.h>
#include <fontconfig/fontconfig.h>
#include <stdarg.h>
#include <X11/Xfuncproto.h>
#include <X11/Xosdefs.h>
typedef unsigned char XftChar8;
typedef unsigned short XftChar16;
typedef unsigned int XftChar32;
#define XFT_FAMILY "family"
#define XFT_STYLE "style"
#define XFT_SLANT "slant"
#define XFT_WEIGHT "weight"
#define XFT_SIZE "size"
#define XFT_PIXEL_SIZE "pixelsize"
#define XFT_ENCODING "encoding"
#define XFT_SPACING "spacing"
#define XFT_FOUNDRY "foundry"
#define XFT_CORE "core"
#define XFT_ANTIALIAS "antialias"
#define XFT_XLFD "xlfd"
#define XFT_FILE "file"
#define XFT_INDEX "index"
#define XFT_RASTERIZER "rasterizer"
#define XFT_OUTLINE "outline"
#define XFT_SCALABLE "scalable"
#define XFT_RGBA "rgba"
#define XFT_SCALE "scale"
#define XFT_RENDER "render"
#define XFT_MINSPACE "minspace"
#define XFT_DPI "dpi"
#define XFT_CHAR_WIDTH "charwidth"
#define XFT_CHAR_HEIGHT "charheight"
#define XFT_MATRIX "matrix"
#define XFT_WEIGHT_LIGHT 0
#define XFT_WEIGHT_MEDIUM 100
#define XFT_WEIGHT_DEMIBOLD 180
#define XFT_WEIGHT_BOLD 200
#define XFT_WEIGHT_BLACK 210
#define XFT_SLANT_ROMAN 0
#define XFT_SLANT_ITALIC 100
#define XFT_SLANT_OBLIQUE 110
#define XFT_PROPORTIONAL 0
#define XFT_MONO 100
#define XFT_CHARCELL 110
#define XFT_RGBA_NONE 0
#define XFT_RGBA_RGB 1
#define XFT_RGBA_BGR 2
#define XFT_RGBA_VRGB 3
#define XFT_RGBA_VBGR 4
typedef FcType XftType;
typedef FcMatrix XftMatrix;
#define XftMatrixInit(m) FcMatrixInit(m)
typedef FcResult XftResult;
#define XftResultMatch FcResultMatch
#define XftResultNoMatch FcResultNoMatch
#define XftResultTypeMismatch FcResultTypeMismatch
#define XftResultNoId FcResultNoId
#define XftTypeVoid FcTypeVoid
#define XftTypeInteger FcTypeInteger
#define XftTypeDouble FcTypeDouble
#define XftTypeString FcTypeString
#define XftTypeBool FcTypeBool
#define XftTypeMatrix FcTypeMatrix
typedef FcValue XftValue;
typedef FcPattern XftPattern;
typedef FcFontSet XftFontSet;
typedef struct _XftFontStruct XftFontStruct;
typedef struct _XftFont {
int ascent;
int descent;
int height;
int max_advance_width;
Bool core;
XftPattern *pattern;
union {
struct {
XFontStruct *font;
} core;
struct {
XftFontStruct *font;
} ft;
} u;
} XftFont;
typedef struct _XftDraw XftDraw;
typedef struct _XftColor {
unsigned long pixel;
XRenderColor color;
} XftColor;
typedef FcObjectSet XftObjectSet;
_XFUNCPROTOBEGIN
Bool
XftConfigSubstitute (XftPattern *p);
Bool
XftColorAllocName (Display *dpy,
Visual *visual,
Colormap cmap,
char *name,
XftColor *result);
Bool
XftColorAllocValue (Display *dpy,
Visual *visual,
Colormap cmap,
XRenderColor *color,
XftColor *result);
void
XftColorFree (Display *dpy,
Visual *visual,
Colormap cmap,
XftColor *color);
void
XftValuePrint (XftValue v);
void
XftPatternPrint (XftPattern *p);
void
XftFontSetPrint (XftFontSet *s);
Bool
XftDefaultHasRender (Display *dpy);
Bool
XftDefaultSet (Display *dpy, XftPattern *defaults);
void
XftDefaultSubstitute (Display *dpy, int screen, XftPattern *pattern);
XftDraw *
XftDrawCreate (Display *dpy,
Drawable drawable,
Visual *visual,
Colormap colormap);
XftDraw *
XftDrawCreateBitmap (Display *dpy,
Pixmap bitmap);
void
XftDrawChange (XftDraw *draw,
Drawable drawable);
void
XftDrawDestroy (XftDraw *draw);
void
XftDrawString8 (XftDraw *d,
XftColor *color,
XftFont *font,
int x,
int y,
XftChar8 *string,
int len);
void
XftDrawString16 (XftDraw *draw,
XftColor *color,
XftFont *font,
int x,
int y,
XftChar16 *string,
int len);
void
XftDrawString32 (XftDraw *draw,
XftColor *color,
XftFont *font,
int x,
int y,
XftChar32 *string,
int len);
void
XftDrawStringUtf8 (XftDraw *d,
XftColor *color,
XftFont *font,
int x,
int y,
XftChar8 *string,
int len);
void
XftDrawRect (XftDraw *d,
XftColor *color,
int x,
int y,
unsigned int width,
unsigned int height);
Bool
XftDrawSetClip (XftDraw *d,
Region r);
void
XftTextExtents8 (Display *dpy,
XftFont *font,
XftChar8 *string,
int len,
XGlyphInfo *extents);
void
XftTextExtents16 (Display *dpy,
XftFont *font,
XftChar16 *string,
int len,
XGlyphInfo *extents);
void
XftTextExtents32 (Display *dpy,
XftFont *font,
XftChar32 *string,
int len,
XGlyphInfo *extents);
void
XftTextExtentsUtf8 (Display *dpy,
XftFont *font,
XftChar8 *string,
int len,
XGlyphInfo *extents);
XftPattern *
XftFontMatch (Display *dpy, int screen, XftPattern *pattern, XftResult *result);
XftFont *
XftFontOpenPattern (Display *dpy, XftPattern *pattern);
XftFont *
XftFontOpen (Display *dpy, int screen, ...);
XftFont *
XftFontOpenName (Display *dpy, int screen, const char *name);
XftFont *
XftFontOpenXlfd (Display *dpy, int screen, const char *xlfd);
void
XftFontClose (Display *dpy, XftFont *font);
Bool
XftGlyphExists (Display *dpy, XftFont *font, XftChar32 glyph);
XftFontSet *
XftFontSetCreate (void);
void
XftFontSetDestroy (XftFontSet *s);
Bool
XftFontSetAdd (XftFontSet *s, XftPattern *font);
Bool
XftInit (char *config);
XftObjectSet *
XftObjectSetCreate (void);
Bool
XftObjectSetAdd (XftObjectSet *os, const char *object);
void
XftObjectSetDestroy (XftObjectSet *os);
XftObjectSet *
XftObjectSetVaBuild (const char *first, va_list va);
XftObjectSet *
XftObjectSetBuild (const char *first, ...);
XftFontSet *
XftListFontSets (XftFontSet **sets,
int nsets,
XftPattern *p,
XftObjectSet *os);
XftFontSet *
XftListFontsPatternObjects (Display *dpy,
int screen,
XftPattern *pattern,
XftObjectSet *os);
XftFontSet *
XftListFonts (Display *dpy,
int screen,
...);
XftPattern *
XftFontSetMatch (XftFontSet **sets,
int nsets,
XftPattern *p,
XftResult *result);
int
XftMatrixEqual (const XftMatrix *mat1, const XftMatrix *mat2);
void
XftMatrixMultiply (XftMatrix *result, XftMatrix *a, XftMatrix *b);
void
XftMatrixRotate (XftMatrix *m, double c, double s);
void
XftMatrixScale (XftMatrix *m, double sx, double sy);
void
XftMatrixShear (XftMatrix *m, double sh, double sv);
XftPattern *
XftNameParse (const char *name);
Bool
XftNameUnparse (XftPattern *pat, char *dest, int len);
XftPattern *
XftPatternCreate (void);
XftPattern *
XftPatternDuplicate (XftPattern *p);
void
XftValueDestroy (XftValue v);
void
XftPatternDestroy (XftPattern *p);
Bool
XftPatternAdd (XftPattern *p, const char *object, XftValue value, Bool append);
XftResult
XftPatternGet (XftPattern *p, const char *object, int id, XftValue *v);
Bool
XftPatternDel (XftPattern *p, const char *object);
Bool
XftPatternAddInteger (XftPattern *p, const char *object, int i);
Bool
XftPatternAddDouble (XftPattern *p, const char *object, double d);
Bool
XftPatternAddString (XftPattern *p, const char *object, const char *s);
Bool
XftPatternAddMatrix (XftPattern *p, const char *object, const XftMatrix *s);
Bool
XftPatternAddBool (XftPattern *p, const char *object, Bool b);
XftResult
XftPatternGetInteger (XftPattern *p, const char *object, int n, int *i);
XftResult
XftPatternGetDouble (XftPattern *p, const char *object, int n, double *d);
XftResult
XftPatternGetString (XftPattern *p, const char *object, int n, char **s);
XftResult
XftPatternGetMatrix (XftPattern *p, const char *object, int n, XftMatrix **s);
XftResult
XftPatternGetBool (XftPattern *p, const char *object, int n, Bool *b);
XftPattern *
XftPatternVaBuild (XftPattern *orig, va_list va);
XftPattern *
XftPatternBuild (XftPattern *orig, ...);
int
XftUtf8ToUcs4 (XftChar8 *src_orig,
XftChar32 *dst,
int len);
Bool
XftUtf8Len (XftChar8 *string,
int len,
int *nchar,
int *wchar);
XftPattern *
XftXlfdParse (const char *xlfd_orig, Bool ignore_scalable, Bool complete);
XFontStruct *
XftCoreOpen (Display *dpy, XftPattern *pattern);
void
XftCoreClose (Display *dpy, XFontStruct *font);
_XFUNCPROTOEND
#endif