X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Ffont-select.cc;h=f9f42ae25e244781ab056f108e471b23b39a7ca5;hb=017d18262ff415938a30246a4aa92ea6f18b942d;hp=c4d85f864ac34ca158bc1dfc62d2dbbcfd4e5222;hpb=08799b9501bc361026e59eed5789e4b0b4a7b61e;p=lilypond.git diff --git a/lily/font-select.cc b/lily/font-select.cc index c4d85f864a..f9f42ae25e 100644 --- a/lily/font-select.cc +++ b/lily/font-select.cc @@ -1,12 +1,22 @@ /* - font-select.cc -- implement property -> font_metric routines. + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2003--2011 Han-Wen Nienhuys - (c) 2003--2005 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 + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ -#include #include "dimensions.hh" #include "all-font-metrics.hh" @@ -77,9 +87,7 @@ get_font_by_design_size (Output_def *layout, Real requested, #endif } else - { - fm = unsmob_metrics (scm_force (scm_c_vector_ref (font_vector, i))); - } + fm = unsmob_metrics (scm_force (scm_c_vector_ref (font_vector, i))); return find_scaled_font (layout, fm, requested / size); } @@ -112,30 +120,18 @@ select_encoded_font (Output_def *layout, SCM chain) } #if HAVE_PANGO_FT2 - if (scm_is_string (name) - && is_pango_format_global) - { - return select_pango_font (layout, chain); - } + if (scm_is_string (name)) + return select_pango_font (layout, chain); else #endif - if (scm_is_string (name)) - { - Real rmag = - robust_scm2double (ly_chain_assoc_get (ly_symbol2scm ("font-magnification"), chain, SCM_BOOL_F), - 1.0); - Font_metric *fm = all_fonts_global->find_font (ly_scm2string (name)); - - return find_scaled_font (layout, fm, rmag); - } - else if (scm_instance_p (name)) + if (scm_instance_p (name)) { SCM base_size = scm_slot_ref (name, ly_symbol2scm ("default-size")); SCM vec = scm_slot_ref (name, ly_symbol2scm ("size-vector")); Real req = robust_scm2double (ly_chain_assoc_get (ly_symbol2scm ("font-size"), chain, SCM_BOOL_F), 0.0); - + return get_font_by_mag_step (layout, req, vec, scm_to_double (base_size)); }