]> git.sur5r.net Git - glabels/blobdiff - glabels2/src/font-util.c
2009-09-22 Jim Evins <evins@snaught.com>
[glabels] / glabels2 / src / font-util.c
index 15555f5ad10dedcf5841cd802c07285b0603906a..e4cd2e08c5be39d6f5c82a89113c0f34a0e2bd7e 100644 (file)
 
 #include "font-util.h"
 
+#include <glib.h>
 #include <pango/pango.h>
 #include <pango/pangocairo.h>
-#include <glib/gstrfuncs.h>
-#include <libglabels/str.h>
+
+#include <libglabels/libglabels.h>
 
 
 /****************************************************************************/
@@ -148,6 +149,42 @@ gl_font_util_get_fixed_width_families (void)
 }
 
 
+/****************************************************************************/
+/* Make sure we have a valid font.  If not provide a good default.          */
+/****************************************************************************/
+gchar *
+gl_font_util_validate_family (const gchar *family)
+{
+        const GList *installed_families;
+        gchar       *good_family;
+
+        installed_families = gl_font_util_get_all_families ();
+
+        if (g_list_find_custom ((GList *)installed_families,
+                                family,
+                                (GCompareFunc)g_utf8_collate))
+        {
+                good_family = g_strdup (family);
+        }
+        else if (g_list_find_custom ((GList *)installed_families,
+                                     "Sans",
+                                     (GCompareFunc)g_utf8_collate))
+        {
+                good_family = g_strdup ("Sans");
+        }
+        else if (installed_families != NULL)
+        {
+                good_family = g_strdup (installed_families->data); /* 1st entry */
+        }
+        else
+        {
+                good_family = NULL;
+        }
+
+        return good_family;
+}
+
+
 
 /*
  * Local Variables:       -- emacs