/**
 * Loads data on font families from various expected configuration files. The
 * resulting data is returned in the given fontFamilies array.
 */
void SkFontConfigParser::GetFontFamilies(SkTDArray<FontFamily*> &fontFamilies) {

    //Determine if we want to use themes
    bool use_theme_font = false;
    if (access(THEME_FONTS_FILE, R_OK) == 0) {
        use_theme_font = true;
    }

    if (use_theme_font) {
        getThemeFontFamilies(fontFamilies);
        if (fontFamilies.count() > 0) {
            SkTDArray<FontFamily*> systemFontFamilies;
            getSystemFontFamilies(systemFontFamilies);
            addSystemFontsToThemeFonts(fontFamilies, systemFontFamilies);
        }
    }

    if (!use_theme_font || fontFamilies.count() == 0) {
        getSystemFontFamilies(fontFamilies);
    }

    // Append all the fallback fonts to system fonts
    SkTDArray<FontFamily*> fallbackFonts;
    getFallbackFontFamilies(fallbackFonts);
    for (int i = 0; i < fallbackFonts.count(); ++i) {
        fallbackFonts[i]->fIsFallbackFont = true;
        *fontFamilies.append() = fallbackFonts[i];
    }
}
Exemplo n.º 2
0
static QString getEnglishFontFamily() {
  static const QStringList &families = getSystemFontFamilies();
  static const FontSets &font_sets = getUserConfigFontSets();
  static QString en_font_name;

  if (!en_font_name.isEmpty()) {
    return en_font_name;
  }

  FontSets::const_iterator it = font_sets.find("default");
  if (it != font_sets.end()) {
    map<Font::Language, QStringList>::const_iterator itt
        = it->second.find(Font::US_ENGLISH);
    if (itt != it->second.end()) {
      for (int i = 0; i < itt->second.size(); ++i) {
        const QString &font = itt->second[i];
        if (families.contains(font)) {
          en_font_name = font;
          break;
        }
      }
    }
  }

  return en_font_name;
}
Exemplo n.º 3
0
static QString getFontFamilyForLang(Font::Language lang) {
  static const QStringList &families = getSystemFontFamilies();
  static const FontSets &font_sets = getUserConfigFontSets();

  const QString en_font_name = getEnglishFontFamily();

  if (lang == Font::US_ENGLISH) {
    return en_font_name;
  }

  FontSets::const_iterator it = font_sets.find(en_font_name.toLower());
  if (it != font_sets.end()) {
    map<Font::Language, QStringList>::const_iterator itt
        = it->second.find(lang);
    if (itt != it->second.end()) {
      for (int i = 0; i < itt->second.size(); ++i) {
        const QString &font = itt->second[i];
        if (families.contains(font)) {
          return font;
        } else {
          FQ_TRACE("font", 5) << "Font " << font << " for "
                              << en_font_name << " not found.";
        }
      }
    }
  } else {
    FQ_TRACE("font", 3) << "NO fontset for " << en_font_name << " found.";
  }

  return en_font_name;
}
/**
 * Loads data on font families from various expected configuration files. The
 * resulting data is returned in the given fontFamilies array.
 */
void getFontFamilies(SkTDArray<FontFamily*> &fontFamilies) {
    SkTDArray<FontFamily*> fallbackFonts;

    getSystemFontFamilies(fontFamilies);
    getFallbackFontFamilies(fallbackFonts);

    // Append all fallback fonts to system fonts
    for (int i = 0; i < fallbackFonts.count(); ++i) {
        *fontFamilies.append() = fallbackFonts[i];
    }
}
/**
 * Loads data on font families from various expected configuration files. The
 * resulting data is returned in the given fontFamilies array.
 */
void SkFontConfigParser::GetFontFamilies(SkTDArray<FontFamily*> &fontFamilies) {

    getSystemFontFamilies(fontFamilies);

    // Append all the fallback fonts to system fonts
    SkTDArray<FontFamily*> fallbackFonts;
    getFallbackFontFamilies(fallbackFonts);
    for (int i = 0; i < fallbackFonts.count(); ++i) {
        fallbackFonts[i]->fIsFallbackFont = true;
        *fontFamilies.append() = fallbackFonts[i];
    }
}