]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/extender-spanner.cc
release: 1.3.10
[lilypond.git] / lily / extender-spanner.cc
index dc7f4c22aa4e2792164328f681fb02909d947e7a..a9eb6640c59dd66286073bd1adc46401b6123d9b 100644 (file)
@@ -10,7 +10,8 @@
   TODO: too complicated implementation.  Why the dx_drul?.
  */
 
-
+#
+#include "dimension-cache.hh"
 #include "box.hh"
 #include "debug.hh"
 #include "lookup.hh"
@@ -23,26 +24,21 @@ Extender_spanner::Extender_spanner ()
   : Directional_spanner ()
 {
   dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0;
+  dim_cache_[Y_AXIS]->set_callback (Dimension_cache::point_dimension_callback);
 }
 
 
-Offset
-Extender_spanner::center () const
-{
-  Real dx = extent (X_AXIS).length ();
 
-  return Offset (dx / 2, 0);
-}
 
 Molecule*
 Extender_spanner::do_brew_molecule_p () const
 {
   Molecule* mol_p = new Molecule;
 
-  Real w = extent (X_AXIS).length ();
+  Real w = spanner_length ();
   
   w += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
-  Real h = paper_l ()->get_realvar (extender_height_scm_sym);
+  Real h = paper_l ()->get_var ("extender_height");
   Molecule a = lookup_l ()->filledbox ( Box (Interval (0,w), Interval (0,h)));
   a.translate (Offset (dx_f_drul_[LEFT], 0));
 
@@ -51,17 +47,13 @@ Extender_spanner::do_brew_molecule_p () const
   return mol_p;
 }
 
-Interval
-Extender_spanner::do_height () const
-{
-  return Interval (0,0);
-}
+
 
 void
 Extender_spanner::do_post_processing ()
 {
   // UGH
-  Real nw_f = paper_l ()->note_width () * 0.8;
+  Real gap = paper_l ()->get_var ("interline");
 
   Direction d = LEFT;
   do
@@ -71,7 +63,7 @@ Extender_spanner::do_post_processing ()
       if (d == LEFT)
         dx_f_drul_[d] += t->extent (X_AXIS).length ();
       else
-       dx_f_drul_[d] -= d * nw_f / 2;
+       dx_f_drul_[d] -= d * gap / 2;
     }
   while (flip(&d) != LEFT);
 }
@@ -84,3 +76,4 @@ Extender_spanner::set_textitem (Direction d, Item* textitem_l)
   add_dependency (textitem_l);
 }
 
+