diff options
author | Owen Taylor <otaylor@redhat.com> | 2001-09-18 20:05:20 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2001-09-18 20:05:20 +0000 |
commit | a49e070d24242c0297e6325587c4bc135e13e26c (patch) | |
tree | 0510d066cc185e9d0b1b736736da5266d259878e /pango/pangoxft-font.c | |
parent | 39f3626e34e0522e0bdec591f6c0334307d39625 (diff) | |
download | pango-a49e070d24242c0297e6325587c4bc135e13e26c.tar.gz |
Up to 0.19.
Tue Sep 18 15:47:08 2001 Owen Taylor <otaylor@redhat.com>
* configure.in (PANGO_MINOR_VERSION): Up to 0.19.
* pango/pango-font.h pango/pango-fontmap.[ch] pango/fonts.c
pango/pangoxft-fontmap.c pango/pangoft-fontmap.c pango/pango-context.[ch]
pango/pangox-fontmap.c: Add new PangoFontFace and PangoFontFamily
object types, and change the font listing API to list faces and
families, instead of face names and font descriptions.
* pango/pango-font.h pango/fonts.c: Make PangoFontDescription
an opaque heap-allocated structure, add accessors and
convenience functions.
* pango/pango-font.h pango/pango-private.h: Make PangoFontMetrics
heap allocated, protect the structure definition with
#ifdef PANGO_ENABLE_BACKEND, and add getters for the fields.
* pango/pango-attributes.[ch] ( pango_attr_iterator_get_font):
instead of providing a base font description and one to fill
in, provide a single font description to modify based on
the attributes.
* pango/pango-attributes.[ch]: Fix PangoAttrFontDesc to have
a PangoFontDescription by reference, not by value.
* pango/pango-utils.[ch]: make pango_parse_style() and friends
take pointers to individual enumerations instead of to a
PangoFontDescription structure.
* pango/*.c: Fix for the PangoFontDescription and PangoFontMetrics
changes.
* pango/pango-{break,engine,indic,ot,xft}.h pango/Makefile.am
pango/opentype/Makefile.am: Protect portions with
PANGO_ENABLE_ENGINE to shrink the public API.
* modules/*/Makefile.am: -DPANGO_ENABLE_ENGINE.
* pango/{pangox.h,pangox-private.h} modules/basic/basic-x.c: Move
pango_x_font_get_unknown_glyph() into public header since it is
used from modules.
* pango/pango-{context,font,fontmap,modules.utils}.h pango/Makefile.am:
Protect portions with PANGO_ENABLE_BACKEND to shrink the public API.
* pango/*.h: Use G_BEGIN/END_DECLS
* examples/viewer-qt.[cc,h]: Fix for changes to font listing API,
PangoFontDescription.
* pango/pango-indic.h modules/indic/*: Since we install this
header fix it up to Pango conventions, namespece
ZERO_WIDTH_JOINER, ZERO_WIDTH_NON_JOINER.
* docs/pango-sections.txt: Updated.
Diffstat (limited to 'pango/pangoxft-font.c')
-rw-r--r-- | pango/pangoxft-font.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/pango/pangoxft-font.c b/pango/pangoxft-font.c index 5c7a656e..a00cc7e5 100644 --- a/pango/pangoxft-font.c +++ b/pango/pangoxft-font.c @@ -54,9 +54,8 @@ static void pango_xft_font_get_glyph_extents (PangoFont PangoGlyph glyph, PangoRectangle *ink_rect, PangoRectangle *logical_rect); -static void pango_xft_font_get_metrics (PangoFont *font, - PangoLanguage *language, - PangoFontMetrics *metrics); +static PangoFontMetrics * pango_xft_font_get_metrics (PangoFont *font, + PangoLanguage *language); GType @@ -143,7 +142,7 @@ get_mini_font (PangoFont *font) if (!xfont->mini_font) { Display *display; - PangoFontDescription desc; + PangoFontDescription *desc = pango_font_description_new (); int i; int width = 0, height = 0; XGlyphInfo extents; @@ -151,15 +150,14 @@ get_mini_font (PangoFont *font) FT_Face face; _pango_xft_font_map_get_info (xfont->fontmap, &display, NULL); + + pango_font_description_set_family_static (desc, "monospace"); + pango_font_description_set_size (desc, + 0.5 * pango_font_description_get_size (xfont->description)); - desc.family_name = "monospace"; - desc.style = PANGO_STYLE_NORMAL; - desc.variant = PANGO_VARIANT_NORMAL; - desc.weight = PANGO_WEIGHT_NORMAL; - - desc.size = 0.5 * xfont->description->size; + xfont->mini_font = pango_font_map_load_font (xfont->fontmap, desc); + pango_font_description_free (desc); - xfont->mini_font = pango_font_map_load_font (xfont->fontmap, &desc); mini_xft = ((PangoXftFont *)xfont->mini_font)->xft_font; face = pango_xft_font_get_face (xfont->mini_font); @@ -280,17 +278,19 @@ pango_xft_render (XftDraw *draw, } } -static void +static PangoFontMetrics * pango_xft_font_get_metrics (PangoFont *font, - PangoLanguage *language, - PangoFontMetrics *metrics) + PangoLanguage *language) { PangoXftFont *xfont = (PangoXftFont *)font; + PangoFontMetrics *metrics = pango_font_metrics_new (); metrics->ascent = PANGO_SCALE * xfont->xft_font->ascent; metrics->descent = PANGO_SCALE * xfont->xft_font->descent; metrics->approximate_digit_width = PANGO_SCALE * xfont->xft_font->max_advance_width; metrics->approximate_char_width = PANGO_SCALE * xfont->xft_font->max_advance_width; + + return metrics; } static void @@ -344,6 +344,7 @@ pango_xft_font_get_coverage (PangoFont *font, PangoLanguage *language) { PangoXftFont *xfont = (PangoXftFont *)font; + const gchar *family = pango_font_description_get_family (xfont->description); FT_Face face; PangoCoverage *coverage; Display *display; @@ -351,8 +352,7 @@ pango_xft_font_get_coverage (PangoFont *font, _pango_xft_font_map_get_info (xfont->fontmap, &display, NULL); - coverage = _pango_xft_font_map_get_coverage (xfont->fontmap, - xfont->description->family_name); + coverage = _pango_xft_font_map_get_coverage (xfont->fontmap, family); if (coverage) return pango_coverage_ref (coverage); @@ -370,7 +370,7 @@ pango_xft_font_get_coverage (PangoFont *font, pango_coverage_set (coverage, i, PANGO_COVERAGE_EXACT); } - _pango_xft_font_map_set_coverage (xfont->fontmap, xfont->description->family_name, coverage); + _pango_xft_font_map_set_coverage (xfont->fontmap, family, coverage); return coverage; } |