X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=fontconfig%2Ffontconfig.h;h=6ca1cf4548773d5d9b0b227906c3a1ccffaefec3;hb=0945cbe73019404c880be0de7f703ef77aec8a08;hp=281356281b80ca5ba750494064626ea51a4a483c;hpb=f21f40f347afa81d1fcd4ae604bd3f164a3b2e90;p=fontconfig.git diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h index 2813562..6ca1cf4 100644 --- a/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig.h @@ -1,7 +1,7 @@ /* - * $XFree86: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.28 2002/08/24 20:08:53 keithp Exp $ + * $RCSId: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.30 2002/09/26 00:17:27 keithp Exp $ * - * Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc. + * Copyright © 2001 Keith Packard * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -27,17 +27,26 @@ #include +#if defined(__GNUC__) && (__GNUC__ >= 4) +#define FC_ATTRIBUTE_SENTINEL(x) __attribute__((__sentinel__(0))) +#else +#define FC_ATTRIBUTE_SENTINEL(x) +#endif + typedef unsigned char FcChar8; typedef unsigned short FcChar16; typedef unsigned int FcChar32; typedef int FcBool; /* - * Current Fontconfig version number + * Current Fontconfig version number. This same number + * must appear in the fontconfig configure.in file. Yes, + * it'a a pain to synchronize version numbers like this. */ -#define FC_MAJOR 1 -#define FC_MINOR 0 -#define FC_REVISION 1 + +#define FC_MAJOR 2 +#define FC_MINOR 3 +#define FC_REVISION 96 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) @@ -51,7 +60,7 @@ typedef int FcBool; * it means multiple copies of the font information. */ -#define FC_CACHE_VERSION "1" +#define FC_CACHE_VERSION "2" #define FcTrue 1 #define FcFalse 0 @@ -67,9 +76,11 @@ typedef int FcBool; #define FC_FOUNDRY "foundry" /* String */ #define FC_ANTIALIAS "antialias" /* Bool (depends) */ #define FC_HINTING "hinting" /* Bool (true) */ +#define FC_HINT_STYLE "hintstyle" /* Int */ #define FC_VERTICAL_LAYOUT "verticallayout" /* Bool (false) */ #define FC_AUTOHINT "autohint" /* Bool (false) */ #define FC_GLOBAL_ADVANCE "globaladvance" /* Bool (true) */ +#define FC_WIDTH "width" /* Int */ #define FC_FILE "file" /* String */ #define FC_INDEX "index" /* Int */ #define FC_FT_FACE "ftface" /* FT_Face */ @@ -80,10 +91,21 @@ typedef int FcBool; #define FC_DPI "dpi" /* double */ #define FC_RGBA "rgba" /* Int */ #define FC_MINSPACE "minspace" /* Bool use minimum line spacing */ -#define FC_SOURCE "source" /* String (X11, freetype) */ +#define FC_SOURCE "source" /* String (deprecated) */ #define FC_CHARSET "charset" /* CharSet */ -#define FC_LANG "lang" /* String OS/2 CodePageRange */ - +#define FC_LANG "lang" /* String RFC 3066 langs */ +#define FC_FONTVERSION "fontversion" /* Int from 'head' table */ +#define FC_FULLNAME "fullname" /* String */ +#define FC_FAMILYLANG "familylang" /* String RFC 3066 langs */ +#define FC_STYLELANG "stylelang" /* String RFC 3066 langs */ +#define FC_FULLNAMELANG "fullnamelang" /* String RFC 3066 langs */ +#define FC_CAPABILITY "capability" /* String */ +#define FC_FONTFORMAT "fontformat" /* String */ +#define FC_EMBOLDEN "embolden" /* Bool - true if emboldening needed*/ +#define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */ +#define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */ + +#define FC_CACHE_SUFFIX ".cache-"FC_CACHE_VERSION #define FC_DIR_CACHE_FILE "fonts.cache-"FC_CACHE_VERSION #define FC_USER_CACHE_FILE ".fonts.cache-"FC_CACHE_VERSION @@ -92,27 +114,55 @@ typedef int FcBool; #define FC_CHAR_HEIGHT "charheight"/* Int */ #define FC_MATRIX "matrix" /* FcMatrix */ -#define FC_WEIGHT_LIGHT 0 -#define FC_WEIGHT_MEDIUM 100 -#define FC_WEIGHT_DEMIBOLD 180 -#define FC_WEIGHT_BOLD 200 -#define FC_WEIGHT_BLACK 210 - -#define FC_SLANT_ROMAN 0 -#define FC_SLANT_ITALIC 100 -#define FC_SLANT_OBLIQUE 110 - -#define FC_PROPORTIONAL 0 -#define FC_MONO 100 -#define FC_CHARCELL 110 +#define FC_WEIGHT_THIN 0 +#define FC_WEIGHT_EXTRALIGHT 40 +#define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT +#define FC_WEIGHT_LIGHT 50 +#define FC_WEIGHT_BOOK 75 +#define FC_WEIGHT_REGULAR 80 +#define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR +#define FC_WEIGHT_MEDIUM 100 +#define FC_WEIGHT_DEMIBOLD 180 +#define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD +#define FC_WEIGHT_BOLD 200 +#define FC_WEIGHT_EXTRABOLD 205 +#define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD +#define FC_WEIGHT_BLACK 210 +#define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK + +#define FC_SLANT_ROMAN 0 +#define FC_SLANT_ITALIC 100 +#define FC_SLANT_OBLIQUE 110 + +#define FC_WIDTH_ULTRACONDENSED 50 +#define FC_WIDTH_EXTRACONDENSED 63 +#define FC_WIDTH_CONDENSED 75 +#define FC_WIDTH_SEMICONDENSED 87 +#define FC_WIDTH_NORMAL 100 +#define FC_WIDTH_SEMIEXPANDED 113 +#define FC_WIDTH_EXPANDED 125 +#define FC_WIDTH_EXTRAEXPANDED 150 +#define FC_WIDTH_ULTRAEXPANDED 200 + +#define FC_PROPORTIONAL 0 +#define FC_DUAL 90 +#define FC_MONO 100 +#define FC_CHARCELL 110 /* sub-pixel order */ -#define FC_RGBA_NONE 0 +#define FC_RGBA_UNKNOWN 0 #define FC_RGBA_RGB 1 #define FC_RGBA_BGR 2 #define FC_RGBA_VRGB 3 #define FC_RGBA_VBGR 4 - +#define FC_RGBA_NONE 5 + +/* hinting style */ +#define FC_HINT_NONE 0 +#define FC_HINT_SLIGHT 1 +#define FC_HINT_MEDIUM 2 +#define FC_HINT_FULL 3 + typedef enum _FcType { FcTypeVoid, FcTypeInteger, @@ -151,7 +201,8 @@ typedef struct _FcConstant { } FcConstant; typedef enum _FcResult { - FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId + FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId, + FcResultOutOfMemory } FcResult; typedef struct _FcPattern FcPattern; @@ -186,7 +237,7 @@ typedef struct _FcObjectSet { } FcObjectSet; typedef enum _FcMatchKind { - FcMatchPattern, FcMatchFont + FcMatchPattern, FcMatchFont, FcMatchScan } FcMatchKind; typedef enum _FcLangResult { @@ -239,6 +290,12 @@ FcBool FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4); /* fccfg.c */ +FcChar8 * +FcConfigHome (void); + +FcBool +FcConfigEnableHome (FcBool enable); + FcChar8 * FcConfigFilename (const FcChar8 *url); @@ -420,6 +477,9 @@ FcInitLoadConfigAndFonts (void); FcBool FcInit (void); +void +FcFini (void); + int FcGetVersion (void); @@ -448,6 +508,9 @@ FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang); FcLangResult FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb); +FcBool +FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb); + FcBool FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb); @@ -468,7 +531,7 @@ FcObjectSet * FcObjectSetVaBuild (const char *first, va_list va); FcObjectSet * -FcObjectSetBuild (const char *first, ...); +FcObjectSetBuild (const char *first, ...) FC_ATTRIBUTE_SENTINEL(0); FcFontSet * FcFontSetList (FcConfig *config, @@ -598,7 +661,7 @@ FcPattern * FcPatternCreate (void); FcPattern * -FcPatternDuplicate (FcPattern *p); +FcPatternDuplicate (const FcPattern *p); void FcPatternReference (FcPattern *p); @@ -631,11 +694,14 @@ FcBool FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append); FcResult -FcPatternGet (FcPattern *p, const char *object, int id, FcValue *v); +FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v); FcBool FcPatternDel (FcPattern *p, const char *object); +FcBool +FcPatternRemove (FcPattern *p, const char *object, int id); + FcBool FcPatternAddInteger (FcPattern *p, const char *object, int i); @@ -658,31 +724,31 @@ FcBool FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls); FcResult -FcPatternGetInteger (FcPattern *p, const char *object, int n, int *i); +FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i); FcResult -FcPatternGetDouble (FcPattern *p, const char *object, int n, double *d); +FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d); FcResult -FcPatternGetString (FcPattern *p, const char *object, int n, FcChar8 ** s); +FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s); FcResult -FcPatternGetMatrix (FcPattern *p, const char *object, int n, FcMatrix **s); +FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s); FcResult -FcPatternGetCharSet (FcPattern *p, const char *object, int n, FcCharSet **c); +FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c); FcResult -FcPatternGetBool (FcPattern *p, const char *object, int n, FcBool *b); +FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b); FcResult -FcPatternGetLangSet (FcPattern *p, const char *object, int n, FcLangSet **ls); +FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls); FcPattern * FcPatternVaBuild (FcPattern *orig, va_list va); FcPattern * -FcPatternBuild (FcPattern *orig, ...); +FcPatternBuild (FcPattern *orig, ...) FC_ATTRIBUTE_SENTINEL(0); /* fcstr.c */ @@ -692,7 +758,13 @@ FcStrCopy (const FcChar8 *s); FcChar8 * FcStrCopyFilename (const FcChar8 *s); -#define FcToLower(c) (('A' <= (c) && (c) <= 'Z') ? (c) - 'A' + 'a' : (c)) +/* These are ASCII only, suitable only for pattern element names */ +#define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132)) +#define FcIsLower(c) ((0141 <= (c) && (c) <= 0172)) +#define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c)) + +FcChar8 * +FcStrDowncase (const FcChar8 *s); int FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); @@ -700,6 +772,12 @@ FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); int FcStrCmp (const FcChar8 *s1, const FcChar8 *s2); +const FcChar8 * +FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); + +const FcChar8 * +FcStrStr (const FcChar8 *s1, const FcChar8 *s2); + int FcUtf8ToUcs4 (const FcChar8 *src_orig, FcChar32 *dst, @@ -772,4 +850,6 @@ FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain); _FCFUNCPROTOEND +#undef FC_ATTRIBUTE_SENTINEL + #endif /* _FONTCONFIG_H_ */