]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/item.cc
Issue 5167/6: Changes: show \markup xxx = ... \etc assignments
[lilypond.git] / lily / item.cc
index 0c3169a7766f31860ef77b978ad7829c017f58b1..f90b29d30a78445c0789de622aadd1275d916ca3 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1997--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1997--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
@@ -43,7 +43,7 @@ Item::Item (SCM s)
 }
 
 /**
-   Item copy ctor.  Copy nothing: everything should be a elt property
+   Item copy ctor.  Copy nothing: everything should be an elt property
    or a special purpose pointer (such as broken_to_drul_[]) */
 Item::Item (Item const &s)
   : Grob (s)
@@ -77,15 +77,13 @@ void
 Item::copy_breakable_items ()
 {
   Drul_array<Item *> new_copies;
-  Direction i = LEFT;
-  do
+  for (LEFT_and_RIGHT (d))
     {
       Grob *dolly = clone ();
       Item *item = dynamic_cast<Item *> (dolly);
       get_root_system (this)->typeset_grob (item);
-      new_copies[i] = item;
+      new_copies[d] = item;
     }
-  while (flip (&i) != LEFT);
 
   broken_to_drul_ = new_copies;
 }
@@ -115,14 +113,12 @@ Item::find_broken_piece (System *l) const
   if (get_system () == l)
     return (Item *) (this);
 
-  Direction d = LEFT;
-  do
+  for (LEFT_and_RIGHT (d))
     {
       Grob *s = broken_to_drul_[d];
       if (s && s->get_system () == l)
         return s;
     }
-  while (flip (&d) != LEFT);
 
   return 0;
 }
@@ -202,21 +198,18 @@ spanned_time_interval (Item *l, Item *r)
   Drul_array<Item *> bounds (l, r);
   Interval_t<Moment> iv;
 
-  Direction d = LEFT;
-  do
+  for (LEFT_and_RIGHT (d))
     {
       if (bounds[d] && bounds[d]->get_column ())
         iv[d] = robust_scm2moment (bounds[d]->get_column ()->get_property ("when"),
                                    iv[d]);
     }
-  while (flip (&d) != LEFT);
 
-  do
+  for (LEFT_and_RIGHT (d))
     {
       if (!bounds[d] || !bounds[d]->get_column ())
         iv[d] = iv[-d];
     }
-  while (flip (&d) != LEFT);
 
   return iv;
 }
@@ -230,23 +223,16 @@ Item::derived_mark () const
     scm_gc_mark (broken_to_drul_[RIGHT]->self_scm ());
 }
 
-Item *
-unsmob_item (SCM s)
-{
-  return dynamic_cast<Item *> (unsmob_grob (s));
-}
-
 Interval
-Item::pure_height (Grob *g, int start, int end)
+Item::pure_y_extent (Grob *g, int start, int end)
 {
   if (cached_pure_height_valid_)
     return cached_pure_height_ + pure_relative_y_coordinate (g, start, end);
   /* Note: cached_pure_height_ does not notice if start changes, implicitly
      assuming that Items' pure_heights do not depend on 'start' or 'end'.
-     Accidental_interface::pure_height(), however, does depend on 'start'.
   */
 
-  cache_pure_height (Grob::pure_height (this, start, end));
+  cache_pure_height (Grob::pure_y_extent (this, start, end));
   return cached_pure_height_ + pure_relative_y_coordinate (g, start, end);
 }