summaryrefslogtreecommitdiffstats
path: root/src/libnrtype
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2017-10-25 11:53:33 +0000
committerTavmjong Bah <tavmjong@free.fr>2017-10-25 11:53:33 +0000
commitfd52c97cdbf621ea9e869611be4d5fb9bec90ff7 (patch)
tree1477a90b80837fffbb956258b89d4096106b8ee5 /src/libnrtype
parentGive drawing a reasonable(?) default size if dimensions are in % and there is... (diff)
downloadinkscape-fd52c97cdbf621ea9e869611be4d5fb9bec90ff7.tar.gz
inkscape-fd52c97cdbf621ea9e869611be4d5fb9bec90ff7.zip
Add limited support for CSS 'font-face' rule.
Basically, any ttf or otf file found will be loaded but no custom matching is done nor is the 'font-family' menu updated.
Diffstat (limited to 'src/libnrtype')
-rw-r--r--src/libnrtype/FontFactory.cpp32
-rw-r--r--src/libnrtype/FontFactory.h3
2 files changed, 35 insertions, 0 deletions
diff --git a/src/libnrtype/FontFactory.cpp b/src/libnrtype/FontFactory.cpp
index 95537734d..2b1087eec 100644
--- a/src/libnrtype/FontFactory.cpp
+++ b/src/libnrtype/FontFactory.cpp
@@ -949,6 +949,38 @@ void font_factory::AddFontsDir(char const *utf8dir)
#endif
}
+void font_factory::AddFontFile(char const *utf8file)
+{
+#ifdef USE_PANGO_WIN32
+ g_info("Adding additional font only supported for fontconfig backend.");
+#else
+ if (!Inkscape::IO::file_test(utf8file, G_FILE_TEST_IS_REGULAR)) {
+ g_warning("Font file '%s' does not exist and will be ignored.", utf8file);
+ return;
+ }
+
+ gchar *file;
+# ifdef WIN32
+ file = g_win32_locale_filename_from_utf8(utf8file);
+# else
+ file = g_filename_from_utf8(utf8file, -1, NULL, NULL, NULL);
+# endif
+
+ FcConfig *conf = NULL;
+# if PANGO_VERSION_CHECK(1,38,0)
+ pango_fc_font_map_get_config(PANGO_FC_FONT_MAP(fontServer));
+# endif
+ FcBool res = FcConfigAppFontAddFile(conf, (FcChar8 const *)file);
+ if (res = FcTrue) {
+ g_info("Font file '%s' added successfully.", utf8file);
+ } else {
+ g_warning("Could not add font file '%s'.", utf8file);
+ }
+
+ g_free(file);
+#endif
+}
+
/*
Local Variables:
mode:c++
diff --git a/src/libnrtype/FontFactory.h b/src/libnrtype/FontFactory.h
index c273be2f4..12260f99a 100644
--- a/src/libnrtype/FontFactory.h
+++ b/src/libnrtype/FontFactory.h
@@ -139,6 +139,9 @@ public:
/// Add a directory from which to include additional fonts
void AddFontsDir(char const *utf8dir);
+ /// Add a an additional font.
+ void AddFontFile(char const *utf8file);
+
private:
void* loadedPtr;