]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/score-align-grav.cc
release: 0.1.31
[lilypond.git] / lily / score-align-grav.cc
index 7f315bcc39276de7069dc6658d797139beaf9bf6..3af608484c84e95b3b48928a294df243623c2d62 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  score-align-reg.cc -- implement Score_align_engraver
+  score-align-reg.cc -- implement Type_align_engraver
 
   source file of the GNU LilyPond music typesetter
 
@@ -7,40 +7,45 @@
 */
 
 
-#include "elem-group-item.hh"
+#include "horizontal-group-item.hh"
 #include "score-align-grav.hh"
 #include "item.hh"
 
-Score_align_engraver::Score_align_engraver()
+Type_align_engraver::Type_align_engraver()
 {
-    type_ch_C_ = 0;
-    priority_i_ =0;
-    align_p_=0;
+  type_ch_C_ = 0;
+  priority_i_ =0;
+  align_p_=0;
 }
 
 void
-Score_align_engraver::do_pre_move_processing()
+Type_align_engraver::do_pre_move_processing()
 {
-    if (align_p_) {
-       typeset_breakable_item( align_p_);
-       align_p_ =0;
+  if (align_p_) 
+    {
+      typeset_element (align_p_);
+      align_p_ =0;
     }
 }
 
 void
-Score_align_engraver::acknowledge_element(Score_elem_info inf)
+Type_align_engraver::acknowledge_element (Score_elem_info inf)
 {
-    if (inf.elem_l_->is_type_b(type_ch_C_ )) {
-    
-       if (!align_p_ ) {
-           align_p_ = new Horizontal_group_item;
-           announce_element(Score_elem_info(align_p_,0));
+  if (inf.elem_l_->is_type_b (type_ch_C_)) 
+    {
+  
+      if (!align_p_) 
+       {
+         align_p_ = new Horizontal_group_item;
+         align_p_->breakable_b_ = true;
+         announce_element (Score_elem_info (align_p_,0));
        }
-       
-       align_p_->add_element(inf.elem_l_);
+      Score_elem * unbound_elem = inf.elem_l_;
+      while (unbound_elem->axis_group_l_a_[X_AXIS])
+       unbound_elem = unbound_elem->axis_group_l_a_[X_AXIS];
+      align_p_->add_element (unbound_elem);
     }
-    
+  
 }
 
-IMPLEMENT_STATIC_NAME(Score_align_engraver)
-IMPLEMENT_IS_TYPE_B1(Score_align_engraver,Engraver);
+IMPLEMENT_IS_TYPE_B1(Type_align_engraver,Engraver);