]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/new-fingering-engraver.cc
lilypond-manuals.css: edit color scheme and some spacing
[lilypond.git] / lily / new-fingering-engraver.cc
index bcb7766a4cffeb685615f4fce86370b20034701b..06a3a8da9666669d7ab2d95672f167158887fe1b 100644 (file)
@@ -71,9 +71,9 @@ public:
   TRANSLATOR_DECLARATIONS (New_fingering_engraver);
 protected:
   void stop_translation_timestep ();
-  DECLARE_ACKNOWLEDGER (rhythmic_head);
-  DECLARE_ACKNOWLEDGER (inline_accidental);
-  DECLARE_ACKNOWLEDGER (stem);
+  void acknowledge_rhythmic_head (Grob_info);
+  void acknowledge_inline_accidental (Grob_info);
+  void acknowledge_stem (Grob_info);
   void add_fingering (Grob *, SCM,
                       vector<Finger_tuple> *,
                       Stream_event *, Stream_event *);
@@ -99,7 +99,7 @@ New_fingering_engraver::acknowledge_rhythmic_head (Grob_info inf)
 
   for (SCM s = arts; scm_is_pair (s); s = scm_cdr (s))
     {
-      Stream_event *ev = Stream_event::unsmob (scm_car (s));
+      Stream_event *ev = unsmob<Stream_event> (scm_car (s));
 
       if (!ev)
         continue;
@@ -132,7 +132,7 @@ New_fingering_engraver::acknowledge_rhythmic_head (Grob_info inf)
       else if (ev->in_event_class ("harmonic-event"))
         {
           inf.grob ()->set_property ("style", ly_symbol2scm ("harmonic"));
-          Grob *d = Grob::unsmob (inf.grob ()->get_object ("dot"));
+          Grob *d = unsmob<Grob> (inf.grob ()->get_object ("dot"));
           if (d && !to_boolean (get_property ("harmonicDots")))
             d->suicide ();
         }
@@ -176,9 +176,7 @@ New_fingering_engraver::add_fingering (Grob *head,
 {
   Finger_tuple ft;
 
-  ft.script_ = internal_make_item (grob_sym, event->self_scm (),
-                                   ly_symbol2string (grob_sym).c_str (),
-                                   __FILE__, __LINE__, __FUNCTION__);
+  ft.script_ = make_item (grob_sym, event->self_scm ());
 
   Side_position_interface::add_support (ft.script_, head);
 
@@ -197,7 +195,7 @@ New_fingering_engraver::position_scripts (SCM orientations,
     if (stem_)
       {
         Side_position_interface::add_support (scripts->at (i).script_, stem_);
-        if (Grob *flag = Grob::unsmob (stem_->get_object ("flag")))
+        if (Grob *flag = unsmob<Grob> (stem_->get_object ("flag")))
           Side_position_interface::add_support (scripts->at (i).script_, flag);
       }
 
@@ -281,12 +279,12 @@ New_fingering_engraver::position_scripts (SCM orientations,
       f->set_parent (ft.head_, Y_AXIS);
       f->set_property ("avoid-slur", ly_symbol2scm ("inside"));
       if (hordir == LEFT
-          && Grob::is_smob (ft.head_->get_object ("accidental-grob")))
+          && unsmob<Grob> (ft.head_->get_object ("accidental-grob")))
         Side_position_interface::add_support (f,
-                                              Grob::unsmob (ft.head_->get_object ("accidental-grob")));
-      else if (Grob::is_smob (ft.head_->get_object ("dot")))
+                                              unsmob<Grob> (ft.head_->get_object ("accidental-grob")));
+      else if (unsmob<Grob> (ft.head_->get_object ("dot")))
         Side_position_interface::add_support (f,
-                                              Grob::unsmob (ft.head_->get_object ("dot")));
+                                              unsmob<Grob> (ft.head_->get_object ("dot")));
 
       Self_alignment_interface::set_aligned_on_parent (f, Y_AXIS);
       Side_position_interface::set_axis (f, X_AXIS);
@@ -366,14 +364,20 @@ New_fingering_engraver::position_all ()
   articulations_.clear ();
 }
 
-New_fingering_engraver::New_fingering_engraver ()
+New_fingering_engraver::New_fingering_engraver (Context *c)
+  : Engraver (c)
 {
   stem_ = 0;
 }
 
-ADD_ACKNOWLEDGER (New_fingering_engraver, rhythmic_head);
-ADD_ACKNOWLEDGER (New_fingering_engraver, inline_accidental);
-ADD_ACKNOWLEDGER (New_fingering_engraver, stem);
+
+void
+New_fingering_engraver::boot ()
+{
+  ADD_ACKNOWLEDGER (New_fingering_engraver, rhythmic_head);
+  ADD_ACKNOWLEDGER (New_fingering_engraver, inline_accidental);
+  ADD_ACKNOWLEDGER (New_fingering_engraver, stem);
+}
 
 ADD_TRANSLATOR (New_fingering_engraver,
                 /* doc */