]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-column-engraver.cc
Run `make grand-replace'.
[lilypond.git] / lily / paper-column-engraver.cc
index 1396c1280d94f8815e0ce6ba32f5ee26fd41bd52..df3723fb79dd327ae318666e2fba568bc00360b8 100644 (file)
@@ -3,13 +3,14 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "paper-column-engraver.hh"
 #include "system.hh"
 #include "international.hh"
 #include "accidental-placement.hh"
+#include "accidental-interface.hh"
 #include "axis-group-interface.hh"
 #include "context.hh"
 #include "note-spacing.hh"
@@ -196,14 +197,14 @@ Paper_column_engraver::stop_translation_timestep ()
       Item *elem = items_[i];
       Grob *col = Item::is_non_musical (elem) ? command_column_ : musical_column_;
 
-      if (!elem->get_parent (X_AXIS)
-         || !unsmob_grob (elem->get_object ("axis-group-parent-X")))
-       {
-         Axis_group_interface::add_element (col, elem);
-       }
-      else if (Accidental_placement::has_interface (elem))
+      if (!elem->get_parent (X_AXIS))
+       elem->set_parent (col, X_AXIS);
+      if (!unsmob_grob (elem->get_object ("axis-group-parent-X")))
+       elem->set_object ("axis-group-parent-X", col->self_scm ());
+
+      if (Accidental_placement::has_interface (elem))
        Separation_item::add_conditional_item (col, elem);
-      else
+      else if (!Accidental_interface::has_interface (elem))
        Separation_item::add_item (col, elem);
     }
   items_.clear ();
@@ -217,7 +218,8 @@ Paper_column_engraver::stop_translation_timestep ()
        {
          SCM perm = break_events_[i]->get_property ("break-permission");
          if (perm == ly_symbol2scm ("force") || perm == ly_symbol2scm ("allow"))
-           warning (_f ("forced break was overridden by some other event, should you be using bar checks?"));
+           warning (_ ("forced break was overridden by some other event, "
+                       "should you be using bar checks?"));
        }
     }
   else if (Paper_column::is_breakable (command_column_))
@@ -262,21 +264,25 @@ ADD_ACKNOWLEDGER (Paper_column_engraver, note_spacing);
 ADD_ACKNOWLEDGER (Paper_column_engraver, staff_spacing);
 
 ADD_TRANSLATOR (Paper_column_engraver,
-               /* doc */ "Takes care of generating columns."
-               "\n\n "
-               "This engraver decides whether a column is breakable. The default is "
-               "that a column is always breakable. However, every Bar_engraver "
-               "that does not have a barline at a certain point will set forbidBreaks "
-                "in the score context to stop linebreaks.  In practice, this "
-               "means that you can make a breakpoint by creating a barline (assuming "
-               "that there are no beams or notes that prevent a breakpoint.) ",
+               /* doc */
+               "Take care of generating columns.\n"
+               "\n"
+               "This engraver decides whether a column is breakable.  The"
+               " default is that a column is always breakable.  However,"
+               " every @code{Bar_engraver} that does not have a barline at a"
+               " certain point will set @code{forbidBreaks} in the score"
+               " context to stop line breaks.  In practice, this means that"
+               " you can make a break point by creating a bar line (assuming"
+               " that there are no beams or notes that prevent a break"
+               " point).",
                
                /* create */
                "PaperColumn "
-               "NonMusicalPaperColumn",
+               "NonMusicalPaperColumn ",
+
                /* read */
-                "forbidBreak "
-               ,
+                "forbidBreak ",
+
                /* write */
                 "forbidBreak "
                "currentCommandColumn "