]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/line-interface.cc
Add support for manually specifying page count.
[lilypond.git] / lily / line-interface.cc
index 8720bba596f14eb5085318c184057353c45107f9..2b4639c5d216350be99e713421d5d635319573d5 100644 (file)
@@ -127,7 +127,7 @@ Line_interface::make_dashed_line (Real thick, Offset from, Offset to,
 {
   dash_fraction = min (max (dash_fraction, 0.0), 1.0);
   Real on = dash_fraction * dash_period + thick;
-  Real off = dash_period - on;
+  Real off = max (0.0, dash_period - on);
 
   SCM at = scm_list_n (ly_symbol2scm ("dashed-line"),
                       scm_from_double (thick),
@@ -212,14 +212,13 @@ Line_interface::line (Grob *me, Offset from, Offset to)
   
   Stencil stil;
 
-  SCM dash_fraction = me->get_property ("dash-fraction");
-  if (scm_is_number (dash_fraction) || type == ly_symbol2scm ("dotted-line"))
+  if (type == ly_symbol2scm ("dashed-line") || type == ly_symbol2scm ("dotted-line"))
     {
 
       Real fraction
        = type == ly_symbol2scm ("dotted-line")
        ? 0.0
-       : robust_scm2double (dash_fraction, 0.4);
+       : robust_scm2double (me->get_property ("dash-fraction"), 0.4);
 
       fraction = min (max (fraction, 0.0), 1.0);
       Real period = Staff_symbol_referencer::staff_space (me)
@@ -231,6 +230,7 @@ Line_interface::line (Grob *me, Offset from, Offset to)
       Real len = (to-from).length ();
       
       int n = (int) rint ((len - period * fraction) / period);
+      n = max (0, n);
       if (n > 0)
        {
          /*
@@ -248,11 +248,14 @@ Line_interface::line (Grob *me, Offset from, Offset to)
 }
 
 ADD_INTERFACE (Line_interface,
-              "Generic line objects. Any object using lines supports this.  Normally, "
-              "you get a straight line. If @code{dash-period} is defined, a dashed line is "
-              "produced; the length of the dashes is tuned with "
+              "Generic line objects. Any object using lines supports this. "
+              "The property @code{style} can be @code{line}, "
+              "@code{dashed-line}, @code{trill}, \n"
+              "@code{dotted-line} or @code{zigzag}.\n"
+              "\n"
+              "For dashed-line, the length of the dashes is tuned with "
               "@code{dash-fraction}. If the latter is set to 0, a dotted line is "
-              "produced. If @code{dash-fraction} is negative, the line is made "
+              "produced. If @code{dash-period} is negative, the line is made "
               "transparent.",
 
               /* properties */