]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/ottava-bracket.cc
Run grand replace for 2015.
[lilypond.git] / lily / ottava-bracket.cc
index cbe9928b6e977b12b31d4e31aa913c9e2c667232..f34afd16951c07d0136e82182407da3ce78b0770 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2004--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 2004--2015 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
@@ -49,15 +49,14 @@ MAKE_SCHEME_CALLBACK (Ottava_bracket, print, 1);
 SCM
 Ottava_bracket::print (SCM smob)
 {
-  Spanner *me = dynamic_cast<Spanner *> (unsmob_grob (smob));
+  Spanner *me = dynamic_cast<Spanner *> (Grob::unsmob (smob));
   Interval span_points;
 
   Grob *common = me->get_bound (LEFT)->common_refpoint (me->get_bound (RIGHT), X_AXIS);
   Output_def *layout = me->layout ();
 
   Drul_array<bool> broken;
-  Direction d = LEFT;
-  do
+  for (LEFT_and_RIGHT (d))
     {
       Item *b = me->get_bound (d);
       broken[d] = (b->break_status_dir () != CENTER);
@@ -75,13 +74,12 @@ Ottava_bracket::print (SCM smob)
             }
         }
     }
-  while (flip (&d) != LEFT);
 
   SCM properties = Font_interface::text_font_alist_chain (me);
   SCM markup = me->get_property ("text");
   Stencil text;
   if (Text_interface::is_markup (markup))
-    text = *unsmob_stencil (Text_interface::interpret_markup (layout->self_scm (),
+    text = *Stencil::unsmob (Text_interface::interpret_markup (layout->self_scm (),
                                                               properties, markup));
 
   Drul_array<Real> shorten = robust_scm2interval (me->get_property ("shorten-pair"),
@@ -91,7 +89,7 @@ Ottava_bracket::print (SCM smob)
     TODO: we should check if there are ledgers, and modify length of
     the spanner to that.
   */
-  do
+  for (LEFT_and_RIGHT (d))
     {
       Item *b = me->get_bound (d);
 
@@ -121,8 +119,9 @@ Ottava_bracket::print (SCM smob)
 
       else
         span_points[d] = ext[d];
+
+      span_points[d] -= d * shorten[d];
     }
-  while (flip (&d) != LEFT);
 
   /*
     0.3 is ~ italic correction.
@@ -144,13 +143,12 @@ Ottava_bracket::print (SCM smob)
   Drul_array<Real> flare = robust_scm2interval (me->get_property ("bracket-flare"),
                                                 Interval (0, 0));
 
-  do
+  for (LEFT_and_RIGHT (d))
     {
       edge_height[d] *= -get_grob_direction (me);
       if (broken[d])
         edge_height[d] = 0.0;
     }
-  while (flip (&d) != LEFT);
 
   Stencil b;
   Interval empty;
@@ -159,21 +157,19 @@ Ottava_bracket::print (SCM smob)
                                       Y_AXIS, Offset (bracket_span_points.length (), 0),
                                       edge_height,
                                       empty,
-                                      flare, shorten);
+                                      flare, Drul_array<Real> (0, 0));
 
   /*
-    The vertical lines should not take space, for the following scenario:
-
-    8 -----+
-    o  |
-    |
-    |
-
-
-    Just a small amount, yes.  In tight situations, it is even
-    possible to center the `8' directly below the note, dropping the
-    ottava line completely...
-
+   * The vertical lines should not take space, for the following scenario:
+   *
+   * 8 -----+
+   *     o  |
+   *    |
+   *    |
+   *
+   * Just a small amount, yes.  In tight situations, it is even
+   * possible to center the `8' directly below the note, dropping the
+   * ottava line completely...
   */
 
   b = Stencil (Box (b.extent (X_AXIS),