Bug 514617 – Add pango_cairo_font_map_set_default()
authorBehdad Esfahbod <behdad@gnome.org>
Mon, 21 Apr 2008 19:41:40 +0000 (19:41 +0000)
committerBehdad Esfahbod <behdad@src.gnome.org>
Mon, 21 Apr 2008 19:41:40 +0000 (19:41 +0000)
2008-04-21  Behdad Esfahbod  <behdad@gnome.org>

        Bug 514617 – Add pango_cairo_font_map_set_default()

        * docs/pango-sections.txt:
        * docs/tmpl/pangocairo.sgml:
        * pango/pangocairo-fontmap.c (pango_cairo_font_map_get_default),
        (pango_cairo_font_map_set_default):
        * pango/pangocairo.def:
        * pango/pangocairo.h:
        New public API:

                pango_cairo_font_map_set_default()

svn path=/trunk/; revision=2600

ChangeLog
docs/pango-sections.txt
docs/tmpl/pangocairo.sgml
pango/pangocairo-fontmap.c
pango/pangocairo.def
pango/pangocairo.h

index fbe4a1a..78adaa8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2008-04-21  Behdad Esfahbod  <behdad@gnome.org>
 
+       Bug 514617 – Add pango_cairo_font_map_set_default()
+
+       * docs/pango-sections.txt:
+       * docs/tmpl/pangocairo.sgml:
+       * pango/pangocairo-fontmap.c (pango_cairo_font_map_get_default),
+       (pango_cairo_font_map_set_default):
+       * pango/pangocairo.def:
+       * pango/pangocairo.h:
+       New public API:
+
+               pango_cairo_font_map_set_default()
+
+2008-04-21  Behdad Esfahbod  <behdad@gnome.org>
+
        * docs/pango-docs.sgml: Add index of new API in 1.22.
 
 2008-04-21  Behdad Esfahbod  <behdad@gnome.org>
index 149e90b..7f8e1ab 100644 (file)
@@ -836,6 +836,7 @@ pango_xft_renderer_get_type
 PangoCairoFont
 PangoCairoFontMap
 pango_cairo_font_map_get_default
+pango_cairo_font_map_set_default
 pango_cairo_font_map_new
 pango_cairo_font_map_new_for_font_type
 pango_cairo_font_map_get_font_type
index 5192b97..8cfb836 100644 (file)
@@ -165,6 +165,14 @@ int main (int argc, char **argv)
 @Returns: 
 
 
+<!-- ##### FUNCTION pango_cairo_font_map_set_default ##### -->
+<para>
+
+</para>
+
+@fontmap: 
+
+
 <!-- ##### FUNCTION pango_cairo_font_map_new ##### -->
 <para>
 
index cb7dd9d..2dbb588 100644 (file)
@@ -146,6 +146,8 @@ pango_cairo_font_map_new_for_font_type (cairo_font_type_t fonttype)
   }
 }
 
+static PangoFontMap *default_font_map = NULL;
+
 /**
  * pango_cairo_font_map_get_default:
  *
@@ -156,7 +158,12 @@ pango_cairo_font_map_new_for_font_type (cairo_font_type_t fonttype)
  * You generally should only use the #PangoFontMap and
  * #PangoCairoFontMap interfaces on the returned object.
  *
- * Return value: the default Cairo fontmap for #Pango. This
+ * The default Cairo fontmap can be changed by using
+ * pango_cairo_font_map_set_default().  This can be used to
+ * change the Cairo font backend that the default fontmap
+ * uses for example.
+ *
+ * Return value: the default Cairo fontmap for Pango. This
  *  object is owned by Pango and must not be freed.
  *
  * Since: 1.10
@@ -164,8 +171,6 @@ pango_cairo_font_map_new_for_font_type (cairo_font_type_t fonttype)
 PangoFontMap *
 pango_cairo_font_map_get_default (void)
 {
-  static PangoFontMap *default_font_map = NULL;
-
   if (G_UNLIKELY (!default_font_map))
     default_font_map = pango_cairo_font_map_new ();
 
@@ -173,6 +178,35 @@ pango_cairo_font_map_get_default (void)
 }
 
 /**
+ * pango_cairo_font_map_set_default:
+ * @fontmap: The new default font map, or %NULL
+ *
+ * Sets a default #PangoCairoFontMap to use with Cairo.
+ *
+ * This can be used to change the Cairo font backend that the
+ * default fontmap uses for example.  The old default font map
+ * is unreffed and the new font map referenced.
+ *
+ * A value of %NULL for @fontmap will cause a new default font
+ * map to be created on demand, using pango_cairo_font_map_new().
+ *
+ * Since: 1.22
+ **/
+void
+pango_cairo_font_map_set_default (PangoCairoFontMap *fontmap)
+{
+  g_return_if_fail (PANGO_IS_CAIRO_FONT_MAP (fontmap));
+
+  if ((PangoFontMap *) fontmap == default_font_map)
+    return;
+
+  if (default_font_map)
+    g_object_unref (default_font_map);
+
+  default_font_map = g_object_ref (fontmap);
+}
+
+/**
  * pango_cairo_font_map_set_resolution:
  * @fontmap: a #PangoCairoFontMap
  * @dpi: the resolution in "dots per inch". (Physical inches aren't actually
index b16c0f2..5b24389 100644 (file)
@@ -13,6 +13,7 @@ EXPORTS
        pango_cairo_font_get_scaled_font
        pango_cairo_font_map_create_context
        pango_cairo_font_map_get_default
+       pango_cairo_font_map_set_default
        pango_cairo_font_map_get_font_type
        pango_cairo_font_map_get_resolution
        pango_cairo_font_map_get_type
index 364d801..0f15d75 100644 (file)
@@ -68,6 +68,7 @@ GType         pango_cairo_font_map_get_type          (void) G_GNUC_CONST;
 PangoFontMap *pango_cairo_font_map_new               (void);
 PangoFontMap *pango_cairo_font_map_new_for_font_type (cairo_font_type_t fonttype);
 PangoFontMap *pango_cairo_font_map_get_default       (void);
+void          pango_cairo_font_map_set_default       (PangoCairoFontMap *fontmap);
 cairo_font_type_t pango_cairo_font_map_get_font_type (PangoCairoFontMap *fontmap);
 
 void          pango_cairo_font_map_set_resolution (PangoCairoFontMap *fontmap,