summaryrefslogtreecommitdiff
path: root/pango/pangoxft-font.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2001-09-18 20:05:20 +0000
committerOwen Taylor <otaylor@src.gnome.org>2001-09-18 20:05:20 +0000
commita49e070d24242c0297e6325587c4bc135e13e26c (patch)
tree0510d066cc185e9d0b1b736736da5266d259878e /pango/pangoxft-font.c
parent39f3626e34e0522e0bdec591f6c0334307d39625 (diff)
downloadpango-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.c34
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;
}