Home | History | Annotate | Download | only in ports
      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