]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lyric-hyphen.cc
Merge branch 'origin' into master-hanwen
[lilypond.git] / lily / lyric-hyphen.cc
index 6988209c748275f60d16076cfd6438aad0e878c0..66bf1b8523aeaced79b539125f53e47625585f8f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2003--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "lyric-hyphen.hh"
@@ -47,9 +47,11 @@ Hyphen_spanner::print (SCM smob)
     }
   while (flip (&d) != LEFT);
 
-  Real lt = me->layout ()->get_dimension (ly_symbol2scm ("linethickness"));
+  Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
   Real th = robust_scm2double (me->get_property ("thickness"), 1) * lt;
-  Real h = robust_scm2double (me->get_property ("height"), 0.5);
+  Real font_size_step = robust_scm2double (me->get_property ("font-size"), 0.0);
+  Real h = robust_scm2double (me->get_property ("height"), 0.5)
+    * pow (2.0, font_size_step / 6.0);
 
   // interval?
 
@@ -115,7 +117,7 @@ Hyphen_spanner::set_spacing_rods (SCM smob)
     {
       r.item_drul_[d] = sp->get_bound (d);
       if (r.item_drul_[d])
-       r.distance_ += r.item_drul_[d]->extent (r.item_drul_[d], X_AXIS)[-d];
+       r.distance_ += -d * r.item_drul_[d]->extent (r.item_drul_[d], X_AXIS)[-d];
     }
   while (flip (&d) != LEFT);
 
@@ -126,15 +128,20 @@ Hyphen_spanner::set_spacing_rods (SCM smob)
   return SCM_UNSPECIFIED;
 }
 
-ADD_INTERFACE (Hyphen_spanner, "lyric-hyphen-interface",
-              "A centered hyphen is a simple line between lyrics used to divide syllables",
+ADD_INTERFACE (Hyphen_spanner,
+
+              "lyric-hyphen-interface",
+              
+              "A centered hyphen is a simple line between "
+              "lyrics used to divide syllables",
 
               /* props */
-              "padding "
-              "thickness "
-              "height "
               "dash-period "
-              "minimum-length "
+              "height "
+              "length "
               "minimum-distance "
-              "length");
+              "minimum-length "
+              "padding "
+              "thickness "
+              );