]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/font-select.cc
Doc-hu: updated top of Learning
[lilypond.git] / lily / font-select.cc
index 144c0dd0104f49e973b7fe4281af5c1c7a12fa7a..dc536a9c7a04aa1cf33173124e26f8295c8b7a85 100644 (file)
@@ -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--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 2003--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  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 <http://www.gnu.org/licenses/>.
 */
 
-#include <math.h>
 
 #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);
 }
@@ -96,7 +104,8 @@ get_font_by_mag_step (Output_def *layout, Real requested_step,
 SCM
 properties_to_font_size_family (SCM fonts, SCM alist_chain)
 {
-  return scm_call_2 (ly_lily_module_constant ("lookup-font"), fonts, alist_chain);
+  return scm_call_2 (ly_lily_module_constant ("lookup-font"), fonts,
+                    alist_chain);
 }
 
 Font_metric *
@@ -111,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));
       }