X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpango-font.cc;h=73ea7426a65ea4a6bf498d1c9881a4bd138ae7ec;hb=9f3572d98bb948c9689cd1f75401a029451fa001;hp=6c5735fec83d18df443a3a926927979e844e9911;hpb=04265f11d1f21416ccebd2dcaa1d903dc781b36e;p=lilypond.git diff --git a/lily/pango-font.cc b/lily/pango-font.cc index 6c5735fec8..73ea7426a6 100644 --- a/lily/pango-font.cc +++ b/lily/pango-font.cc @@ -99,8 +99,7 @@ get_unicode_name (char*s, FT_ULong code) Stencil -Pango_font::pango_item_string_stencil (PangoItem const *item, string str, - bool tight_bbox) const +Pango_font::pango_item_string_stencil (PangoItem const *item, string str) const { const int GLYPH_NAME_LEN = 256; char glyph_name[GLYPH_NAME_LEN]; @@ -119,28 +118,22 @@ Pango_font::pango_item_string_stencil (PangoItem const *item, string str, PangoFcFont); FT_Face ftface = pango_fc_font_lock_face (fcfont); - - PangoRectangle const *which_rect - = (tight_bbox) - ? &ink_rect - : &logical_rect; - - Box b (Interval (PANGO_LBEARING (logical_rect), - PANGO_RBEARING (logical_rect)), - Interval (-PANGO_DESCENT (*which_rect), - PANGO_ASCENT (*which_rect))); + Box b (Interval (PANGO_LBEARING (ink_rect), + PANGO_RBEARING (ink_rect)), + Interval (-PANGO_DESCENT (ink_rect), + PANGO_ASCENT (ink_rect))); b.scale (scale_); char const *ps_name_str0 = FT_Get_Postscript_Name (ftface); FcPattern *fcpat = fcfont->font_pattern; - FcChar8 *file_name_as_ptr = 0; - FcPatternGetString (fcpat, FC_FILE, 0, &file_name_as_ptr); + char *file_name_as_ptr = 0; + FcPatternGetString (fcpat, FC_FILE, 0, (FcChar8 **) & file_name_as_ptr); string file_name; if (file_name_as_ptr) { /* Normalize file name. */ - file_name = File_name ((char const *)file_name_as_ptr).to_string (); + file_name = File_name (file_name_as_ptr).to_string (); } SCM glyph_exprs = SCM_EOL; @@ -181,8 +174,7 @@ Pango_font::pango_item_string_stencil (PangoItem const *item, string str, if (glyph_name[0] == '\0' && has_glyph_names) { - programming_error ("Glyph has no name, but font supports glyph naming. Skipping glyph: " - + description_string ()); + programming_error ("Glyph has no name, but font supports glyph naming. Skipping glyph."); continue; } @@ -270,21 +262,8 @@ Pango_font::physical_font_tab () const return physical_font_tab_; } - -Stencil -Pango_font::word_stencil (string str) const -{ - return text_stencil (str, true); -} - Stencil Pango_font::text_stencil (string str) const -{ - return text_stencil (str, false); -} - -Stencil -Pango_font::text_stencil (string str, bool tight) const { GList *items = pango_itemize (context_, @@ -308,7 +287,7 @@ Pango_font::text_stencil (string str, bool tight) const { PangoItem *item = (PangoItem *) ptr->data; - Stencil item_stencil = pango_item_string_stencil (item, str, tight); + Stencil item_stencil = pango_item_string_stencil (item, str); if (text_dir == RIGHT) { @@ -344,11 +323,14 @@ Pango_font::text_stencil (string str, bool tight) const /* For Pango based backends, we take a shortcut. */ + char *descr_string = pango_font_description_to_string (pango_description_); SCM exp = scm_list_3 (ly_symbol2scm ("utf-8-string"), - scm_makfrom0str (description_string ().c_str ()), + scm_makfrom0str (descr_string), scm_makfrom0str (str.c_str ())); + g_free (descr_string); + Box b (Interval (0, 0), Interval (0, 0)); b.unite (dest.extent_box ()); return Stencil (b, exp); @@ -358,16 +340,6 @@ Pango_font::text_stencil (string str, bool tight) const return dest; } -string -Pango_font::description_string () const -{ - char *descr_string = pango_font_description_to_string (pango_description_); - string s (descr_string); - g_free (descr_string); - return s; -} - - SCM Pango_font::font_file_name () const {