]> git.wh0rd.org - fontconfig.git/blobdiff - fontconfig/fontconfig.h
Update for version 2.2.98
[fontconfig.git] / fontconfig / fontconfig.h
index 281356281b80ca5ba750494064626ea51a4a483c..0b9dccf8d14cab14e85243cff4323141a4ac2708 100644 (file)
@@ -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
@@ -33,11 +33,14 @@ 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       2
+#define FC_REVISION    98
 
 #define FC_VERSION     ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
 
@@ -67,9 +70,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 */
@@ -82,7 +87,15 @@ typedef int          FcBool;
 #define FC_MINSPACE        "minspace"          /* Bool use minimum line spacing */
 #define FC_SOURCE          "source"            /* String (X11, freetype) */
 #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_DIR_CACHE_FILE          "fonts.cache-"FC_CACHE_VERSION
 #define FC_USER_CACHE_FILE         ".fonts.cache-"FC_CACHE_VERSION
@@ -92,27 +105,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 +192,8 @@ typedef struct _FcConstant {
 } FcConstant;
 
 typedef enum _FcResult {
-    FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId
+    FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId,
+    FcResultOutOfMemory
 } FcResult;
 
 typedef struct _FcPattern   FcPattern;
@@ -239,6 +281,12 @@ FcBool
 FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4);
 
 /* fccfg.c */
+FcChar8 *
+FcConfigHome (void);
+
+FcBool
+FcConfigEnableHome (FcBool enable);
+
 FcChar8 *
 FcConfigFilename (const FcChar8 *url);
     
@@ -420,6 +468,9 @@ FcInitLoadConfigAndFonts (void);
 FcBool
 FcInit (void);
 
+void
+FcFini (void);
+
 int
 FcGetVersion (void);
 
@@ -448,6 +499,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);
 
@@ -598,7 +652,7 @@ FcPattern *
 FcPatternCreate (void);
 
 FcPattern *
-FcPatternDuplicate (FcPattern *p);
+FcPatternDuplicate (const FcPattern *p);
 
 void
 FcPatternReference (FcPattern *p);
@@ -631,11 +685,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,25 +715,25 @@ 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);
@@ -692,7 +749,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 +763,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,