]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/piano-pedal-bracket.cc
unsmob_pitch -> Pitch::unsmob and related
[lilypond.git] / lily / piano-pedal-bracket.cc
index fee4c4b762637bf0b417de7880df1be1e96485f8..f6338ce8da724682d612815bc9ac444abc4a6704 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2003--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 2003--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -21,6 +21,7 @@
 #include "spanner.hh"
 #include "item.hh"
 #include "tuplet-bracket.hh"
+#include "axis-group-interface.hh"
 
 struct Piano_pedal_bracket
 {
@@ -32,7 +33,7 @@ MAKE_SCHEME_CALLBACK (Piano_pedal_bracket, print, 1);
 SCM
 Piano_pedal_bracket::print (SCM smob)
 {
-  Spanner *me = dynamic_cast<Spanner *> (unsmob_grob (smob));
+  Spanner *me = dynamic_cast<Spanner *> (Grob::unsmob (smob));
   Spanner *orig = dynamic_cast<Spanner *> (me->original ());
 
   Drul_array<bool> broken (false, false);
@@ -45,14 +46,13 @@ Piano_pedal_bracket::print (SCM smob)
 
   Grob *common = me->get_bound (LEFT)
                  ->common_refpoint (me->get_bound (RIGHT), X_AXIS);
-  Grob *textbit = unsmob_grob (me->get_object ("pedal-text"));
+  Grob *textbit = Grob::unsmob (me->get_object ("pedal-text"));
 
   if (textbit)
     common = common->common_refpoint (textbit, X_AXIS);
 
   Interval span_points (0, 0);
-  Direction d = LEFT;
-  do
+  for (LEFT_and_RIGHT (d))
     {
       Item *b = me->get_bound (d);
       broken[d] = b->break_status_dir () != CENTER;
@@ -65,12 +65,13 @@ Piano_pedal_bracket::print (SCM smob)
             height[d] = 0.0;
           else
             flare[d] = 0.0;
-        }
 
-      Interval ext = robust_relative_extent (b, common, X_AXIS);
-      span_points[d] = ext [broken[d] ? RIGHT : LEFT];
+          span_points[d]
+            = Axis_group_interface::generic_bound_extent (b, common, X_AXIS)[RIGHT];
+        }
+      else
+        span_points[d] = b->relative_coordinate (common, X_AXIS);
     }
-  while (flip (&d) != LEFT);
 
   /* For 'Mixed' style pedals, i.e.  a bracket preceded by text:  Ped._____|
      need to shorten by the extent of the text grob