]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/bar-engraver.cc
trem fix
[lilypond.git] / lily / bar-engraver.cc
index f298b9f6676eae02e5160cd5c47c6d0465d54301..864caaa82762ee9def1a835085f83ecc5db986e4 100644 (file)
@@ -3,11 +3,11 @@
 
   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>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
-#include "bar.hh"
+#include "bar-line.hh"
 #include "score-engraver.hh"
 #include "musical-request.hh"
 #include "engraver-group-engraver.hh"
@@ -22,8 +22,7 @@
 class Bar_engraver : public Engraver
 {
 public:
-  Bar_engraver ();
-  VIRTUAL_COPY_CONS (Translator);
+  TRANSLATOR_DECLARATIONS(  Bar_engraver );
   void request_bar (String type_str);
     
 protected:
@@ -54,7 +53,7 @@ Bar_engraver::create_bar ()
       if (scm_equal_p (gl, bar_p_->get_grob_property ("glyph")) != SCM_BOOL_T)
          bar_p_->set_grob_property ("glyph", gl);
       
-      announce_grob (bar_p_, 0);
+      announce_grob(bar_p_, SCM_EOL);
     }
 }
 
@@ -95,20 +94,17 @@ Bar_engraver::stop_translation_timestep ()
 {
   if (!bar_p_)
     {
-      Score_engraver * e = 0;
-      Translator * t  =  daddy_grav_l ();
-      for (; !e && t;  t = t->daddy_trans_l_)
-       {
-         e = dynamic_cast<Score_engraver*> (t);
-       }
-
-      if (!e)
-       programming_error ("No score engraver!");
-      else
-       e->forbid_breaks ();    // guh. Use properties!
+      top_engraver ()->forbid_breaks ();       // guh. Use properties!
     }
   else
     typeset_bar ();
 }
 
-ADD_THIS_TRANSLATOR (Bar_engraver);
+
+ENTER_DESCRIPTION(Bar_engraver,
+/* descr */       "Create barlines. This engraver is controlled through the
+@code{whichBar} property. If it has no bar line to create, it will forbid a linebreak at this point",
+/* creats*/       "BarLine",
+/* acks  */       "",
+/* reads */       "whichBar",
+/* write */       "");