]> git.wh0rd.org - fontconfig.git/blobdiff - fontconfig/fontconfig.h
Add some Utf16 support, extract font family and style names from name table
[fontconfig.git] / fontconfig / fontconfig.h
index fa1d0e81ebe775a0e62ba9c207c2ce35c4bec3d9..1939e466b31a6eec075170d940299d74d9000bf7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $XFree86: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.13 2002/05/31 04:42:42 keithp Exp $
+ * $XFree86: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.21 2002/07/11 02:47:50 keithp Exp $
  *
  * Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc.
  *
@@ -49,6 +49,7 @@ typedef int           FcBool;
 #define FC_SLANT           "slant"             /* Int */
 #define FC_WEIGHT          "weight"            /* Int */
 #define FC_SIZE                    "size"              /* Double */
+#define FC_ASPECT          "aspect"            /* Double */
 #define FC_PIXEL_SIZE      "pixelsize"         /* Double */
 #define FC_SPACING         "spacing"           /* Int */
 #define FC_FOUNDRY         "foundry"           /* String */
@@ -100,45 +101,6 @@ typedef int                FcBool;
 #define FC_RGBA_VRGB       3
 #define FC_RGBA_VBGR       4
 
-/* language groups from the OS/2 CodePageRange bits */
-#define FC_LANG_LATIN_1                        "latin1"                /* 0 */
-#define FC_LANG_LATIN_2_EASTERN_EUROPE "latin2easterneurope"   /* 1 */
-#define FC_LANG_CYRILLIC               "cyrillic"              /* 2 */
-#define FC_LANG_GREEK                  "greek"                 /* 3 */
-#define FC_LANG_TURKISH                        "turkish"               /* 4 */
-#define FC_LANG_HEBREW                 "hebrew"                /* 5 */
-#define FC_LANG_ARABIC                 "arabic"                /* 6 */
-#define FC_LANG_WINDOWS_BALTIC         "windowsbaltic"         /* 7 */
-#define FC_LANG_VIETNAMESE             "vietnamese"            /* 8 */
-/* 9-15 reserved for Alternate ANSI */
-#define FC_LANG_THAI                   "thai"                  /* 16 */
-#define FC_LANG_JAPANESE               "japanese"              /* 17 */
-#define FC_LANG_SIMPLIFIED_CHINESE     "simplifiedchinese"     /* 18 */
-#define FC_LANG_KOREAN_WANSUNG         "koreanwansung"         /* 19 */
-#define FC_LANG_TRADITIONAL_CHINESE    "traditionalchinese"    /* 20 */
-#define FC_LANG_KOREAN_JOHAB           "koreanjohab"           /* 21 */
-/* 22-28 reserved for Alternate ANSI & OEM */
-#define FC_LANG_MACINTOSH              "macintosh"             /* 29 */
-#define FC_LANG_OEM                    "oem"                   /* 30 */
-#define FC_LANG_SYMBOL                 "symbol"                /* 31 */
-/* 32-47 reserved for OEM */
-#define FC_LANG_IBM_GREEK              "ibmgreek"              /* 48 */
-#define FC_LANG_MSDOS_RUSSIAN          "msdosrussian"          /* 49 */
-#define FC_LANG_MSDOS_NORDIC           "msdosnordic"           /* 50 */
-#define FC_LANG_ARABIC_864             "arabic864"             /* 51 */
-#define FC_LANG_MSDOS_CANADIAN_FRENCH  "msdoscanadianfrench"   /* 52 */
-#define FC_LANG_HEBREW_862             "hebrew862"             /* 53 */
-#define FC_LANG_MSDOS_ICELANDIC                "msdosicelandic"        /* 54 */
-#define FC_LANG_MSDOS_PORTUGUESE       "msdosportuguese"       /* 55 */
-#define FC_LANG_IBM_TURKISH            "ibmturkish"            /* 56 */
-#define FC_LANG_IBM_CYRILLIC           "ibmcyrillic"           /* 57 */
-#define FC_LANG_LATIN_2                        "latin2"                /* 58 */
-#define FC_LANG_MSDOS_BALTIC           "msdosbaltic"           /* 59 */
-#define FC_LANG_GREEK_437_G            "greek437g"             /* 60 */
-#define FC_LANG_ARABIC_ASMO_708                "arabicasmo708"         /* 61 */
-#define FC_LANG_WE_LATIN_1             "welatin1"              /* 62 */
-#define FC_LANG_US                     "us"                    /* 63 */
-
 typedef enum _FcType {
     FcTypeVoid, 
     FcTypeInteger, 
@@ -225,6 +187,8 @@ typedef struct _FcAtomic FcAtomic;
 #define _FCFUNCPROTOEND
 #endif
 
+typedef enum { FcEndianBig, FcEndianLittle } FcEndian;
+
 typedef struct _FcConfig    FcConfig;
 
 typedef struct _FcFileCache FcFileCache;
@@ -584,6 +548,9 @@ FcPatternCreate (void);
 FcPattern *
 FcPatternDuplicate (FcPattern *p);
 
+void
+FcPatternReference (FcPattern *p);
+
 void
 FcValueDestroy (FcValue v);
 
@@ -597,11 +564,20 @@ void
 FcPatternDestroy (FcPattern *p);
 
 FcBool
-FcPatternEqual (FcPattern *pa, FcPattern *pb);
+FcPatternEqual (const FcPattern *pa, const FcPattern *pb);
+
+FcBool
+FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os);
+
+FcChar32
+FcPatternHash (const FcPattern *p);
 
 FcBool
 FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append);
     
+FcBool
+FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append);
+    
 FcResult
 FcPatternGet (FcPattern *p, const char *object, int id, FcValue *v);
     
@@ -677,6 +653,25 @@ FcUtf8Len (FcChar8 *string,
           int          *nchar,
           int          *wchar);
 
+#define FC_UTF8_MAX_LEN        6
+
+int
+FcUcs4ToUtf8 (FcChar32 ucs4,
+             FcChar8   dest[FC_UTF8_MAX_LEN]);
+
+int
+FcUtf16ToUcs4 (FcChar8 *src_orig,
+              FcEndian endian,
+              FcChar32 *dst,
+              int      len);       /* in bytes */
+
+FcBool
+FcUtf16Len (FcChar8    *string,
+           FcEndian    endian,
+           int         len,        /* in bytes */
+           int         *nchar,
+           int         *wchar);
+
 FcChar8 *
 FcStrDirname (const FcChar8 *file);