]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/dynamic-text-spanner.cc
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / lily / dynamic-text-spanner.cc
index 8466dbde7d18eb8d5783a0fe034d67a64398d90d..a5d76e4bca52b5f5197be5a6a67fbd85462fd381 100644 (file)
@@ -1,14 +1,14 @@
 /*
-  crescendo-text-spanner.cc -- implement Text_spanner
+  dynamic-text-spanner.cc -- implement Text_spanner
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2005 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2006 Jan Nieuwenhuizen <janneke@gnu.org>
 
   Revised over good by Han-Wen.
 */
 
-#include "text-item.hh"
+#include "text-interface.hh"
 #include "text-spanner.hh"
 #include "line-spanner.hh"
 #include "spanner.hh"
@@ -18,7 +18,6 @@
 #include "warn.hh"
 #include "paper-column.hh"
 
-
 class Dynamic_text_spanner
 {
 public:
@@ -26,7 +25,6 @@ public:
   static bool has_interface (Grob *);
 };
 
-
 /*
   This is a partial C&P from text-spanner.cc
 
@@ -54,7 +52,7 @@ Dynamic_text_spanner::print (SCM smob)
   Spanner *spanner = dynamic_cast<Spanner *> (me);
 
   Grob *common = spanner->get_bound (LEFT)->common_refpoint (spanner->get_bound (RIGHT), X_AXIS);
-  Output_def *layout = me->get_layout ();
+  Output_def *layout = me->layout ();
 
   Interval span_points;
   Drul_array<bool> broken;
@@ -103,7 +101,7 @@ Dynamic_text_spanner::print (SCM smob)
 
          SCM text = index_get_cell (edge_text, d);
 
-         if (Text_interface::markup_p (text))
+         if (Text_interface::is_markup (text))
            edge[d] = *unsmob_stencil (Text_interface::interpret_markup (layout->self_scm (), properties, text));
 
          if (!edge[d].is_empty ())
@@ -125,7 +123,8 @@ Dynamic_text_spanner::print (SCM smob)
     }
   while (flip (&d) != LEFT);
 
-  if (!span_points.is_empty ())
+  if (!span_points.is_empty ()
+      && span_points.length () > robust_scm2double (me->get_property ("dash-period"), 0.0))
     {
       Stencil l = Line_spanner::line_stencil (me,
                                              Offset (span_points[LEFT], 0),
@@ -139,5 +138,11 @@ Dynamic_text_spanner::print (SCM smob)
 ADD_INTERFACE (Dynamic_text_spanner,
               "dynamic-text-spanner-interface",
               "A text spanner for crescendo texts",
-              "bound-padding dash-period dash-fraction edge-text style thickness");
+              
+              "bound-padding "
+              "dash-period "
+              "dash-fraction "
+              "edge-text "
+              "style "
+              "thickness");