From: dperry Date: Tue, 22 Feb 2011 05:28:39 +0000 (+0000) Subject: Code changes to support selection of pango PS font from equivalent installed fonts X-Git-Tag: LAST_LIBGRAPH~32^2~1009 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cd51a217fbd6d557e0da4fe962c5846515fde8f2;p=graphviz Code changes to support selection of pango PS font from equivalent installed fonts --- diff --git a/plugin/pango/Makefile.am b/plugin/pango/Makefile.am index 4cde68387..2899d53b4 100644 --- a/plugin/pango/Makefile.am +++ b/plugin/pango/Makefile.am @@ -30,6 +30,7 @@ endif libgvplugin_pango_C_la_SOURCES = \ gvplugin_pango.c \ gvrender_pango.c \ + gvgetfontlist_pango.c \ gvtextlayout_pango.c \ gvloadimage_pango.c diff --git a/plugin/pango/gvtextlayout_pango.c b/plugin/pango/gvtextlayout_pango.c index 9327aad2c..618029df1 100644 --- a/plugin/pango/gvtextlayout_pango.c +++ b/plugin/pango/gvtextlayout_pango.c @@ -21,6 +21,7 @@ #ifdef HAVE_PANGOCAIRO #include +#include "gvgetfontlist.h" #ifdef HAVE_PANGO_FC_FONT_LOCK_FACE #include #endif @@ -67,6 +68,7 @@ static boolean pango_textlayout(textpara_t * para, char **fontpath) static PangoFontDescription *desc; static char *fontname; static double fontsize; + static gv_font_map gv_fmap[MAX_GV_PS_FONTS]; char *fnt, *psfnt = NULL; PangoLayout *layout; PangoRectangle logical_rect; @@ -82,6 +84,7 @@ static boolean pango_textlayout(textpara_t * para, char **fontpath) if (!context) { fontmap = pango_cairo_font_map_new(); + get_font_mapping(fontmap,gv_fmap); context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP(fontmap)); options=cairo_font_options_create(); cairo_font_options_set_antialias(options,CAIRO_ANTIALIAS_GRAY); @@ -100,7 +103,9 @@ static boolean pango_textlayout(textpara_t * para, char **fontpath) pango_font_description_free (desc); if (para->postscript_alias) { - psfnt = fnt = pango_psfontResolve (para->postscript_alias); + psfnt = fnt = gv_fmap[para->postscript_alias->xfig_code].gv_font; + if(psfnt == NULL) + psfnt = fnt = pango_psfontResolve (para->postscript_alias); } else fnt = fontname;