summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2008-04-21 19:41:40 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2008-04-21 19:41:40 +0000
commite026cad714ef709b680efa8489012b823665d7e7 (patch)
tree9fdd1bf6df94485f81dab90e25560e0f22b9bace
parentb9bd159e4b71404bfa15d415ddf8b68eb4248af3 (diff)
downloadpango-e026cad714ef709b680efa8489012b823665d7e7.tar.gz
Bug 514617 – Add pango_cairo_font_map_set_default()
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
-rw-r--r--ChangeLog14
-rw-r--r--docs/pango-sections.txt1
-rw-r--r--docs/tmpl/pangocairo.sgml8
-rw-r--r--pango/pangocairo-fontmap.c40
-rw-r--r--pango/pangocairo.def1
-rw-r--r--pango/pangocairo.h1
6 files changed, 62 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index fbe4a1a7..78adaa89 100644
--- 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>
diff --git a/docs/pango-sections.txt b/docs/pango-sections.txt
index 149e90b1..7f8e1ab6 100644
--- a/docs/pango-sections.txt
+++ b/docs/pango-sections.txt
@@ -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
diff --git a/docs/tmpl/pangocairo.sgml b/docs/tmpl/pangocairo.sgml
index 5192b975..8cfb836b 100644
--- a/docs/tmpl/pangocairo.sgml
+++ b/docs/tmpl/pangocairo.sgml
@@ -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>
diff --git a/pango/pangocairo-fontmap.c b/pango/pangocairo-fontmap.c
index cb7dd9d8..2dbb588d 100644
--- a/pango/pangocairo-fontmap.c
+++ b/pango/pangocairo-fontmap.c
@@ -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
diff --git a/pango/pangocairo.def b/pango/pangocairo.def
index b16c0f2a..5b243892 100644
--- a/pango/pangocairo.def
+++ b/pango/pangocairo.def
@@ -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
diff --git a/pango/pangocairo.h b/pango/pangocairo.h
index 364d8019..0f15d757 100644
--- a/pango/pangocairo.h
+++ b/pango/pangocairo.h
@@ -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,