X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmodified-font-metric.cc;h=53ccefa2997e0c9e93a05d9b9688678b1b726db3;hb=4935f81a94ae1b98cd017a96571c153cee3e5686;hp=47b19618bda1126e14cc429bfb528c68f8530b62;hpb=bc95f4434f760d41191341ab4508b2064eb19025;p=lilypond.git diff --git a/lily/modified-font-metric.cc b/lily/modified-font-metric.cc index 47b19618bd..53ccefa299 100644 --- a/lily/modified-font-metric.cc +++ b/lily/modified-font-metric.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1999--2010 Han-Wen Nienhuys + Copyright (C) 1999--2014 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ using namespace std; #include "program-option.hh" Modified_font_metric::Modified_font_metric (Font_metric *fm, - Real magnification) + Real magnification) { magnification_ = magnification; @@ -54,19 +54,17 @@ Modified_font_metric::design_size () const } Box -Modified_font_metric::get_indexed_char (vsize i) const +Modified_font_metric::get_indexed_char_dimensions (vsize i) const { - Box b = orig_->get_indexed_char (i); + Box b = orig_->get_indexed_char_dimensions (i); b.scale (magnification_); return b; } -Box -Modified_font_metric::get_ascii_char (vsize i) const +Real +Modified_font_metric::get_magnification () const { - Box b = orig_->get_ascii_char (i); - b.scale (magnification_); - return b; + return magnification_; } vsize @@ -76,7 +74,7 @@ Modified_font_metric::count () const } Offset -Modified_font_metric::attachment_point (string s) const +Modified_font_metric::attachment_point (const string &s) const { Offset o = orig_->attachment_point (s); return o * magnification_; @@ -89,7 +87,7 @@ Modified_font_metric::get_indexed_wxwy (vsize k) const return o * magnification_; } -vsize +size_t Modified_font_metric::name_to_index (string s) const { return orig_->name_to_index (s); @@ -101,24 +99,19 @@ Modified_font_metric::index_to_charcode (vsize i) const return orig_->index_to_charcode (i); } -vsize -Modified_font_metric::index_to_ascii (vsize k) const -{ - return orig_->index_to_ascii (k); -} - void Modified_font_metric::derived_mark () const { } Stencil -Modified_font_metric::text_stencil (string text, bool feta) const +Modified_font_metric::text_stencil (Output_def *state, + const string &text, bool feta) const { Box b; if (Pango_font *pf = dynamic_cast (orig_)) { - Stencil stc = pf->text_stencil (text, feta); + Stencil stc = pf->text_stencil (state, text, feta); Box b = stc.extent_box (); @@ -127,28 +120,7 @@ Modified_font_metric::text_stencil (string text, bool feta) const return scaled; } - return Font_metric::text_stencil (text, feta); -} - -Box -Modified_font_metric::text_dimension (string text) const -{ - Box b; - Interval ydims; - Real w = 0.0; - - for (ssize i = 0; i < text.length (); i++) - { - Box b = get_ascii_char ((unsigned char)text[i]); - - w += b[X_AXIS].length (); - ydims.unite (b[Y_AXIS]); - } - if (ydims.is_empty ()) - ydims = Interval (0, 0); - - b = Box (Interval (0, w), ydims); - return b; + return Font_metric::text_stencil (state, text, feta); } Font_metric *