1 #ifndef FONTCONFIG_PROTOS_H 2 #define FONTCONFIG_PROTOS_H 3 4 /* 5 * fontconfig.library include 6 * 7 * Copyright (C) 2012 The MorphOS Development Team, All Rights Reserved. 8 */ 9 10 #ifndef FONTCONFIG_FONTCONFIG_H 11 #include <fontconfig/fontconfig.h> 12 #endif 13 14 #include <ft2build.h> 15 // ft2build.h should include these but Linux is sooooooo silly and it wont 16 #include <freetype/freetype.h> 17 #include <freetype/fttypes.h> 18 19 #if 0 20 /* These are already defined in fontconfig.h */ 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif /* __cplusplus */ 25 26 #define FC_CHARSET_MAP_SIZE (256/32) 27 #define FC_CHARSET_DONE ((FcChar32) -1) 28 #define FC_UTF8_MAX_LEN 6 29 30 FcBlanks *FcBlanksCreate (void); 31 void FcBlanksDestroy (FcBlanks *b); 32 FcBool FcBlanksAdd (FcBlanks *b, FcChar32 ucs4); 33 FcBool FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4); 34 35 const FcChar8 *FcCacheDir(const FcCache *c); 36 FcFontSet *FcCacheCopySet(const FcCache *c); 37 const FcChar8 *FcCacheSubdir (const FcCache *c, int i); 38 int FcCacheNumSubdir (const FcCache *c); 39 int FcCacheNumFont (const FcCache *c); 40 FcBool FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config); 41 FcBool FcDirCacheValid (const FcChar8 *cache_file); 42 43 FcChar8 *FcConfigHome (void); 44 FcBool FcConfigEnableHome (FcBool enable); 45 FcChar8 *FcConfigFilename (const FcChar8 *url); 46 FcConfig *FcConfigCreate (void); 47 FcConfig *FcConfigReference (FcConfig *config); 48 void FcConfigDestroy (FcConfig *config); 49 FcBool FcConfigSetCurrent (FcConfig *config); 50 FcConfig *FcConfigGetCurrent (void); 51 FcBool FcConfigUptoDate (FcConfig *config); 52 FcBool FcConfigBuildFonts (FcConfig *config); 53 FcStrList *FcConfigGetFontDirs (FcConfig *config); 54 FcStrList *FcConfigGetConfigDirs (FcConfig *config); 55 FcStrList *FcConfigGetConfigFiles (FcConfig *config); 56 FcChar8 *FcConfigGetCache (FcConfig *config); 57 FcBlanks *FcConfigGetBlanks (FcConfig *config); 58 FcStrList *FcConfigGetCacheDirs (FcConfig *config); 59 int FcConfigGetRescanInterval (FcConfig *config); 60 FcBool FcConfigSetRescanInterval (FcConfig *config, int rescanInterval); 61 FcFontSet *FcConfigGetFonts (FcConfig *config, FcSetName set); 62 FcBool FcConfigAppFontAddFile (FcConfig *config, const FcChar8 *file); 63 FcBool FcConfigAppFontAddDir (FcConfig *config,const FcChar8 *dir); 64 void FcConfigAppFontClear (FcConfig *config); 65 FcBool FcConfigSubstituteWithPat (FcConfig *config, FcPattern *p, FcPattern *p_pat, FcMatchKind kind); 66 FcBool FcConfigSubstitute (FcConfig *config, FcPattern *p, FcMatchKind kind); 67 const FcChar8 *FcConfigGetSysRoot (const FcConfig *config); 68 void FcConfigSetSysRoot (FcConfig *config, const FcChar8 *sysroot); 69 70 FcCharSet*FcCharSetCreate (void); 71 void FcCharSetDestroy (FcCharSet *fcs); 72 FcBool FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4); 73 FcBool FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4); 74 FcCharSet*FcCharSetCopy (FcCharSet *src); 75 FcBool FcCharSetEqual (const FcCharSet *a, const FcCharSet *b); 76 FcCharSet*FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b); 77 FcCharSet*FcCharSetUnion (const FcCharSet *a, const FcCharSet *b); 78 FcCharSet*FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b); 79 FcBool FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed); 80 FcBool FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4); 81 FcChar32 FcCharSetCount (const FcCharSet *a); 82 FcChar32 FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b); 83 FcChar32 FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b); 84 FcBool FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b); 85 FcChar32 FcCharSetFirstPage(const FcCharSet *a, FcChar32 map[FC_CHARSET_MAP_SIZE], FcChar32 *next); 86 FcChar32 FcCharSetNextPage(const FcCharSet *a, FcChar32 map[FC_CHARSET_MAP_SIZE], FcChar32 *next); 87 88 void FcValuePrint (const FcValue v); 89 void FcPatternPrint (const FcPattern *p); 90 void FcFontSetPrint (const FcFontSet *s); 91 92 void FcDefaultSubstitute (FcPattern *pattern); 93 94 FcBool FcFileIsDir (const FcChar8 *file); 95 FcBool FcFileScan (FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const FcChar8 *file, FcBool force); 96 FcBool FcDirScan (FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const FcChar8 *dir, FcBool force); 97 FcBool FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir); 98 FcCache *FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file); 99 FcCache *FcDirCacheRescan (const FcChar8 *dir, FcConfig *config); 100 FcCache *FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config); 101 FcCache *FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat); 102 void FcDirCacheUnload (FcCache *cache); 103 104 FcPattern * FcFreeTypeQuery (const FcChar8 *file, int id, FcBlanks *blanks, int *count); 105 106 FcFontSet *FcFontSetCreate (void); 107 108 void FcFontSetDestroy (FcFontSet *s); 109 FcBool FcFontSetAdd (FcFontSet *s, FcPattern *font); 110 111 FcConfig *FcInitLoadConfig (void); 112 FcConfig *FcInitLoadConfigAndFonts (void); 113 FcBool FcInit (void); 114 void FcFini (void); 115 int FcGetVersion (void); 116 FcBool FcInitReinitialize (void); 117 FcBool FcInitBringUptoDate (void); 118 119 FcStrSet *FcGetLangs (void); 120 const FcCharSet *FcLangGetCharSet (const FcChar8 *lang); 121 FcLangSet *FcLangSetCreate (void); 122 void FcLangSetDestroy (FcLangSet *ls); 123 FcLangSet* FcLangSetCopy (const FcLangSet *ls); 124 FcBool FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang); 125 FcBool FcLangSetDel (FcLangSet *ls, const FcChar8 *lang); 126 FcLangResult FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang); 127 FcLangResult FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb); 128 FcBool FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb); 129 FcBool FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb); 130 FcChar32 FcLangSetHash (const FcLangSet *ls); 131 FcStrSet *FcLangSetGetLangs (const FcLangSet *ls); 132 FcLangSet * FcLangSetUnion (const FcLangSet *a, const FcLangSet *b); 133 FcLangSet * FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b); 134 135 FcObjectSet *FcObjectSetCreate (void); 136 FcBool FcObjectSetAdd (FcObjectSet *os, const char *object); 137 void FcObjectSetDestroy (FcObjectSet *os); 138 FcObjectSet *FcObjectSetVaBuild (const char *first, va_list va); 139 FcObjectSet *FcObjectSetBuild (const char *first, ...); /* FC_ATTRIBUTE_SENTINEL(0); */ 140 FcFontSet *FcFontSetList (FcConfig *config, FcFontSet **sets, int nsets, FcPattern *p, FcObjectSet *os); 141 FcFontSet *FcFontList (FcConfig *config, FcPattern *p, FcObjectSet *os); 142 143 FcAtomic *FcAtomicCreate (const FcChar8 *file); 144 FcBool FcAtomicLock (FcAtomic *atomic); 145 FcChar8 *FcAtomicNewFile (FcAtomic *atomic); 146 FcChar8 *FcAtomicOrigFile (FcAtomic *atomic); 147 FcBool FcAtomicReplaceOrig (FcAtomic *atomic); 148 void FcAtomicDeleteNew (FcAtomic *atomic); 149 void FcAtomicUnlock (FcAtomic *atomic); 150 void FcAtomicDestroy (FcAtomic *atomic); 151 152 FcPattern *FcFontSetMatch (FcConfig *config, FcFontSet **sets, int nsets, FcPattern *p, FcResult *result); 153 FcPattern *FcFontMatch (FcConfig *config, FcPattern *p, FcResult *result); 154 FcPattern *FcFontRenderPrepare (FcConfig *config, FcPattern *pat, FcPattern *font); 155 FcFontSet *FcFontSetSort (FcConfig *config, FcFontSet **sets, int nsets, FcPattern *p, FcBool trim, FcCharSet **csp, FcResult *result); 156 FcFontSet *FcFontSort (FcConfig *config, FcPattern *p, FcBool trim, FcCharSet **csp, FcResult *result); 157 void FcFontSetSortDestroy (FcFontSet *fs); 158 159 FcMatrix *FcMatrixCopy (const FcMatrix *mat); 160 FcBool FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2); 161 void FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b); 162 void FcMatrixRotate (FcMatrix *m, double c, double s); 163 void FcMatrixScale (FcMatrix *m, double sx, double sy); 164 void FcMatrixShear (FcMatrix *m, double sh, double sv); 165 166 FcBool FcNameRegisterObjectTypes (const FcObjectType *types, int ntype); 167 FcBool FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype); 168 const FcObjectType *FcNameGetObjectType (const char *object); 169 FcBool FcNameRegisterConstants (const FcConstant *consts, int nconsts); 170 FcBool FcNameUnregisterConstants (const FcConstant *consts, int nconsts); 171 const FcConstant *FcNameGetConstant (FcChar8 *string); 172 FcBool FcNameConstant (FcChar8 *string, int *result); 173 FcPattern *FcNameParse (const FcChar8 *name); 174 FcChar8 * FcNameUnparse (FcPattern *pat); 175 176 FcPattern *FcPatternCreate (void); 177 FcPattern *FcPatternDuplicate (const FcPattern *p); 178 void FcPatternReference (FcPattern *p); 179 FcPattern *FcPatternFilter (FcPattern *p, const FcObjectSet *os); 180 void FcValueDestroy (FcValue v); 181 FcBool FcValueEqual (FcValue va, FcValue vb); 182 FcValue FcValueSave (FcValue v); 183 void FcPatternDestroy (FcPattern *p); 184 FcBool FcPatternEqual (const FcPattern *pa, const FcPattern *pb); 185 FcBool FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os); 186 FcChar32 FcPatternHash (const FcPattern *p); 187 FcBool FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append); 188 FcBool FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append); 189 FcResult FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v); 190 FcBool FcPatternDel (FcPattern *p, const char *object); 191 FcBool FcPatternRemove (FcPattern *p, const char *object, int id); 192 FcBool FcPatternAddInteger (FcPattern *p, const char *object, int i); 193 FcBool FcPatternAddDouble (FcPattern *p, const char *object, double d); 194 FcBool FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s); 195 FcBool FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s); 196 FcBool FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c); 197 FcBool FcPatternAddBool (FcPattern *p, const char *object, FcBool b); 198 FcBool FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls); 199 FcResult FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i); 200 FcResult FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d); 201 FcResult FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s); 202 FcResult FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s); 203 FcResult FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c); 204 FcResult FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b); 205 FcResult FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls); 206 FcPattern *FcPatternVaBuild (FcPattern *p, va_list va); 207 FcPattern *FcPatternBuild (FcPattern *p, ...); /* FC_ATTRIBUTE_SENTINEL(0); */ 208 FcChar8 *FcPatternFormat (FcPattern *pat, const FcChar8 *format); 209 210 FcChar8 *FcStrCopy (const FcChar8 *s); 211 FcChar8 *FcStrCopyFilename (const FcChar8 *s); 212 FcChar8 *FcStrPlus (const FcChar8 *s1, const FcChar8 *s2); 213 void FcStrFree (FcChar8 *s); 214 FcChar8 *FcStrDowncase (const FcChar8 *s); 215 int FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); 216 int FcStrCmp (const FcChar8 *s1, const FcChar8 *s2); 217 const FcChar8 * FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); 218 const FcChar8 *FcStrStr (const FcChar8 *s1, const FcChar8 *s2); 219 int FcUtf8ToUcs4 (const FcChar8 *src_orig, FcChar32 *dst, int len); 220 FcBool FcUtf8Len (const FcChar8 *string, int len, int *nchar, int *wchar); 221 int FcUcs4ToUtf8 (FcChar32 ucs4, FcChar8 dest[FC_UTF8_MAX_LEN]); 222 int FcUtf16ToUcs4 (const FcChar8 *src_orig, FcEndian endian, FcChar32 *dst, int len); /* in bytes */ 223 FcBool FcUtf16Len (const FcChar8 *string, FcEndian endian, int len, /* in bytes */ int *nchar, int *wchar); 224 FcChar8 *FcStrDirname (const FcChar8 *file); 225 FcChar8 *FcStrBasename (const FcChar8 *file); 226 FcStrSet *FcStrSetCreate (void); 227 FcBool FcStrSetMember (FcStrSet *set, const FcChar8 *s); 228 FcBool FcStrSetEqual (FcStrSet *sa, FcStrSet *sb); 229 FcBool FcStrSetAdd (FcStrSet *set, const FcChar8 *s); 230 FcBool FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s); 231 FcBool FcStrSetDel (FcStrSet *set, const FcChar8 *s); 232 void FcStrSetDestroy (FcStrSet *set); 233 FcStrList *FcStrListCreate (FcStrSet *set); 234 FcChar8 *FcStrListNext (FcStrList *list); 235 void FcStrListDone (FcStrList *list); 236 FcBool FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain); 237 238 FT_UInt FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4); 239 FcCharSet *FcFreeTypeCharSetAndSpacing (FT_Face face, FcBlanks *blanks, int *spacing); 240 FcCharSet *FcFreeTypeCharSet (FT_Face face, FcBlanks *blanks); 241 FcResult FcPatternGetFTFace (const FcPattern *p, const char *object, int n, FT_Face *f); 242 FcBool FcPatternAddFTFace (FcPattern *p, const char *object, const FT_Face f); 243 FcPattern *FcFreeTypeQueryFace (const FT_Face face, const FcChar8 *file, int id, FcBlanks *blanks); 244 245 FcBool FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4); 246 FcBool FcLangSetDel (FcLangSet *ls, const FcChar8 *lang); 247 FcLangSet *FcLangSetUnion (const FcLangSet *a, const FcLangSet *b); 248 FcLangSet *FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b); 249 250 /* V53.2 */ 251 FcBool FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose); 252 void FcCacheCreateTagFile (const FcConfig *config); 253 FcStrSet * FcGetDefaultLangs (void); 254 255 /* MorphOS extensions */ 256 void FcExtInsertProgressCallback(FcExtProgressCallback call); 257 void FcExtRemoveProgressCallback(FcExtProgressCallback call); 258 259 /* V55 */ 260 FcBool FcDirCacheCreateUUID (FcChar8 *dir, FcBool force, FcConfig *config); 261 FcBool FcDirCacheDeleteUUID (const FcChar8 *dir, FcConfig *config); 262 int FcPatternObjectCount (const FcPattern *pat); 263 FcResult FcPatternGetWithBinding (const FcPattern *p, const char *object, int id, FcValue *v, FcValueBinding *b); 264 void FcPatternIterStart (const FcPattern *pat, FcPatternIter *iter); 265 FcBool FcPatternIterNext (const FcPattern *pat, FcPatternIter *iter); 266 FcBool FcPatternIterEqual (const FcPattern *p1, FcPatternIter *i1, const FcPattern *p2, FcPatternIter *i2); 267 FcBool FcPatternFindIter (const FcPattern *pat, FcPatternIter *iter, const char *object); 268 FcBool FcPatternIterIsValid (const FcPattern *pat, FcPatternIter *iter); 269 const char *FcPatternIterGetObject (const FcPattern *pat, FcPatternIter *iter); 270 int FcPatternIterValueCount (const FcPattern *pat, FcPatternIter *iter); 271 FcResult FcPatternIterGetValue (const FcPattern *pat, FcPatternIter *iter, int id, FcValue *v, FcValueBinding *b); 272 unsigned int FcFreeTypeQueryAll(const FcChar8 *file, unsigned int id, FcBlanks *blanks, int *count, FcFontSet *set); 273 FcChar8 *FcLangNormalize (const FcChar8 *lang); 274 FcRange *FcRangeCopy (const FcRange *r); 275 FcRange *FcRangeCreateDouble (double begin, double end); 276 FcRange *FcRangeCreateInteger (FcChar32 begin, FcChar32 end); 277 void FcRangeDestroy (FcRange *range); 278 FcBool FcRangeGetDouble(const FcRange *range, double *begin, double *end); 279 FcBool FcConfigParseAndLoadFromMemory (FcConfig *config, const FcChar8 *buffer, FcBool complain); 280 void FcConfigFileInfoIterInit (FcConfig *config, FcConfigFileInfoIter *iter); 281 FcBool FcConfigFileInfoIterNext (FcConfig *config, FcConfigFileInfoIter *iter); 282 FcBool FcConfigFileInfoIterGet (FcConfig *config, FcConfigFileInfoIter *iter, FcChar8 **name, FcChar8 **description, FcBool *enabled); 283 double FcWeightFromOpenTypeDouble (double ot_weight); 284 double FcWeightToOpenTypeDouble (double fc_weight); 285 int FcWeightFromOpenType (int ot_weight); 286 int FcWeightToOpenType (int fc_weight); 287 FcChar8 *FcConfigGetFilename (FcConfig *config, const FcChar8 *url); 288 FcBool FcConfigAcceptFont (FcConfig *config, const FcPattern *font); 289 FcBool FcConfigAcceptFilter (FcConfig *config, const FcPattern *font); 290 FcConfig *FcConfigSetFontSetFilter (FcConfig *config, FcFilterFontSetFunc filter_func, FcDestroyFunc destroy_data_func, void *user_data); 291 const FcConstant *FcNameGetConstantFor (const FcChar8 *string, const char *object); 292 FcBool FcPatternAddRange (FcPattern *p, const char *object, const FcRange *r); 293 FcResult FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r); 294 FcChar8 * FcStrBuildFilename (const FcChar8 *path, ...); 295 void FcStrListFirst (FcStrList *list); 296 void FcConfigPreferAppFont (FcConfig *config, FcBool flag); 297 #ifdef __cplusplus 298 } 299 #endif /* __cplusplus */ 300 301 #endif 302 303 #endif /* FONTCONFIG_PROTOS_H */