X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmodified-font-metric.cc;h=9a5488f1ccca0c971cdea50044ba60f39a24d8b6;hb=e6bb963f4341cbd6f7c8bda2e608715d271492d1;hp=e3f419cf7665fcaa96cdb4e20e3b2b6176fddf68;hpb=4ecdbd7d70ca7441be4dddd15ac01cc255bc2a35;p=lilypond.git diff --git a/lily/modified-font-metric.cc b/lily/modified-font-metric.cc index e3f419cf76..9a5488f1cc 100644 --- a/lily/modified-font-metric.cc +++ b/lily/modified-font-metric.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1999--2005 Han-Wen Nienhuys + (c) 1999--2007 Han-Wen Nienhuys */ #include using namespace std; @@ -13,7 +13,6 @@ using namespace std; #include "text-metrics.hh" #include "warn.hh" #include "stencil.hh" -#include "lookup.hh" #include "main.hh" Modified_font_metric::Modified_font_metric (Font_metric *fm, @@ -44,7 +43,7 @@ Modified_font_metric::design_size () const } Box -Modified_font_metric::get_indexed_char (int i) const +Modified_font_metric::get_indexed_char (vsize i) const { Box b = orig_->get_indexed_char (i); b.scale (magnification_); @@ -52,47 +51,47 @@ Modified_font_metric::get_indexed_char (int i) const } Box -Modified_font_metric::get_ascii_char (int i) const +Modified_font_metric::get_ascii_char (vsize i) const { Box b = orig_->get_ascii_char (i); b.scale (magnification_); return b; } -int +vsize Modified_font_metric::count () const { return orig_->count (); } Offset -Modified_font_metric::attachment_point (String s) const +Modified_font_metric::attachment_point (string s) const { Offset o = orig_->attachment_point (s); return o * magnification_; } Offset -Modified_font_metric::get_indexed_wxwy (int k) const +Modified_font_metric::get_indexed_wxwy (vsize k) const { Offset o = orig_->get_indexed_wxwy (k); return o * magnification_; } -int -Modified_font_metric::name_to_index (String s) const +vsize +Modified_font_metric::name_to_index (string s) const { return orig_->name_to_index (s); } -unsigned -Modified_font_metric::index_to_charcode (int i) const +vsize +Modified_font_metric::index_to_charcode (vsize i) const { return orig_->index_to_charcode (i); } -int -Modified_font_metric::index_to_ascii (int k) const +vsize +Modified_font_metric::index_to_ascii (vsize k) const { return orig_->index_to_ascii (k); } @@ -104,17 +103,17 @@ Modified_font_metric::derived_mark () const /* TODO: put this klutchness behind ly:option switch. */ Box -Modified_font_metric::tex_kludge (String text) const +Modified_font_metric::tex_kludge (string text) const { Interval ydims; Real w = 0; - for (int i = 0; i < text.length (); i++) + for (ssize i = 0; i < text.length (); i++) { switch (text[i]) { case '\\': /* Accent marks use width of base letter */ - if (i +1 < text.length ()) + if (i < text.length () - 1) { if (text[i + 1]=='\'' || text[i + 1]=='`' || text[i + 1]=='"' || text[i + 1]=='^') @@ -159,7 +158,7 @@ Modified_font_metric::tex_kludge (String text) const } Stencil -Modified_font_metric::text_stencil (String text) const +Modified_font_metric::text_stencil (string text) const { Box b; if (Pango_font *pf = dynamic_cast (orig_)) @@ -177,18 +176,21 @@ Modified_font_metric::text_stencil (String text) const } Box -Modified_font_metric::text_dimension (String text) const +Modified_font_metric::text_dimension (string text) const { - SCM stext = scm_makfrom0str (text.to_str0 ()); - Box b = lookup_tex_text_dimension (orig_, stext); - if (!b[Y_AXIS].is_empty ()) - { - b.scale (magnification_); - return b; - } - + SCM stext = ly_string2scm (text); + + Box b; if (output_backend_global == "tex") { + b = lookup_tex_text_dimension (orig_, stext); + + if (!b[Y_AXIS].is_empty ()) + { + b.scale (magnification_); + return b; + } + b = tex_kludge (text); return b; } @@ -197,7 +199,7 @@ Modified_font_metric::text_dimension (String text) const Real w = 0.0; - for (int i = 0; i < text.length (); i++) + for (ssize i = 0; i < text.length (); i++) { Box b = get_ascii_char ((unsigned char)text[i]); @@ -223,7 +225,7 @@ Modified_font_metric::sub_fonts () const return orig_->sub_fonts (); } -String +string Modified_font_metric::font_name () const { return original_font ()->font_name ();