blob: f58814d1e65f4665c9b561b951eecc3315eea57e [file] [log] [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_GFX_FONT_FALLBACK_LINUX_H_
#define UI_GFX_FONT_FALLBACK_LINUX_H_
#include <string>
#include "base/files/file_path.h"
#include "third_party/icu/source/common/unicode/uchar.h"
#include "ui/gfx/gfx_export.h"
namespace gfx {
// Exposed fallback font caches methods for testing.
GFX_EXPORT size_t GetFallbackFontEntriesCacheSizeForTesting();
GFX_EXPORT size_t GetFallbackFontListCacheSizeForTesting();
GFX_EXPORT void ClearAllFontFallbackCachesForTesting();
struct GFX_EXPORT FallbackFontData {
std::string name;
base::FilePath filepath;
int fontconfig_interface_id = 0;
int ttc_index = 0;
bool is_bold = false;
bool is_italic = false;
FallbackFontData();
FallbackFontData(const FallbackFontData& other);
FallbackFontData& operator=(const FallbackFontData& other);
};
// Return a font family which provides a glyph for the Unicode code point
// specified by character.
// c: an UTF-32 code point
// preferred_locale: preferred locale identifier for |c|
// (e.g. "en", "ja", "zh-CN")
//
// Return whether the request was successful or not.
GFX_EXPORT bool GetFallbackFontForChar(UChar32 c,
const std::string& preferred_locale,
FallbackFontData* fallback_font);
} // namespace gfx
#endif // UI_GFX_FONT_FALLBACK_LINUX_H_