]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/span-bar-engraver.cc
release: 1.5.29
[lilypond.git] / lily / span-bar-engraver.cc
index 9d110e8a6312fd3886713caa202ffe521b219a27..e3b4778e4ef485422cefb9480e5add9279370558 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c)  1997--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
@@ -16,9 +16,9 @@
 
 /** 
 
-  Make bars that span multiple "staffs". Catch bars, and span a
+  Make bars that span multiple "staves". Catch bars, and span a
   Span_bar over them if we find more than 2 bars.  Vertical alignment
-  of staffs changes the appearance of spanbars.  It is up to the
+  of staves changes the appearance of spanbars.  It is up to the
   aligner (Vertical_align_engraver, in this case, to add extra
   dependencies to the spanbars.
 
@@ -29,8 +29,7 @@ class Span_bar_engraver : public Engraver
   Link_array<Item> bar_l_arr_;
 
 public:
-  VIRTUAL_COPY_CONS (Translator);
-  Span_bar_engraver ();
+  TRANSLATOR_DECLARATIONS(Span_bar_engraver);
 protected:
   virtual void acknowledge_grob (Grob_info);
   virtual void stop_translation_timestep ();
@@ -50,9 +49,9 @@ Span_bar_engraver::acknowledge_grob (Grob_info i)
 {
   int depth = i.origin_trans_l_arr (this).size ();
   if (depth > 1
-      && Bar::has_interface (i.elem_l_))
+      && Bar::has_interface (i.grob_l_))
     {
-      Item * it = dynamic_cast<Item*> (i.elem_l_);
+      Item * it = dynamic_cast<Item*> (i.grob_l_);
       bar_l_arr_.push (it);
 
       if (bar_l_arr_.size () >= 2 && !spanbar_p_) 
@@ -74,9 +73,9 @@ Span_bar_engraver::stop_translation_timestep ()
        Span_bar::add_bar (spanbar_p_,bar_l_arr_[i]);
 
       SCM vissym =ly_symbol2scm ("visibility-lambda");
-      SCM vis = bar_l_arr_[0]->get_grob_property (vissym);       
-      if (scm_equal_p (spanbar_p_->get_grob_property (vissym), vis) != SCM_BOOL_T)
-       spanbar_p_->set_grob_property (vissym, vis);
+      SCM vis = bar_l_arr_[0]->internal_get_grob_property (vissym);      
+      if (scm_equal_p (spanbar_p_->internal_get_grob_property (vissym), vis) != SCM_BOOL_T)
+       spanbar_p_->internal_set_grob_property (vissym, vis);
 
       typeset_grob (spanbar_p_);
       spanbar_p_ =0;
@@ -86,7 +85,14 @@ Span_bar_engraver::stop_translation_timestep ()
 
 
 
-ADD_THIS_TRANSLATOR (Span_bar_engraver);
 
 
 
+
+ENTER_DESCRIPTION(Span_bar_engraver,
+/* descr */       "This engraver makes cross-staff barlines: It catches all normal
+bar lines, and draws a single span-bar across them.",
+/* creats*/       "SpanBar",
+/* acks  */       "bar-line-interface",
+/* reads */       "",
+/* write */       "");