464 lines
15 KiB
C
464 lines
15 KiB
C
#ifndef _FONTCONFIG_FONTCONFIG_H_
|
|
#define _FONTCONFIG_FONTCONFIG_H_
|
|
|
|
#include <stdarg.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
#define _FCFUNCPROTOBEGIN
|
|
#define _FCFUNCPROTOEND
|
|
#define FC_USER_CACHE_FILE ".fonts.cache-"FC_CACHE_VERSION
|
|
#define FC_DIR_CACHE_FILE "fonts.cache-"FC_CACHE_VERSION
|
|
#define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132))
|
|
#define FcIsLower(c) ((0141 <= (c) && (c) <= 0172))
|
|
#define FC_CHARSET_DONE ((FcChar32) -1)
|
|
#define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
|
|
#define FcMatrixInit(m) ((m)->xx = (m)->yy = 1, (m)->xy = (m)->yx = 0)
|
|
#define FC_CHARSET_MAP_SIZE (256/32)
|
|
#define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c))
|
|
#define FC_HINT_NONE 0
|
|
#define FC_PROPORTIONAL 0
|
|
#define FC_RGBA_UNKNOWN 0
|
|
#define FC_SLANT_ROMAN 0
|
|
#define FC_WEIGHT_THIN 0
|
|
#define FcFalse 0
|
|
#define FC_CACHE_VERSION "1"
|
|
#define FC_HINT_SLIGHT 1
|
|
#define FC_RGBA_RGB 1
|
|
#define FcTrue 1
|
|
#define FC_MONO 100
|
|
#define FC_SLANT_ITALIC 100
|
|
#define FC_WEIGHT_MEDIUM 100
|
|
#define FC_WIDTH_NORMAL 100
|
|
#define FC_CHARCELL 110
|
|
#define FC_SLANT_OBLIQUE 110
|
|
#define FC_WIDTH_SEMIEXPANDED 113
|
|
#define FC_WIDTH_EXPANDED 125
|
|
#define FC_WIDTH_EXTRAEXPANDED 150
|
|
#define FC_WEIGHT_DEMIBOLD 180
|
|
#define FC_HINT_MEDIUM 2
|
|
#define FC_MAJOR 2
|
|
#define FC_REVISION 2
|
|
#define FC_RGBA_BGR 2
|
|
#define FC_WEIGHT_BOLD 200
|
|
#define FC_WIDTH_ULTRAEXPANDED 200
|
|
#define FC_WEIGHT_EXTRABOLD 205
|
|
#define FC_WEIGHT_BLACK 210
|
|
#define FC_HINT_FULL 3
|
|
#define FC_MINOR 3
|
|
#define FC_RGBA_VRGB 3
|
|
#define FC_RGBA_VBGR 4
|
|
#define FC_WEIGHT_EXTRALIGHT 40
|
|
#define FC_RGBA_NONE 5
|
|
#define FC_WEIGHT_LIGHT 50
|
|
#define FC_WIDTH_ULTRACONDENSED 50
|
|
#define FC_UTF8_MAX_LEN 6
|
|
#define FC_WIDTH_EXTRACONDENSED 63
|
|
#define FC_WEIGHT_BOOK 75
|
|
#define FC_WIDTH_CONDENSED 75
|
|
#define FC_WEIGHT_REGULAR 80
|
|
#define FC_WIDTH_SEMICONDENSED 87
|
|
#define FC_DUAL 90
|
|
#define FC_ANTIALIAS "antialias"
|
|
#define FC_ASPECT "aspect"
|
|
#define FC_AUTOHINT "autohint"
|
|
#define FC_CAPABILITY "capability"
|
|
#define FC_CHAR_HEIGHT "charheight"
|
|
#define FC_CHARSET "charset"
|
|
#define FC_CHAR_WIDTH "charwidth"
|
|
#define FC_DPI "dpi"
|
|
#define FC_EMBOLDEN "embolden"
|
|
#define FC_FAMILY "family"
|
|
#define FC_FAMILYLANG "familylang"
|
|
#define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK
|
|
#define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD
|
|
#define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD
|
|
#define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT
|
|
#define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR
|
|
#define FC_FILE "file"
|
|
#define FC_FONTFORMAT "fontformat"
|
|
#define FC_FONTVERSION "fontversion"
|
|
#define FC_FOUNDRY "foundry"
|
|
#define FC_FT_FACE "ftface"
|
|
#define FC_FULLNAME "fullname"
|
|
#define FC_FULLNAMELANG "fullnamelang"
|
|
#define FC_GLOBAL_ADVANCE "globaladvance"
|
|
#define FC_HINTING "hinting"
|
|
#define FC_HINT_STYLE "hintstyle"
|
|
#define FC_INDEX "index"
|
|
#define FC_LANG "lang"
|
|
#define FC_MATRIX "matrix"
|
|
#define FC_MINSPACE "minspace"
|
|
#define FC_OUTLINE "outline"
|
|
#define FC_PIXEL_SIZE "pixelsize"
|
|
#define FC_RASTERIZER "rasterizer"
|
|
#define FC_RGBA "rgba"
|
|
#define FC_SCALABLE "scalable"
|
|
#define FC_SCALE "scale"
|
|
#define FC_SIZE "size"
|
|
#define FC_SLANT "slant"
|
|
#define FC_SOURCE "source"
|
|
#define FC_SPACING "spacing"
|
|
#define FC_STYLE "style"
|
|
#define FC_STYLELANG "stylelang"
|
|
#define FC_VERTICAL_LAYOUT "verticallayout"
|
|
#define FC_WEIGHT "weight"
|
|
#define FC_WIDTH "width"
|
|
|
|
|
|
typedef int FcBool;
|
|
|
|
typedef struct _FcPattern FcPattern;
|
|
|
|
typedef enum _FcType {
|
|
FcTypeVoid = 0,
|
|
FcTypeInteger = 1,
|
|
FcTypeDouble = 2,
|
|
FcTypeString = 3,
|
|
FcTypeBool = 4,
|
|
FcTypeMatrix = 5,
|
|
FcTypeCharSet = 6,
|
|
FcTypeFTFace = 7,
|
|
FcTypeLangSet = 8
|
|
} FcType;
|
|
|
|
typedef unsigned char FcChar8;
|
|
|
|
typedef struct _FcMatrix FcMatrix;
|
|
|
|
typedef struct _FcCharSet FcCharSet;
|
|
|
|
typedef struct _FcLangSet FcLangSet;
|
|
|
|
typedef struct _FcValue FcValue;
|
|
|
|
typedef struct _FcStrList FcStrList;
|
|
|
|
typedef struct _FcConfig FcConfig;
|
|
|
|
typedef struct _FcStrSet FcStrSet;
|
|
|
|
typedef unsigned int FcChar32;
|
|
|
|
typedef enum _FcMatchKind {
|
|
FcMatchPattern = 0,
|
|
FcMatchFont = 1
|
|
} FcMatchKind;
|
|
|
|
typedef struct _FcObjectSet FcObjectSet;
|
|
|
|
typedef enum {
|
|
FcEndianBig = 0,
|
|
FcEndianLittle = 1
|
|
} FcEndian;
|
|
|
|
typedef struct _FcAtomic FcAtomic;
|
|
|
|
typedef struct _FcConstant FcConstant;
|
|
|
|
typedef struct _FcFontSet FcFontSet;
|
|
|
|
typedef enum _FcSetName {
|
|
FcSetSystem = 0,
|
|
FcSetApplication = 1
|
|
} FcSetName;
|
|
|
|
typedef struct _FcBlanks FcBlanks;
|
|
|
|
typedef enum _FcResult {
|
|
FcResultMatch = 0,
|
|
FcResultNoMatch = 1,
|
|
FcResultTypeMismatch = 2,
|
|
FcResultNoId = 3,
|
|
FcResultOutOfMemory = 4
|
|
} FcResult;
|
|
|
|
typedef struct _FcObjectType FcObjectType;
|
|
|
|
typedef struct _FcGlobalCache FcGlobalCache;
|
|
|
|
typedef enum _FcLangResult {
|
|
FcLangEqual = 0,
|
|
FcLangDifferentCountry = 1,
|
|
FcLangDifferentLang = 2
|
|
} FcLangResult;
|
|
|
|
typedef short unsigned int FcChar16;
|
|
|
|
|
|
|
|
|
|
|
|
struct _FcMatrix {
|
|
double xx;
|
|
double xy;
|
|
double yx;
|
|
double yy;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct _FcValue {
|
|
FcType type;
|
|
union {
|
|
const FcChar8 *s;
|
|
int i;
|
|
FcBool b;
|
|
double d;
|
|
const FcMatrix *m;
|
|
const FcCharSet *c;
|
|
void *f;
|
|
const FcPattern *p;
|
|
const FcLangSet *l;
|
|
} u;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct _FcObjectSet {
|
|
int nobject;
|
|
int sobject;
|
|
const char **objects;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct _FcConstant {
|
|
const FcChar8 *name;
|
|
const char *object;
|
|
int value;
|
|
};
|
|
|
|
|
|
struct _FcFontSet {
|
|
int nfont;
|
|
int sfont;
|
|
FcPattern **fonts;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct _FcObjectType {
|
|
const char *object;
|
|
FcType type;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
extern FcBool FcPatternAdd(FcPattern *, const char *, FcValue, FcBool);
|
|
extern FcStrList *FcConfigGetConfigFiles(FcConfig *);
|
|
extern FcBool FcStrSetAdd(FcStrSet *, const FcChar8 *);
|
|
extern FcBool FcCharSetIsSubset(const FcCharSet *, const FcCharSet *);
|
|
extern void FcDefaultSubstitute(FcPattern *);
|
|
extern FcChar32 FcCharSetIntersectCount(const FcCharSet *,
|
|
const FcCharSet *);
|
|
extern FcBool FcConfigUptoDate(FcConfig *);
|
|
extern void FcPatternDestroy(FcPattern *);
|
|
extern FcLangSet *FcLangSetCopy(const FcLangSet *);
|
|
extern FcBool FcPatternAddCharSet(FcPattern *, const char *,
|
|
const FcCharSet *);
|
|
extern FcBool FcPatternAddLangSet(FcPattern *, const char *,
|
|
const FcLangSet *);
|
|
extern void FcConfigAppFontClear(FcConfig *);
|
|
extern int FcConfigGetRescanInverval(FcConfig *);
|
|
extern FcBool FcConfigSubstitute(FcConfig *, FcPattern *, FcMatchKind);
|
|
extern FcObjectSet *FcObjectSetBuild(const char *, ...);
|
|
extern FcBool FcObjectSetAdd(FcObjectSet *, const char *);
|
|
extern FcChar32 FcCharSetSubtractCount(const FcCharSet *,
|
|
const FcCharSet *);
|
|
extern FcBool FcUtf16Len(const FcChar8 *, FcEndian, int, int *, int *);
|
|
extern FcBool FcConfigBuildFonts(FcConfig *);
|
|
extern FcChar8 *FcAtomicOrigFile(FcAtomic *);
|
|
extern FcBool FcNameUnregisterConstants(const FcConstant *, int);
|
|
extern FcBool FcConfigSetRescanInverval(FcConfig *, int);
|
|
extern FcBool FcAtomicLock(FcAtomic *);
|
|
extern FcPattern *FcPatternBuild(FcPattern *, ...);
|
|
extern FcFontSet *FcConfigGetFonts(FcConfig *, FcSetName);
|
|
extern void FcStrListDone(FcStrList *);
|
|
extern FcBool FcLangSetEqual(const FcLangSet *, const FcLangSet *);
|
|
extern const FcConstant *FcNameGetConstant(FcChar8 *);
|
|
extern void FcMatrixShear(FcMatrix *, double, double);
|
|
extern FcMatrix *FcMatrixCopy(const FcMatrix *);
|
|
extern FcStrList *FcConfigGetConfigDirs(FcConfig *);
|
|
extern FcBool FcStrSetDel(FcStrSet *, const FcChar8 *);
|
|
extern FcBool FcConfigEnableHome(FcBool);
|
|
extern FcStrSet *FcStrSetCreate(void);
|
|
extern int FcStrCmpIgnoreCase(const FcChar8 *, const FcChar8 *);
|
|
extern FcCharSet *FcCharSetUnion(const FcCharSet *, const FcCharSet *);
|
|
extern FcObjectSet *FcObjectSetCreate(void);
|
|
extern FcBlanks *FcBlanksCreate(void);
|
|
extern void FcBlanksDestroy(FcBlanks *);
|
|
extern FcBool FcNameConstant(FcChar8 *, int *);
|
|
extern void FcMatrixRotate(FcMatrix *, double, double);
|
|
extern FcPattern *FcNameParse(const FcChar8 *);
|
|
extern void FcMatrixMultiply(FcMatrix *, const FcMatrix *,
|
|
const FcMatrix *);
|
|
extern FcResult FcPatternGetLangSet(const FcPattern *, const char *,
|
|
int, FcLangSet * *);
|
|
extern FcValue FcValueSave(FcValue);
|
|
extern void FcAtomicDestroy(FcAtomic *);
|
|
extern FcBool FcPatternEqual(const FcPattern *, const FcPattern *);
|
|
extern FcBool FcNameRegisterObjectTypes(const FcObjectType *, int);
|
|
extern FcChar32 FcCharSetNextPage(const FcCharSet *, FcChar32 *,
|
|
FcChar32 *);
|
|
extern FcBool FcConfigSetCurrent(FcConfig *);
|
|
extern FcPattern *FcFreeTypeQuery(const FcChar8 *, int, FcBlanks *,
|
|
int *);
|
|
extern FcChar8 *FcStrListNext(FcStrList *);
|
|
extern FcBool FcNameRegisterConstants(const FcConstant *, int);
|
|
extern void FcValueDestroy(FcValue);
|
|
extern FcBool FcFileScan(FcFontSet *, FcStrSet *, FcGlobalCache *,
|
|
FcBlanks *, const FcChar8 *, FcBool);
|
|
extern FcFontSet *FcFontSetSort(FcConfig *, FcFontSet * *, int,
|
|
FcPattern *, FcBool, FcCharSet * *,
|
|
FcResult *);
|
|
extern FcResult FcPatternGetString(const FcPattern *, const char *,
|
|
int, FcChar8 * *);
|
|
extern FcChar8 *FcStrCopy(const FcChar8 *);
|
|
extern FcBool FcPatternEqualSubset(const FcPattern *,
|
|
const FcPattern *,
|
|
const FcObjectSet *);
|
|
extern FcConfig *FcInitLoadConfig(void);
|
|
extern FcStrList *FcStrListCreate(FcStrSet *);
|
|
extern FcResult FcPatternGetCharSet(const FcPattern *, const char *,
|
|
int, FcCharSet * *);
|
|
extern FcPattern *FcPatternCreate(void);
|
|
extern FcChar32 FcPatternHash(const FcPattern *);
|
|
extern FcChar8 *FcConfigFilename(const FcChar8 *);
|
|
extern FcBool FcPatternDel(FcPattern *, const char *);
|
|
extern FcCharSet *FcCharSetCopy(FcCharSet *);
|
|
extern FcBool FcInitReinitialize(void);
|
|
extern FcFontSet *FcFontList(FcConfig *, FcPattern *, FcObjectSet *);
|
|
extern int FcUcs4ToUtf8(FcChar32, FcChar8 *);
|
|
extern FcBool FcAtomicReplaceOrig(FcAtomic *);
|
|
extern FcObjectSet *FcObjectSetVaBuild(const char *, va_list);
|
|
extern FcBool FcInitBringUptoDate(void);
|
|
extern FcResult FcPatternGetDouble(const FcPattern *, const char *,
|
|
int, double *);
|
|
extern int FcStrCmp(const FcChar8 *, const FcChar8 *);
|
|
extern FcChar8 *FcConfigGetCache(FcConfig *);
|
|
extern FcAtomic *FcAtomicCreate(const FcChar8 *);
|
|
extern FcPattern *FcPatternDuplicate(const FcPattern *);
|
|
extern FcChar8 *FcStrDirname(const FcChar8 *);
|
|
extern FcBool FcConfigSubstituteWithPat(FcConfig *, FcPattern *,
|
|
FcPattern *, FcMatchKind);
|
|
extern FcBool FcDirScan(FcFontSet *, FcStrSet *, FcGlobalCache *,
|
|
FcBlanks *, const FcChar8 *, FcBool);
|
|
extern FcChar8 *FcStrCopyFilename(const FcChar8 *);
|
|
extern FcBool FcLangSetAdd(FcLangSet *, const FcChar8 *);
|
|
extern FcResult FcPatternGetInteger(const FcPattern *, const char *,
|
|
int, int *);
|
|
extern FcBool FcConfigParseAndLoad(FcConfig *, const FcChar8 *,
|
|
FcBool);
|
|
extern FcBool FcStrSetEqual(FcStrSet *, FcStrSet *);
|
|
extern FcBool FcConfigAppFontAddFile(FcConfig *, const FcChar8 *);
|
|
extern FcPattern *FcFontSetMatch(FcConfig *, FcFontSet * *, int,
|
|
FcPattern *, FcResult *);
|
|
extern FcBool FcStrSetAddFilename(FcStrSet *, const FcChar8 *);
|
|
extern FcChar8 *FcNameUnparse(FcPattern *);
|
|
extern FcChar32 FcCharSetFirstPage(const FcCharSet *, FcChar32 *,
|
|
FcChar32 *);
|
|
extern void FcFontSetPrint(const FcFontSet *);
|
|
extern FcPattern *FcPatternVaBuild(FcPattern *, va_list);
|
|
extern FcChar8 *FcConfigHome(void);
|
|
extern FcBool FcBlanksAdd(FcBlanks *, FcChar32);
|
|
extern FcBool FcBlanksIsMember(FcBlanks *, FcChar32);
|
|
extern FcBool FcNameUnregisterObjectTypes(const FcObjectType *, int);
|
|
extern FcLangResult FcLangSetHasLang(const FcLangSet *,
|
|
const FcChar8 *);
|
|
extern FcChar8 *FcStrBasename(const FcChar8 *);
|
|
extern FcPattern *FcFontMatch(FcConfig *, FcPattern *, FcResult *);
|
|
extern void FcValuePrint(const FcValue);
|
|
extern FcLangSet *FcLangSetCreate(void);
|
|
extern FcStrList *FcConfigGetFontDirs(FcConfig *);
|
|
extern FcBool FcCharSetAddChar(FcCharSet *, FcChar32);
|
|
extern FcCharSet *FcCharSetIntersect(const FcCharSet *,
|
|
const FcCharSet *);
|
|
extern void FcMatrixScale(FcMatrix *, double, double);
|
|
extern void FcPatternReference(FcPattern *);
|
|
extern FcBool FcCharSetEqual(const FcCharSet *, const FcCharSet *);
|
|
extern FcBool FcFontSetAdd(FcFontSet *, FcPattern *);
|
|
extern FcChar8 *FcAtomicNewFile(FcAtomic *);
|
|
extern FcFontSet *FcFontSetList(FcConfig *, FcFontSet * *, int,
|
|
FcPattern *, FcObjectSet *);
|
|
extern void FcFontSetSortDestroy(FcFontSet *);
|
|
extern FcBool FcPatternAddMatrix(FcPattern *, const char *,
|
|
const FcMatrix *);
|
|
extern FcChar32 FcCharSetCount(const FcCharSet *);
|
|
extern FcBool FcPatternAddString(FcPattern *, const char *,
|
|
const FcChar8 *);
|
|
extern void FcStrSetDestroy(FcStrSet *);
|
|
extern FcConfig *FcConfigGetCurrent(void);
|
|
extern FcBool FcPatternAddInteger(FcPattern *, const char *, int);
|
|
extern FcResult FcPatternGetMatrix(const FcPattern *, const char *,
|
|
int, FcMatrix * *);
|
|
extern int FcGetVersion(void);
|
|
extern FcBool FcCharSetHasChar(const FcCharSet *, FcChar32);
|
|
extern FcBool FcPatternAddBool(FcPattern *, const char *, FcBool);
|
|
extern const FcObjectType *FcNameGetObjectType(const char *);
|
|
extern FcBool FcDirCacheValid(const FcChar8 *);
|
|
extern FcBool FcUtf8Len(const FcChar8 *, int, int *, int *);
|
|
extern FcConfig *FcInitLoadConfigAndFonts(void);
|
|
extern FcResult FcPatternGetBool(const FcPattern *, const char *, int,
|
|
FcBool *);
|
|
extern void FcFontSetDestroy(FcFontSet *);
|
|
extern FcBool FcConfigAppFontAddDir(FcConfig *, const FcChar8 *);
|
|
extern int FcUtf16ToUcs4(const FcChar8 *, FcEndian, FcChar32 *, int);
|
|
extern int FcUtf8ToUcs4(const FcChar8 *, FcChar32 *, int);
|
|
extern FcFontSet *FcFontSetCreate(void);
|
|
extern FcBool FcDirSave(FcFontSet *, FcStrSet *, const FcChar8 *);
|
|
extern void FcConfigDestroy(FcConfig *);
|
|
extern FcBool FcPatternAddDouble(FcPattern *, const char *, double);
|
|
extern FcFontSet *FcFontSort(FcConfig *, FcPattern *, FcBool,
|
|
FcCharSet * *, FcResult *);
|
|
extern FcPattern *FcFontRenderPrepare(FcConfig *, FcPattern *,
|
|
FcPattern *);
|
|
extern void FcLangSetDestroy(FcLangSet *);
|
|
extern void FcCharSetDestroy(FcCharSet *);
|
|
extern FcBool FcValueEqual(FcValue, FcValue);
|
|
extern FcBool FcPatternAddWeak(FcPattern *, const char *, FcValue,
|
|
FcBool);
|
|
extern FcBool FcLangSetContains(const FcLangSet *, const FcLangSet *);
|
|
extern void FcObjectSetDestroy(FcObjectSet *);
|
|
extern FcCharSet *FcCharSetCreate(void);
|
|
extern FcLangResult FcLangSetCompare(const FcLangSet *,
|
|
const FcLangSet *);
|
|
extern FcBool FcMatrixEqual(const FcMatrix *, const FcMatrix *);
|
|
extern void FcAtomicUnlock(FcAtomic *);
|
|
extern FcBool FcStrSetMember(FcStrSet *, const FcChar8 *);
|
|
extern FcChar32 FcLangSetHash(const FcLangSet *);
|
|
extern void FcAtomicDeleteNew(FcAtomic *);
|
|
extern FcCharSet *FcCharSetSubtract(const FcCharSet *,
|
|
const FcCharSet *);
|
|
extern FcBool FcInit(void);
|
|
extern FcResult FcPatternGet(const FcPattern *, const char *, int,
|
|
FcValue *);
|
|
extern void FcPatternPrint(const FcPattern *);
|
|
extern FcBlanks *FcConfigGetBlanks(FcConfig *);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|