]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/note-name-engraver.cc
release: 1.3.110
[lilypond.git] / lily / note-name-engraver.cc
index a87cea19ff94e366aba658f3f023a221f8c3cbf6..ed76699feb36fd0f87c57abeef760ba97e02a6cb 100644 (file)
@@ -3,27 +3,27 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
 
 #include "engraver.hh"
 #include "musical-request.hh"
-#include "text-item.hh"
+#include "item.hh"
 
 class Note_name_engraver : public Engraver
 {
 public:
   VIRTUAL_COPY_CONS(Translator);
   Link_array<Note_req> req_l_arr_;
-  Link_array<Text_item> texts_;
-  virtual bool  do_try_music (Music*m);
-  virtual void do_process_requests ();
-  virtual void do_pre_move_processing ();
+  Link_array<Item> texts_;
+  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,32 +33,33 @@ Note_name_engraver::do_try_music (Music *m)
   return false;
 }
 
-
 void
-Note_name_engraver::do_process_requests ()
+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())
     {
-      Text_item * t = new Text_item;
-      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() ;
   req_l_arr_.clear ();