]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/engraver-group.cc
release: 0.1.7
[lilypond.git] / lily / engraver-group.cc
index 50a3c605684e7c6c18aada6963bd4912dbbb979b..69038b5024eae8375109b40a8cd326a346fe5c76 100644 (file)
 #include "p-score.hh"
 #include "score-elem.hh"
 #include "input-translator.hh"
+
 Engraver* get_engraver_p(String);
 
+void
+Engraver_group_engraver::print()const
+{ 
+    Engraver::print(); 
+}
+
 Engraver_group_engraver::~Engraver_group_engraver()
 {
     assert(removable_b());
@@ -31,7 +38,6 @@ Engraver_group_engraver::check_removal()
        else 
            i++;
     }
-    
 }
 
 bool
@@ -42,7 +48,7 @@ Engraver_group_engraver::removable_b()const
 
 Engraver_group_engraver::Engraver_group_engraver()
 {
-    itrans_l_ =0;
+    itrans_l_ = 0;
 }
 
 void
@@ -160,7 +166,7 @@ void
 Engraver_group_engraver::terminate_engraver(Engraver*r_l)
 {
     mtor << "Removing " << r_l->name() << " at " << get_staff_info().when() << "\n";
-    r_l->do_removal_processing();
+    r_l->removal_processing();
     Engraver * grav_p =remove_engraver_p(r_l);
     
     delete grav_p;
@@ -174,7 +180,10 @@ void
 Engraver_group_engraver::do_print()const
 {
 #ifndef NPRINT
-    mtor << "ID: " << id_str_ << "\n";
+    if ( !check_debug)
+       return ;
+    mtor << "ID: " << id_str_ ;
+    mtor << " iterators: " << iterator_count_<< "\n";
     for (PCursor<Engraver*> i(grav_list_.top()); i.ok(); i++)
        i->print();
 #endif
@@ -264,7 +273,7 @@ Engraver_group_engraver::do_announces()
               nongroup_l_arr_[i]->acknowledge_element(info);
        }
     }
-    announce_info_arr_.set_size(0);
+    announce_info_arr_.clear();
 }
 
 
@@ -272,7 +281,7 @@ void
 Engraver_group_engraver::do_removal_processing()
 {
     for (PCursor<Engraver*> i(grav_list_.top()); i.ok(); i++)
-       i->do_removal_processing();
+       i->removal_processing();
 }
 
 Staff_info
@@ -307,3 +316,16 @@ Engraver_group_engraver::is_bottom_engraver_b()const
 {
     return !itrans_l_->get_default_itrans_l();
 }
+
+Engraver*
+Engraver_group_engraver::get_simple_engraver(char const *type)const
+{
+    for (int i=0; i < nongroup_l_arr_.size(); i++) {
+       if (nongroup_l_arr_[i]->name() == type )
+           return nongroup_l_arr_[i];
+    }
+    if ( daddy_grav_l_ )
+       return daddy_grav_l_->get_simple_engraver(type);
+    return 0;
+}
+