aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/ports/SkFontMgr_android.h
diff options
context:
space:
mode:
authorGravatar bungeman <bungeman@google.com>2015-02-06 07:59:19 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-02-06 07:59:19 -0800
commit7fa87cd09f49f1ee9bc27e263038d0f0ae706241 (patch)
tree430afe3af23867684e9b75b487a3e06281ce5a8e /include/ports/SkFontMgr_android.h
parent50785a3d10b53bea5beb6e18431a2449860be237 (diff)
Add factory for Android font manager.
This allows users to create an Android font manager with their own set of fonts, or augment the system set. This will allow for removal of the current globals which are used for a similar, but more constained, purpose. BUG=skia:2817,skia:3314,chromium:407340 Review URL: https://codereview.chromium.org/887113002
Diffstat (limited to 'include/ports/SkFontMgr_android.h')
-rw-r--r--include/ports/SkFontMgr_android.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/ports/SkFontMgr_android.h b/include/ports/SkFontMgr_android.h
new file mode 100644
index 0000000000..8d1cafd2cc
--- /dev/null
+++ b/include/ports/SkFontMgr_android.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SkFontMgr_android_DEFINED
+#define SkFontMgr_android_DEFINED
+
+#include "SkTypes.h"
+
+class SkFontMgr;
+
+struct SkFontMgr_Android_CustomFonts {
+ /** When specifying custom fonts, indicates how to use system fonts. */
+ enum SystemFontUse {
+ kOnlyCustom, /** Use only custom fonts. NDK compliant. */
+ kPreferCustom, /** Use custom fonts before system fonts. */
+ kPreferSystem /** Use system fonts before custom fonts. */
+ };
+ /** Whether or not to use system fonts. */
+ SystemFontUse fSystemFontUse;
+
+ /** Base path to resolve relative font file names. If a directory, should end with '/'. */
+ const char* fBasePath;
+
+ /** Optional custom configuration file to use. */
+ const char* fFontsXml;
+
+ /** Optional custom configuration file for fonts which provide fallback.
+ * In the new style (version > 21) fontsXml format is used, this should be NULL.
+ */
+ const char* fFallbackFontsXml;
+};
+
+/** Create a font manager for Android. If 'custom' is NULL, use only system fonts. */
+SK_API SkFontMgr* SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom);
+
+#endif // SkFontMgr_android_DEFINED