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 SKFONTCONFIGPARSER_ANDROID_H_ 9 #define SKFONTCONFIGPARSER_ANDROID_H_ 10 11 #include "SkTypes.h" 12 13 #include "SkPaintOptionsAndroid.h" 14 #include "SkString.h" 15 #include "SkTDArray.h" 16 17 struct FontFileInfo { 18 FontFileInfo() : fFileName(NULL) {} 19 20 const char* fFileName; 21 SkPaintOptionsAndroid fPaintOptions; 22 }; 23 24 /** 25 * The FontFamily data structure is created during parsing and handed back to 26 * Skia to fold into its representation of font families. fNames is the list of 27 * font names that alias to a font family. fontFileArray is the list of information 28 * about each file. Order is the priority order for the font. This is 29 * used internally to determine the order in which to place fallback fonts as 30 * they are read from the configuration files. 31 */ 32 struct FontFamily { 33 FontFamily() : fIsFallbackFont(false), order(-1) {} 34 35 SkTDArray<const char*> fNames; 36 SkTDArray<FontFileInfo*> fFontFiles; 37 bool fIsFallbackFont; 38 int order; // only used internally by SkFontConfigParser 39 }; 40 41 namespace SkFontConfigParser { 42 43 /** 44 * Parses all system font configuration files and returns the results in an 45 * array of FontFamily structures. 46 */ 47 void GetFontFamilies(SkTDArray<FontFamily*> &fontFamilies); 48 49 /** 50 * Parses all test font configuration files and returns the results in an 51 * array of FontFamily structures. 52 */ 53 void GetTestFontFamilies(SkTDArray<FontFamily*> &fontFamilies, 54 const char* testMainConfigFile, 55 const char* testFallbackConfigFile); 56 57 SkString GetLocale(); 58 59 } // SkFontConfigParser namespace 60 61 #endif /* SKFONTCONFIGPARSER_ANDROID_H_ */ 62