]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/stanza-number-align-engraver.cc
* The grand 2005-2006 replace.
[lilypond.git] / lily / stanza-number-align-engraver.cc
index 16d2e073d230111b2275eb93ca26d0fa598c0208..2b98915a21579831046c748f2768f3d1a997595a 100644 (file)
@@ -1,19 +1,20 @@
-
 /*
-  stanza-number-align-engraver.cc -- implement
+  stanza-number-align-engraver.cc -- implement Stanza_number_align_engraver
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
 #include "engraver.hh"
 #include "note-head.hh"
 #include "lyric-extender.hh"
-#include "group-interface.hh"
+#include "pointer-group-interface.hh"
 #include "side-position-interface.hh"
 
+#include "translator.icc"
+
 class Stanza_number_align_engraver : public Engraver
 {
 public:
@@ -22,8 +23,10 @@ public:
 protected:
   Link_array<Grob> lyrics_;
   Link_array<Grob> stanza_numbers_;
-  virtual void acknowledge_grob (Grob_info);
-  virtual void stop_translation_timestep ();
+
+  DECLARE_ACKNOWLEDGER (lyric_syllable);
+  DECLARE_ACKNOWLEDGER (stanza_number);
+  void stop_translation_timestep ();
 };
 
 Stanza_number_align_engraver::Stanza_number_align_engraver ()
@@ -31,14 +34,17 @@ Stanza_number_align_engraver::Stanza_number_align_engraver ()
 }
 
 void
-Stanza_number_align_engraver::acknowledge_grob (Grob_info gi)
+Stanza_number_align_engraver::acknowledge_lyric_syllable (Grob_info gi)
 {
-  Grob *h = gi.grob_;
+  Grob *h = gi.grob ();
+  lyrics_.push (h);
+}
 
-  if (h->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface")))
-    lyrics_.push (h);
-  else if (h->internal_has_interface (ly_symbol2scm ("stanza-number-interface")))
-    stanza_numbers_.push (h);
+void
+Stanza_number_align_engraver::acknowledge_stanza_number (Grob_info gi)
+{
+  Grob *h = gi.grob ();
+  stanza_numbers_.push (h);
 }
 
 void
@@ -52,11 +58,12 @@ Stanza_number_align_engraver::stop_translation_timestep ()
   lyrics_.clear ();
 }
 
+ADD_ACKNOWLEDGER (Stanza_number_align_engraver, lyric_syllable);
+ADD_ACKNOWLEDGER (Stanza_number_align_engraver, stanza_number);
 ADD_TRANSLATOR (Stanza_number_align_engraver,
                "This engraver ensures that stanza numbers are neatly aligned. ",
                "",
                "",
-               "stanza-number-interface lyric-syllable-interface ",
-               "",
+               " ",
                "");