]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/default-bar-line-engraver.cc
Issue 5167/6: Changes: show \markup xxx = ... \etc assignments
[lilypond.git] / lily / default-bar-line-engraver.cc
index 733e8afe5b74bb8055bd196aa175a0663dcb9779..f3d1d595057499d390e02fe72f76357d3f075816 100644 (file)
@@ -1,18 +1,27 @@
 /*
-  timing-engraver.cc -- implement Default_bar_line_engraver
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 1997--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "engraver.hh"
 #include "context.hh"
-#include "multi-measure-rest.hh"
 #include "grob.hh"
 #include "warn.hh"
 
-
 class Default_bar_line_engraver : public Engraver
 {
 protected:
@@ -28,19 +37,36 @@ public:
 
 #include "translator.icc"
 
+void
+Default_bar_line_engraver::boot ()
+{
+
+}
+
 ADD_TRANSLATOR (Default_bar_line_engraver,
-               "This engraver determines what kind of automatic bar lines should be produced, "
-               "and sets @code{whichBar} accordingly. It should be at the same "
-               "level as @ref{Timing_translator}. ",  
-               /* create */ "",
-               /* accept */ "",
-               /* read */ 
-               "measurePosition automaticBars whichBar barAlways defaultBarType "
-               "measureLength",
-               /* write */ "automaticBars");
-
-
-Default_bar_line_engraver::Default_bar_line_engraver ()
+                /* doc */
+                "This engraver determines what kind of automatic bar lines"
+                " should be produced, and sets @code{whichBar} accordingly."
+                "  It should be at the same level as @ref{Timing_translator}.",
+
+                /* create */
+                "",
+
+                /* read */
+                "automaticBars "
+                "barAlways "
+                "defaultBarType "
+                "measureLength "
+                "whichBar "
+                "measurePosition "
+                "timing ",
+
+                /* write */
+                ""
+               );
+
+Default_bar_line_engraver::Default_bar_line_engraver (Context *c)
+  : Engraver (c)
 {
   last_moment_.main_part_ = Rational (-1);
 }
@@ -58,18 +84,19 @@ Default_bar_line_engraver::start_translation_timestep ()
 
   Moment mp = measure_position (context ());
   bool start_of_measure = (last_moment_.main_part_ != now.main_part_
-                          && !mp.main_part_);
+                           && !mp.main_part_
+                           && to_boolean (get_property ("timing")));
 
   if (!scm_is_string (which) && to_boolean (automatic_bars))
     {
       SCM always = get_property ("barAlways");
 
       if ((start_of_measure && last_moment_.main_part_ >= Moment (0))
-         || to_boolean (always))
-       {
-         /* should this work, or be junked?  See input/bugs/no-bars.ly */
-         which = get_property ("defaultBarType");
-       }
+          || to_boolean (always))
+        {
+          /* should this work, or be junked?  See input/bugs/no-bars.ly */
+          which = get_property ("defaultBarType");
+        }
     }
 
   context ()->set_property ("whichBar", which);