]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/slur.cc
Make lilypond-book call pdflatex by default if --pdf is given
[lilypond.git] / lily / slur.cc
index 604221e3f2d2087ce86186b17ea074172e5cedc6..90ccf302d6d0e9b4e757d3672e10665186479440 100644 (file)
@@ -1,10 +1,21 @@
 /*
-  slur.cc -- implement external interface for Slur
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
+
+  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 "slur.hh"
@@ -119,15 +130,11 @@ Slur::print (SCM smob)
   Bezier one = get_curve (me);
   Stencil a;
 
-  SCM p = me->get_property ("dash-period");
-  SCM f = me->get_property ("dash-fraction");
-  if (scm_is_number (p) && scm_is_number (f))
-    a = Lookup::dashed_slur (one, line_thick, robust_scm2double (p, 1.0),
-                            robust_scm2double (f, 0));
-  else
-    a = Lookup::slur (one,
-                     get_grob_direction (me) * base_thick,
-                     line_thick);
+  SCM dash_definition = me->get_property ("dash-definition");
+  a = Lookup::slur (one,
+                    get_grob_direction (me) * base_thick,
+                   line_thick,
+                    dash_definition);
 
 #if DEBUG_SLUR_SCORING
   SCM annotation = me->get_property ("annotation");
@@ -160,7 +167,7 @@ Slur::print (SCM smob)
 
 /*
   it would be better to do this at engraver level, but that is
-  fragile, as the breakabl items are generated on staff level, at
+  fragile, as the breakable items are generated on staff level, at
   which point slur starts and ends have to be tracked
 */
 void
@@ -279,9 +286,9 @@ Slur::outside_slur_callback (SCM grob, SCM offset_scm)
                                         0.0);
   yext.widen (slur_padding);
 
-  Real EPS = 1e-3;
+  const Real EPS = 1e-3;
   Interval bezext (curve.control_[0][X_AXIS], curve.control_[3][X_AXIS]);
-  bool consider[] = { false, false, false };
+  bool consider[] = {false, false, false};
   Real ys[] = {0, 0, 0};
   bool do_shift = false;
   
@@ -355,7 +362,7 @@ Slur::auxiliary_acknowledge_extra_object (Grob_info const &info,
          e->set_object ("slur", slur->self_scm ());
        }
     }
-  else
+  else if (avoid != ly_symbol2scm ("ignore"))
     e->warning (_f ("Ignoring grob for slur: %s. avoid-slur not set?",
                    e->name().c_str ()));
 }
@@ -417,8 +424,7 @@ ADD_INTERFACE (Slur,
               "annotation "
               "avoid-slur "    /* UGH. */
               "control-points "
-              "dash-fraction "
-              "dash-period "
+               "dash-definition "
               "details "
               "direction "
               "eccentricity "