1 /* 2 * Copyright 2011 The Android Open Source Project 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef FONTHOSTCONFIGURATION_ANDROID_H_ 9 #define FONTHOSTCONFIGURATION_ANDROID_H_ 10 11 #include "SkTypes.h" 12 13 #include "SkLanguage.h" 14 #include "SkPaint.h" 15 #include "SkTDArray.h" 16 17 struct FontFileInfo { 18 FontFileInfo() : fFileName(NULL), fVariant(SkPaint::kDefault_Variant), 19 fLanguage() { 20 } 21 22 const char* fFileName; 23 SkPaint::FontVariant fVariant; 24 SkLanguage fLanguage; 25 }; 26 27 /** 28 * The FontFamily data structure is created during parsing and handed back to 29 * Skia to fold into its representation of font families. fNames is the list of 30 * font names that alias to a font family. fontFileArray is the list of information 31 * about each file. Order is the priority order for the font. This is 32 * used internally to determine the order in which to place fallback fonts as 33 * they are read from the configuration files. 34 */ 35 struct FontFamily { 36 SkTDArray<const char*> fNames; 37 SkTDArray<FontFileInfo*> fFontFileArray; 38 int order; 39 }; 40 41 /** 42 * Parses all system font configuration files and returns the results in an 43 * array of FontFamily structures. 44 */ 45 void getFontFamilies(SkTDArray<FontFamily*> &fontFamilies); 46 47 /** 48 * Parse only the core system font configuration file and return the results in 49 * an array of FontFamily structures. 50 */ 51 void getSystemFontFamilies(SkTDArray<FontFamily*> &fontFamilies); 52 53 /** 54 * Parse the fallback and vendor system font configuration files and return the 55 * results in an array of FontFamily structures. 56 */ 57 void getFallbackFontFamilies(SkTDArray<FontFamily*> &fallbackFonts); 58 59 #endif /* FONTHOSTCONFIGURATION_ANDROID_H_ */ 60