]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/stanza-number-engraver.cc
Warn about only one slur at once.
[lilypond.git] / lily / stanza-number-engraver.cc
index f5d7257154dd05e16b21a14f0a15bc5d65fabd3e..2f77b5d4f74e1c8f286162cea87ca0f66c4305c4 100644 (file)
@@ -1,14 +1,12 @@
-/*   
-  lyric-number-engraver.cc --  implement Stanza_number_engraver
-  
+/*
+  lyric-number-engraver.cc -- implement Stanza_number_engraver
+
   source file of the GNU LilyPond music typesetter
-  
-  (c) 2000--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>, Glen Prideaux <glenprideaux@iname.com>
 
+  (c) 2000--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>, Glen Prideaux <glenprideaux@iname.com>
 */
 
 #include "engraver.hh"
-#include "item.hh"
 #include "side-position-interface.hh"
 
 class Stanza_number_engraver : public Engraver
@@ -19,21 +17,20 @@ class Stanza_number_engraver : public Engraver
     This is naughty, since last_stanza_ may be GCd from under us.  But
     since we don't look at the contents, we are/should be (knock on
     wood) OK.
-   */
+  */
   SCM last_stanza_;
 public:
-  TRANSLATOR_DECLARATIONS(Stanza_number_engraver);
+  TRANSLATOR_DECLARATIONS (Stanza_number_engraver);
   virtual void process_music ();
   virtual void stop_translation_timestep ();
   virtual void acknowledge_grob (Grob_info);
 };
 
-
 /*
   TODO: should make engraver that collects all the stanzas on a higher
   level, and then groups them to the side. Stanza numbers should be
   all aligned.
- */
+*/
 
 Stanza_number_engraver::Stanza_number_engraver ()
 {
@@ -44,18 +41,16 @@ void
 Stanza_number_engraver::process_music ()
 {
   SCM stanza = get_property ("stanza");
-  
-  if (gh_string_p (stanza) && stanza != last_stanza_)
+
+  if (scm_is_string (stanza) && stanza != last_stanza_)
     {
       last_stanza_ = stanza;
-      
-      text_ = make_item ("StanzaNumber");
-      text_->set_grob_property ("text", stanza);
-      announce_grob (text_, SCM_EOL);
+
+      text_ = make_item ("StanzaNumber", SCM_EOL);
+      text_->set_property ("text", stanza);
     }
 }
 
-
 void
 Stanza_number_engraver::acknowledge_grob (Grob_info inf)
 {
@@ -69,18 +64,13 @@ Stanza_number_engraver::acknowledge_grob (Grob_info inf)
 void
 Stanza_number_engraver::stop_translation_timestep ()
 {
-  if (text_)
-    {
-      typeset_grob (text_);
-      text_ = 0;
-    }
+  text_ = 0;
 }
 
-
-ENTER_DESCRIPTION(Stanza_number_engraver,
-/* descr */       "",
-/* creats*/       "StanzaNumber",
-/* accepts */     "",
-/* acks  */      "lyric-syllable-interface",
-/* reads */       "stanza",
-/* write */       "");
+ADD_TRANSLATOR (Stanza_number_engraver,
+               /* descr */ "",
+               /* creats*/ "StanzaNumber",
+               /* accepts */ "",
+               /* acks  */ "lyric-syllable-interface",
+               /* reads */ "stanza",
+               /* write */ "");