From: dperry Date: Tue, 8 Mar 2011 15:31:57 +0000 (+0000) Subject: Modified to permit retrieval of an array of avialable fonts. X-Git-Tag: LAST_LIBGRAPH~32^2~946 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4960ca89447a2dac565d03a8960e0c43f6cb0c76;p=graphviz Modified to permit retrieval of an array of avialable fonts. --- diff --git a/plugin/pango/gvgetfontlist_pango.c b/plugin/pango/gvgetfontlist_pango.c index 395a70af6..16470077e 100644 --- a/plugin/pango/gvgetfontlist_pango.c +++ b/plugin/pango/gvgetfontlist_pango.c @@ -535,3 +535,38 @@ gv_font_map* get_font_mapping(PangoFontMap * fontmap) printFontMap (gv_fmap, ps_fontnames_sz); return gv_fmap; } + +/* Returns a list of the fonts that are available for use + +*/ + +void get_font_list(char **fonts[], int *cnt){ + +PangoFontMap *fontmap; +availfont_t *gv_af_p; +int j, i; +char **fontlist; +fontlist = N_NEW(GV_FONT_LIST_SIZE,char *); +fontmap = pango_cairo_font_map_new(); +gv_af_p = gv_get_ps_fontlist(fontmap); // get the available installed fonts +g_object_unref(fontmap); +/* load array with available font names */ +i=0; +for (j = 0; j < GV_FONT_LIST_SIZE; j++) { + *(fontlist + j) = 0; + if ((gv_af_p[j].faces == 0) || (gv_af_p[j].fontname == NULL)) { + continue; + } + *(fontlist + i++) = strdup(gv_af_p[j].fontname); +} +/* Free unused array elements */ +for(j=i;j