]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.76
authorfred <fred>
Sun, 24 Mar 2002 19:48:04 +0000 (19:48 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:48:04 +0000 (19:48 +0000)
lily/include/staff-gravs.hh
lily/staff-gravs.cc

index 4dffdaee1227ea1a7f29395e77329fc989f6b7d2..a51ffe47955378b28a7150d3f24063da12bcde0c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  staff-gravs.hh -- declare Staff_engravers
+  staff-gravs.hh -- declare Line_group_engraver
 
   source file of the GNU LilyPond music typesetter
 
 
 /**
   Engravers which manage a Staff (one 5-line linestaff)
-  
- */
-class Staff_engravers : public Engraver_group_engraver {
+  */
+class Line_group_engraver : public Engraver{
     Line_of_staff *staffline_p_;   
     Link_array<Score_elem> staff_elem_l_arr_;
 
-    void group_staff_elems();
 protected:
-    virtual void do_pre_move_processing();
     virtual void do_creation_processing();
     virtual void do_removal_processing();
-    virtual void typeset_element(Score_elem*);
-    virtual void typeset_breakable_item( Item * it_p);
+    virtual void acknowledge_element(Score_elem_info);
 
 public:
-    
     NAME_MEMBERS();
-    Staff_engravers();
+    Line_group_engraver();
 };
 
 #endif // STAFF_GRAVS_HH
index d91156997e19c1ae5f3d6272fac01322542015a9..55c148f471ec361deb032c117b0be8bfd7325f05 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  staff-gravs.cc -- implement Staff_engravers
+  staff-gravs.cc -- implement Line_group_engraver
 
   source file of the GNU LilyPond music typesetter
 
 #include "staffline.hh"
 
 
-Staff_engravers::Staff_engravers()
+Line_group_engraver::Line_group_engraver()
 {
     staffline_p_ =0;
 }
 
 void
-Staff_engravers::typeset_element(Score_elem *elem_p)
+Line_group_engraver::acknowledge_element(Score_elem_info  elem)
 {
-    staff_elem_l_arr_.push(elem_p);
-    Engraver_group_engraver::typeset_element(elem_p);
+    staffline_p_->add_element(elem.elem_l_);
 }
 
-void
-Staff_engravers::typeset_breakable_item( Item * nobreak_p)
-{
-    staff_elem_l_arr_.push(nobreak_p);
-    Engraver_group_engraver::typeset_breakable_item(nobreak_p);
-}
-
-void
-Staff_engravers::do_pre_move_processing()
-{
-    Engraver_group_engraver::do_pre_move_processing();
-    group_staff_elems();
-}
-
-void
-Staff_engravers::group_staff_elems()
-{
-    for (int i=0; i <staff_elem_l_arr_.size(); i++)
-       staffline_p_->add_element(staff_elem_l_arr_[i]);
-    staff_elem_l_arr_.set_size(0);
-}
 
 void
-Staff_engravers::do_removal_processing()
+Line_group_engraver::do_removal_processing()
 {
-    /* this is a "destructor type function", first do children, then self. */
-    Engraver_group_engraver::do_removal_processing();
-    group_staff_elems();
-
     staffline_p_->right_col_l_ = get_staff_info().command_pcol_l();
-    Engraver::typeset_element(staffline_p_);
+    typeset_element(staffline_p_);
     staffline_p_ = 0;
 }
 
 void
-Staff_engravers::do_creation_processing()
+Line_group_engraver::do_creation_processing()
 {
     staffline_p_ = new Line_of_staff;
     staffline_p_->left_col_l_ = get_staff_info().command_pcol_l();
 
     // don't broadcast to self.
-    Engraver::announce_element(Score_elem_info(staffline_p_,0));
-    Engraver_group_engraver::do_creation_processing();
+    announce_element(Score_elem_info(staffline_p_,0));
 }
 
 
-IMPLEMENT_STATIC_NAME(Staff_engravers);
-IMPLEMENT_IS_TYPE_B1(Staff_engravers,Engraver_group_engraver);
-ADD_THIS_ENGRAVER(Staff_engravers);
+IMPLEMENT_STATIC_NAME(Line_group_engraver);
+IMPLEMENT_IS_TYPE_B1(Line_group_engraver,Engraver);
+ADD_THIS_ENGRAVER(Line_group_engraver);