]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/dot-column-engraver.cc
add \n appropriately.
[lilypond.git] / lily / dot-column-engraver.cc
index ddbae5bf33f6bdd6cf2b71896348bc50d196ecc4..a2b1cdf3a5bfd26765499739d86681a89fadb152 100644 (file)
@@ -3,74 +3,60 @@
 
   source file of the GNU LilyPond music typesetter
 
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1998--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "rhythmic-head.hh"
 #include "dot-column.hh"
 #include "side-position-interface.hh"
 #include "engraver.hh"
 */
 
 #include "rhythmic-head.hh"
 #include "dot-column.hh"
 #include "side-position-interface.hh"
 #include "engraver.hh"
-#include "stem.hh"
+#include "translator.icc"
 
 class Dot_column_engraver : public Engraver
 {
   Grob *dotcol_;
 
 class Dot_column_engraver : public Engraver
 {
   Grob *dotcol_;
-  Grob *stem_;
-  Link_array<Item> heads_;
+  vector<Item*> heads_;
 public:
   TRANSLATOR_DECLARATIONS (Dot_column_engraver);
 
 protected:
 public:
   TRANSLATOR_DECLARATIONS (Dot_column_engraver);
 
 protected:
-  virtual void acknowledge_grob (Grob_info);
-  virtual void stop_translation_timestep ();
+
+  DECLARE_ACKNOWLEDGER (rhythmic_head);
+
+  void stop_translation_timestep ();
 };
 
 Dot_column_engraver::Dot_column_engraver ()
 {
   dotcol_ = 0;
 };
 
 Dot_column_engraver::Dot_column_engraver ()
 {
   dotcol_ = 0;
-  stem_ = 0;
 }
 
 void
 Dot_column_engraver::stop_translation_timestep ()
 {
 }
 
 void
 Dot_column_engraver::stop_translation_timestep ()
 {
-  /*
-    Add the stem to the support so dots stay clear of flags.
-
-    See [Ross, p 171]
-  */
-  if (stem_ && dotcol_)
-    dotcol_->set_object ("stem", stem_->self_scm ());
-
   dotcol_ = 0;
   heads_.clear ();
   dotcol_ = 0;
   heads_.clear ();
-  stem_ = 0;
 }
 
 void
 }
 
 void
-Dot_column_engraver::acknowledge_grob (Grob_info info)
+Dot_column_engraver::acknowledge_rhythmic_head (Grob_info info)
 {
   Grob *d = unsmob_grob (info.grob ()->get_object ("dot"));
   if (d)
     {
       if (!dotcol_)
 {
   Grob *d = unsmob_grob (info.grob ()->get_object ("dot"));
   if (d)
     {
       if (!dotcol_)
-       {
-         dotcol_ = make_item ("DotColumn", SCM_EOL);
-       }
+       dotcol_ = make_item ("DotColumn", SCM_EOL);
 
       Dot_column::add_head (dotcol_, info.grob ());
     }
 
       Dot_column::add_head (dotcol_, info.grob ());
     }
-  else if (Stem::has_interface (info.grob ()))
-    {
-      stem_ = info.grob ();
-    }
 }
 
 }
 
+
+ADD_ACKNOWLEDGER (Dot_column_engraver, rhythmic_head);
 ADD_TRANSLATOR (Dot_column_engraver,
 ADD_TRANSLATOR (Dot_column_engraver,
-               /* descr */ "Engraves dots on dotted notes shifted to the right of the note.\n"
+               /* doc */ "Engraves dots on dotted notes shifted to the right of the note.\n"
                "If omitted, then dots appear on top of the notes.",
                "If omitted, then dots appear on top of the notes.",
-               /* creats*/ "DotColumn",
-               /* accepts */ "",
-               /* acks  */ "rhythmic-head-interface dot-column-interface stem-interface",
-               /* reads */ "",
+               /* create */ "DotColumn",
+               /* accept */ "",
+               /* read */ "",
                /* write */ "");
                /* write */ "");