]> git.donarmstrong.com Git - lilypond.git/commitdiff
Revert "Restore default tuplet bracket visibility for single note tremolos."
authorNeil Puttock <n.puttock@gmail.com>
Wed, 10 Mar 2010 22:45:20 +0000 (22:45 +0000)
committerNeil Puttock <n.puttock@gmail.com>
Wed, 10 Mar 2010 22:45:20 +0000 (22:45 +0000)
This reverts commit 303d2058203aa72b28aadfca0bf89ab16617e01e.

* broke 'bracket-visibility = ##f (no regtest checks this)

lily/tuplet-bracket.cc

index abc559ab051b3942c941988e9cae856fc2bc94da..f525ef90f43e698512b06f0f3f9ca1706bee459b 100644 (file)
@@ -40,6 +40,7 @@
   todo: handle breaking elegantly.
 */
 
+
 #include "tuplet-bracket.hh"
 #include "line-interface.hh"
 #include "beam.hh"
@@ -70,6 +71,7 @@ get_x_bound_item (Grob *me_grob, Direction hdir, Direction my_dir)
   return g;
 }
 
+
 void
 flatten_number_pair_property (Grob *me, Direction xdir, SCM sym)
 {
@@ -81,11 +83,12 @@ flatten_number_pair_property (Grob *me, Direction xdir, SCM sym)
   me->set_property (sym, ly_interval2scm (pair));
 }
 
+
 /*
   Return beam that encompasses the span of the tuplet bracket.
 */
 Grob *
-Tuplet_bracket::parallel_beam (Grob *me_grob, vector<Grob *> const &cols,
+Tuplet_bracket::parallel_beam (Grob *me_grob, vector<Grob*> const &cols,
                               bool *equally_long)
 {
   Spanner *me = dynamic_cast<Spanner *> (me_grob);
@@ -95,22 +98,22 @@ Tuplet_bracket::parallel_beam (Grob *me_grob, vector<Grob *> const &cols,
     return 0;
 
   Drul_array<Grob *> stems (Note_column::get_stem (cols[0]),
-                           Note_column::get_stem (cols.back ()));
+                          Note_column::get_stem (cols.back ()));
 
   if (!stems[RIGHT]
       || !stems[LEFT]
-      || (dynamic_cast<Item *> (stems[RIGHT])->get_column ()
+      || (dynamic_cast<Item*> (stems[RIGHT])->get_column ()
          != me->get_bound (RIGHT)->get_column ()))
     return 0;
 
   Drul_array<Grob *> beams;
   Direction d = LEFT;
-  do
+  do {
     beams[d] = stems[d] ? Stem::get_beam (stems[d]) : 0;
-  while (flip (&d) != LEFT);
+  while (flip (&d) != LEFT);
 
   *equally_long = false;
-  if (! (beams[LEFT] && (beams[LEFT] == beams[RIGHT]) && !me->is_broken ()))
+  if (!(beams[LEFT] && (beams[LEFT] == beams[RIGHT]) && !me->is_broken ()))
     return 0;
 
   extract_grob_set (beams[LEFT], "stems", beam_stems);
@@ -121,12 +124,13 @@ Tuplet_bracket::parallel_beam (Grob *me_grob, vector<Grob *> const &cols,
       return 0;
     }
 
-  *equally_long
-    (beam_stems[0] == stems[LEFT]
-       && beam_stems.back () == stems[RIGHT]);
+  *equally_long =
+    (beam_stems[0] == stems[LEFT]
+     && beam_stems.back () == stems[RIGHT]);
   return beams[LEFT];
 }
 
+
 MAKE_SCHEME_CALLBACK (Tuplet_bracket, calc_connect_to_neighbors, 1);
 SCM
 Tuplet_bracket::calc_connect_to_neighbors (SCM smob)
@@ -161,6 +165,7 @@ Tuplet_bracket::calc_connect_to_neighbors (SCM smob)
     }
   while (flip (&d) != LEFT);
 
+
   if (connect_to_other[LEFT] || connect_to_other[RIGHT])
     return scm_cons (scm_from_bool (connect_to_other[LEFT]),
                     scm_from_bool (connect_to_other[RIGHT]));
@@ -205,9 +210,9 @@ Tuplet_bracket::calc_control_points (SCM smob)
   bounds[LEFT] = get_x_bound_item (me, LEFT, dir);
   bounds[RIGHT] = get_x_bound_item (me, RIGHT, dir);
 
-  Drul_array<bool> connect_to_other
-    robust_scm2booldrul (me->get_property ("connect-to-neighbor"),
-                          Drul_array<bool> (false, false));
+  Drul_array<bool> connect_to_other =
+    robust_scm2booldrul (me->get_property ("connect-to-neighbor"),
+                        Drul_array<bool> (false, false));
 
   Interval x_span;
   Direction d = LEFT;
@@ -237,15 +242,15 @@ Tuplet_bracket::calc_control_points (SCM smob)
            We're connecting to a column, for the last bit of a broken
            fullLength bracket.
          */
-         Real padding
-           = robust_scm2double (me->get_property ("full-length-padding"), 1.0);
+         Real padding =
+           robust_scm2double(me->get_property("full-length-padding"), 1.0);
 
          if (bounds[d]->break_status_dir ())
            padding = 0.0;
 
-         Real coord = bounds[d]->relative_coordinate (commonx, X_AXIS);
+         Real coord = bounds[d]->relative_coordinate(commonx, X_AXIS);
          if (to_boolean (me->get_property ("full-length-to-extent")))
-           coord = robust_relative_extent (bounds[d], commonx, X_AXIS)[LEFT];
+           coord = robust_relative_extent(bounds[d], commonx, X_AXIS)[LEFT];
 
          coord = max (coord, x_span[LEFT]);
 
@@ -254,6 +259,7 @@ Tuplet_bracket::calc_control_points (SCM smob)
     }
   while (flip (&d) != LEFT);
 
+
   x_span -= me->get_bound (LEFT)->relative_coordinate (commonx, X_AXIS);
   return scm_list_2 (ly_offset2scm (Offset (x_span[LEFT], positions[LEFT])),
                     ly_offset2scm (Offset (x_span[RIGHT], positions[RIGHT])));
@@ -276,15 +282,15 @@ Tuplet_bracket::print (SCM smob)
   bool equally_long = false;
   Grob *par_beam = parallel_beam (me, columns, &equally_long);
 
-  bool bracket_visibility = ! (par_beam && equally_long); // Flag, print/don't print tuplet bracket.
+  bool bracket_visibility = !(par_beam && equally_long);          // Flag, print/don't print tuplet bracket.
   /*
     FIXME: The type of this prop is sucky.
   */
   SCM bracket_vis_prop = me->get_property ("bracket-visibility");
-  bool bracket_prop = to_boolean (bracket_vis_prop); // Flag, user has set bracket-visibility prop.
+  bool bracket_prop = ly_scm2bool (bracket_vis_prop);             // Flag, user has set bracket-visibility prop.
   bool bracket = (bracket_vis_prop == ly_symbol2scm ("if-no-beam"));
-  if (bracket_prop)
-    bracket_visibility = true;
+  if (scm_is_bool (bracket_vis_prop))
+    bracket_visibility = bracket_prop;
   else if (bracket)
     bracket_visibility = !par_beam;
 
@@ -302,11 +308,14 @@ Tuplet_bracket::print (SCM smob)
       the bracket, but still let the number be displayed.
       Only do this if the user has not explicitly specified bracket-visibility = #t.
   */
-  if (!bracket_prop
-      && (robust_scm2moment (me->get_bound (LEFT)->get_column ()->get_property ("when"), Moment (0))
-         == robust_scm2moment (me->get_bound (RIGHT)->get_column ()->get_property ("when"), Moment (0))))
-    bracket_visibility = false;
-
+  if (!bracket_prop)
+  {
+      if (robust_scm2moment (me->get_bound (LEFT)->get_column ()->get_property ("when"), Moment (0))
+         == robust_scm2moment (me->get_bound (RIGHT)->get_column ()->get_property ("when"), Moment (0)))
+      {
+         bracket_visibility = false;
+      }
+  }
   Drul_array<Offset> points;
   points[LEFT] = ly_scm2offset (scm_car (cpoints));
   points[RIGHT] = ly_scm2offset (scm_cadr (cpoints));
@@ -322,7 +331,7 @@ Tuplet_bracket::print (SCM smob)
     Don't print the bracket when it would be smaller than the number.
     ...Unless the user has coded bracket-visibility = #t, that is.
   */
-  Real gap = 0.0;
+  Real gap = 0.;
   if (bracket_visibility && number_grob)
     {
       Interval ext = number_grob->extent (number_grob, X_AXIS);
@@ -353,9 +362,9 @@ Tuplet_bracket::print (SCM smob)
       scale_drul (&flare, ss);
       scale_drul (&shorten, ss);
 
-      Drul_array<bool> connect_to_other
-       robust_scm2booldrul (me->get_property ("connect-to-neighbor"),
-                              Drul_array<bool> (false, false));
+      Drul_array<bool> connect_to_other =
+       robust_scm2booldrul (me->get_property ("connect-to-neighbor"),
+                            Drul_array<bool> (false, false));
 
       Direction d = LEFT;
       do
@@ -486,7 +495,7 @@ Tuplet_bracket::get_bounds (Grob *me, Grob **left, Grob **right)
     l++;
 
   vsize r = columns.size ();
-  while (r > l && Note_column::has_rests (columns[r - 1]))
+  while (r > l && Note_column::has_rests (columns[r-1]))
     r--;
 
   *left = *right = 0;
@@ -494,14 +503,13 @@ Tuplet_bracket::get_bounds (Grob *me, Grob **left, Grob **right)
   if (l < r)
     {
       *left = columns[l];
-      *right = columns[r - 1];
+      *right = columns[r-1];
     }
 }
 
 /*
   use first -> last note for slope, and then correct for disturbing
-  notes in between.
-*/
+  notes in between.  */
 void
 Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
 {
@@ -522,15 +530,13 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
   Interval staff;
   Grob *st = Staff_symbol_referencer::get_staff_symbol (me);
 
-  /*
-    staff-padding doesn't work correctly on cross-staff tuplets
-    because it only considers one staff symbol. Until this works,
-    disable it.
-  */
+  /* staff-padding doesn't work correctly on cross-staff tuplets
+     because it only considers one staff symbol. Until this works,
+     disable it. */
   if (st && !to_boolean (me->get_property ("cross-staff")))
     {
       Real pad = robust_scm2double (me->get_property ("staff-padding"), -1.0);
-      if (pad >= 0.0)
+      if  (pad >= 0.0)
        {
          staff = st->extent (commony, Y_AXIS) - my_offset;
          staff.widen (pad);
@@ -558,7 +564,7 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
     {
       /*
        trigger set_stem_ends
-      */
+       */
       (void) par_beam->get_property ("quantized-positions");
 
       Drul_array<Grob *> stems (Note_column::get_stem (columns[0]),
@@ -566,9 +572,9 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
 
       Real ss = 0.5 * Staff_symbol_referencer::staff_space (me);
       Real lp = ss * robust_scm2double (stems[LEFT]->get_property ("stem-end-position"), 0.0)
-       + stems[LEFT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS);
+        + stems[LEFT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS);
       Real rp = ss * robust_scm2double (stems[RIGHT]->get_property ("stem-end-position"), 0.0)
-       + stems[RIGHT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS);
+        + stems[RIGHT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS);
 
       *dy = rp - lp;
       points.push_back (Offset (stems[LEFT]->relative_coordinate (commonx, X_AXIS) - x0, lp));
@@ -624,7 +630,7 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
     }
 
   /*
-    This is a slight hack.  We compute two encompass points from the
+    This is a slight hack. We compute two encompass points from the
     bbox of the smaller tuplets.
 
     We assume that the smaller bracket is 1.0 space high.