Home | History | Annotate | Download | only in ports
      1 /* libs/graphics/ports/FontHostConfiguration_android.h
      2 **
      3 ** Copyright 2011, The Android Open Source Project
      4 **
      5 ** Licensed under the Apache License, Version 2.0 (the "License");
      6 ** you may not use this file except in compliance with the License.
      7 ** You may obtain a copy of the License at
      8 **
      9 **     http://www.apache.org/licenses/LICENSE-2.0
     10 **
     11 ** Unless required by applicable law or agreed to in writing, software
     12 ** distributed under the License is distributed on an "AS IS" BASIS,
     13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 ** See the License for the specific language governing permissions and
     15 ** limitations under the License.
     16 */
     17 #ifndef FONTHOSTCONFIGURATION_ANDROID_H_
     18 #define FONTHOSTCONFIGURATION_ANDROID_H_
     19 
     20 #include "SkTypes.h"
     21 
     22 #include "SkLanguage.h"
     23 #include "SkPaint.h"
     24 #include "SkTDArray.h"
     25 
     26 struct FontFileInfo {
     27     FontFileInfo() : fFileName(NULL), fVariant(SkPaint::kDefault_Variant),
     28             fLanguage() {
     29     }
     30 
     31     const char*          fFileName;
     32     SkPaint::FontVariant fVariant;
     33     SkLanguage           fLanguage;
     34 };
     35 
     36 /**
     37  * The FontFamily data structure is created during parsing and handed back to
     38  * Skia to fold into its representation of font families. fNames is the list of
     39  * font names that alias to a font family. fontFileArray is the list of information
     40  * about each file.  Order is the priority order for the font. This is
     41  * used internally to determine the order in which to place fallback fonts as
     42  * they are read from the configuration files.
     43  */
     44 struct FontFamily {
     45     SkTDArray<const char*>   fNames;
     46     SkTDArray<FontFileInfo*> fFontFileArray;
     47     int order;
     48 };
     49 
     50 /**
     51  * Parses all system font configuration files and returns the results in an
     52  * array of FontFamily structures.
     53  */
     54 void getFontFamilies(SkTDArray<FontFamily*> &fontFamilies);
     55 
     56 /**
     57  * Parse only the core system font configuration file and return the results in
     58  * an array of FontFamily structures.
     59  */
     60 void getSystemFontFamilies(SkTDArray<FontFamily*> &fontFamilies);
     61 
     62 /**
     63  * Parse the fallback and vendor system font configuration files and return the
     64  * results in an array of FontFamily structures.
     65  */
     66 void getFallbackFontFamilies(SkTDArray<FontFamily*> &fallbackFonts);
     67 
     68 #endif /* FONTHOSTCONFIGURATION_ANDROID_H_ */
     69