]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.73pre
authorfred <fred>
Sun, 24 Mar 2002 19:47:07 +0000 (19:47 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:47:07 +0000 (19:47 +0000)
lily/include/vertical-align-grav.hh [new file with mode: 0644]
lily/score-grav.cc
lily/scoreline.cc

diff --git a/lily/include/vertical-align-grav.hh b/lily/include/vertical-align-grav.hh
new file mode 100644 (file)
index 0000000..3727882
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+  vertical-align-grav.hh -- declare Vertical_align_engraver
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef VERTICAL_ALIGN_GRAV_HH
+#define VERTICAL_ALIGN_GRAV_HH
+
+#include "engraver.hh"
+
+class Vertical_align_engraver : public Engraver {
+    Vertical_align_spanner * valign_p_;
+    
+public:
+    NAME_MEMBERS();
+    Vertical_align_engraver();
+protected:
+   virtual void acknowledge_element(Score_elem_info);
+   virtual void do_creation_processing();
+   virtual void do_removal_processing();
+};
+
+#endif // VERTICAL_ALIGN_GRAV_HH
index 5db578293c96e79b4cd69a00412736dc05e9254d..ee3b325a00b77fa2278e0591e06db7957fddf4a4 100644 (file)
@@ -96,11 +96,8 @@ Score_engraver::announce_element(Score_elem_info info)
     info.origin_grav_l_arr_.push(this);
     if (info.elem_l_->name() == Bar::static_name()) {
        get_staff_info().command_pcol_l()->set_breakable();
-    } else if ( info.elem_l_->is_type_b( Line_of_staff::static_name() ) &&
-               !scoreline_l_->contains_b( info.elem_l_) )
-       
-       scoreline_l_->add(info.elem_l_);
-    
+    } 
+        
     announce_info_arr_.push(info);
 }
 void
@@ -152,7 +149,7 @@ Score_engraver::typeset_all()
 
     for  (int i =0; i < nobreak_item_p_arr_.size(); i++) {
        ps_l->typeset_item(nobreak_item_p_arr_[i], c, 0);
-       scoreline_l_->add(nobreak_item_p_arr_[i]);
+       scoreline_l_->add_dependency(nobreak_item_p_arr_[i]);
     }
     nobreak_item_p_arr_.set_size(0);
     
@@ -204,7 +201,7 @@ bool
 Score_engraver::do_try_request(Request*r)
 {
     bool gotcha = false;  
-    for (int i =0; !gotcha && i < nongroup_l_arr_.size() ; i++)
+    for ( int i =0; !gotcha && i < nongroup_l_arr_.size() ; i++)
        gotcha = nongroup_l_arr_[i]->try_request(r);
   
     return gotcha;
index 5449b32b1ceba063acdc6fd5cc199028b8fdf22a..a9961f05920f080a96149a92a1fef63bc1d95826 100644 (file)
@@ -70,18 +70,12 @@ Line_of_score::Line_of_score()
 
 
 IMPLEMENT_STATIC_NAME(Line_of_score);
-IMPLEMENT_IS_TYPE_B2(Line_of_score,Spanner,Vertical_align_elem);
+IMPLEMENT_IS_TYPE_B1(Line_of_score,Spanner);
 
 void
 Line_of_score::add(Score_elem*e)
 {
-    if (e->is_type_b( Line_of_staff::static_name()) 
-           && ! Vertical_align_elem::contains_b( e) ) 
-           
-       Vertical_align_elem::add(e);
-    else { 
-       add_dependency(e);
-    }
+    add_dependency(e);
 }
 
 bool
@@ -157,10 +151,3 @@ Line_of_score::do_width()const
 { 
     return Spanner::do_width();
 }
-
-void
-Line_of_score::do_substitute_dependency(Score_elem*o,Score_elem*n)
-{
-    Spanner::do_substitute_dependency(o,n);
-    Vertical_align_elem::do_substitute_dependency(o,n);
-}