// Copyright 2016 The Chromium Authors. All rights reserved.
// 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_
