]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/note-name-engraver.cc
patch::: 1.3.136.jcn3
[lilypond.git] / lily / note-name-engraver.cc
index c46007a16f364dbc7f4c220efd0e28b6f3c15da0..c6e0261b2c389079b4476b563886d0d7b4e22031 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1999--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
 
 class Note_name_engraver : public Engraver
 {
 public:
-  VIRTUAL_COPY_CONS(Translator);
+  VIRTUAL_COPY_CONS (Translator);
   Link_array<Note_req> req_l_arr_;
   Link_array<Item> texts_;
-  virtual bool  do_try_music (Music*m);
-  virtual void do_process_music ();
-  virtual void do_pre_move_processing ();
+  virtual bool  try_music (Music*m);
+  virtual void create_grobs ();
+  virtual void stop_translation_timestep ();
 };
 
 bool
-Note_name_engraver::do_try_music (Music *m)
+Note_name_engraver::try_music (Music *m)
 {
   if (Note_req *r = dynamic_cast<Note_req* > (m))
     {
@@ -33,35 +33,36 @@ Note_name_engraver::do_try_music (Music *m)
   return false;
 }
 
-
 void
-Note_name_engraver::do_process_music ()
+Note_name_engraver::create_grobs ()
 {
+  if (texts_.size ())
+    return;
   String s ;
   for (int i=0; i < req_l_arr_.size (); i++)
     {
       if (i)
        s += " ";
-      s += req_l_arr_[i]->pitch_.str ();
+      s += unsmob_pitch (req_l_arr_[i]->get_mus_property ("pitch"))->str ();
     }
-  if (s.length_i())
+  if (s.length_i ())
     {
-      Item * t = new Item (get_property ("basicNoteNameProperties"));
-      t->set_elt_property ("text", ly_str02scm ( s.ch_C()));
-      announce_element (Score_element_info (t, req_l_arr_[0]));
+      Item * t = new Item (get_property ("NoteName"));
+      t->set_grob_property ("text", ly_str02scm (s.ch_C ()));
+      announce_grob (t, req_l_arr_[0]);
       texts_.push (t);
     }
 }
 
 void
-Note_name_engraver::do_pre_move_processing ()
+Note_name_engraver::stop_translation_timestep ()
 {
   for (int i=0; i < texts_.size (); i++)
     {
-      typeset_element (texts_[i]);
+      typeset_grob (texts_[i]);
     }
-  texts_.clear() ;
+  texts_.clear () ;
   req_l_arr_.clear ();
 }
 
-ADD_THIS_TRANSLATOR(Note_name_engraver);
+ADD_THIS_TRANSLATOR (Note_name_engraver);