]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/tuplet-engraver.cc
Doc-de: updates for Usage
[lilypond.git] / lily / tuplet-engraver.cc
index 478469a1e2e5e5dc62bcfd60a6cc5da88fe5904e..3829c98283632ed0f4583e68c99a4e577bdd23b3 100644 (file)
@@ -1,9 +1,20 @@
 /*
-  tuplet-engraver.cc -- implement Tuplet_engraver
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 1998--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 1998--2007 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
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "beam.hh"
@@ -93,7 +104,7 @@ Tuplet_engraver::listen_tuplet_span (Stream_event *ev)
          tuplets_.pop_back ();
        }
       else if (!to_boolean (get_property ("skipTypesetting"))) 
-       ev->origin ()->warning (_f ("No tuplet to end"));
+       ev->origin ()->warning (_ ("No tuplet to end"));
     }
   else 
     ev->origin ()->programming_error ("direction tuplet-span-event_ invalid.");
@@ -133,12 +144,16 @@ Tuplet_engraver::process_music ()
            }
          else if (!bracket->get_bound (RIGHT))
            {
-             bracket->set_bound (RIGHT,
-                                 bracket->get_bound (LEFT));
-             number->set_bound (RIGHT,
-                                stopped_tuplets_[i].bracket_->get_bound (LEFT));
-           }
-         
+             if (bracket->get_bound (LEFT))
+               {
+                 bracket->set_bound (RIGHT,
+                                     bracket->get_bound (LEFT));
+                 number->set_bound (RIGHT,
+                                    stopped_tuplets_[i].bracket_->get_bound (LEFT));
+               }
+             else
+               programming_error ("stopped tuplet bracket has neither left nor right bound");
+           }     
          // todo: scrap last_tuplets_, use stopped_tuplets_ only.
          // clear stopped_tuplets_ at start_translation_timestep
          last_tuplets_.push_back (bracket);
@@ -167,6 +182,8 @@ Tuplet_engraver::process_music ()
       tuplets_[i].number_ = make_spanner ("TupletNumber",
                                          tuplets_[i].event_->self_scm ());
       tuplets_[i].number_->set_object ("bracket", tuplets_[i].bracket_->self_scm ());
+      tuplets_[i].number_->set_parent (tuplets_[i].bracket_, X_AXIS);
+      tuplets_[i].number_->set_parent (tuplets_[i].bracket_, Y_AXIS);
       tuplets_[i].bracket_->set_object ("tuplet-number", tuplets_[i].number_->self_scm ());
       tuplets_[i].stop_moment_.grace_part_ = 0;