• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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     SkString              fFileName;
19     SkPaintOptionsAndroid fPaintOptions;
20 };
21 
22 /**
23  * The FontFamily data structure is created during parsing and handed back to
24  * Skia to fold into its representation of font families. fNames is the list of
25  * font names that alias to a font family. fontFileArray is the list of information
26  * about each file.  Order is the priority order for the font. This is
27  * used internally to determine the order in which to place fallback fonts as
28  * they are read from the configuration files.
29  */
30 struct FontFamily {
FontFamilyFontFamily31     FontFamily() : fIsFallbackFont(false), order(-1) {}
32 
33     SkTArray<SkString> fNames;
34     SkTArray<FontFileInfo> fFontFiles;
35     bool fIsFallbackFont;
36     int order; // only used internally by SkFontConfigParser
37 };
38 
39 namespace SkFontConfigParser {
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  * Parses all test font configuration files and returns the results in an
49  * array of FontFamily structures.
50  */
51 void GetTestFontFamilies(SkTDArray<FontFamily*> &fontFamilies,
52                          const char* testMainConfigFile,
53                          const char* testFallbackConfigFile);
54 
55 SkString GetLocale();
56 
57 } // SkFontConfigParser namespace
58 
59 #endif /* SKFONTCONFIGPARSER_ANDROID_H_ */
60