From: Behdad Esfahbod Date: Mon, 21 Apr 2008 19:41:40 +0000 (+0000) Subject: Bug 514617 – Add pango_cairo_font_map_set_default() X-Git-Tag: PANGO_1_21_0~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e026cad714ef709b680efa8489012b823665d7e7;p=platform%2Fupstream%2Fpango.git Bug 514617 – Add pango_cairo_font_map_set_default() 2008-04-21 Behdad Esfahbod 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 --- diff --git a/ChangeLog b/ChangeLog index fbe4a1a..78adaa8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ 2008-04-21 Behdad Esfahbod + 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 + * docs/pango-docs.sgml: Add index of new API in 1.22. 2008-04-21 Behdad Esfahbod diff --git a/docs/pango-sections.txt b/docs/pango-sections.txt index 149e90b..7f8e1ab 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 5192b97..8cfb836 100644 --- a/docs/tmpl/pangocairo.sgml +++ b/docs/tmpl/pangocairo.sgml @@ -165,6 +165,14 @@ int main (int argc, char **argv) @Returns: + + + + + +@fontmap: + + diff --git a/pango/pangocairo-fontmap.c b/pango/pangocairo-fontmap.c index cb7dd9d..2dbb588 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 b16c0f2..5b24389 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 364d801..0f15d75 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,