diff options
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | docs/pango-sections.txt | 1 | ||||
-rw-r--r-- | docs/tmpl/pangocairo.sgml | 8 | ||||
-rw-r--r-- | pango/pangocairo-fontmap.c | 40 | ||||
-rw-r--r-- | pango/pangocairo.def | 1 | ||||
-rw-r--r-- | pango/pangocairo.h | 1 |
6 files changed, 62 insertions, 3 deletions
@@ -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, |