]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/dots-engraver.cc
lilypond-manuals.css: edit color scheme and some spacing
[lilypond.git] / lily / dots-engraver.cc
index dba6fe6822d3099cb35bc0519f8446ea065c8890..eb0f48722637577644b3274ce7c03e0747233fc8 100644 (file)
@@ -1,10 +1,20 @@
-/* 
-  dots-engraver.cc -- implement Dots_engraver
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 2006--2008 Han-Wen Nienhuys <hanwen@lilypond.org>
-  
+/*
+  This file is part of LilyPond, the GNU music typesetter.
+
+  Copyright (C) 2006--2015 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "engraver.hh"
 
 #include "translator.icc"
 
-
-class Dots_engraver : public Engraver 
+class Dots_engraver : public Engraver
 {
-  DECLARE_ACKNOWLEDGER (rhythmic_head);
+  void acknowledge_rhythmic_head (Grob_info);
   TRANSLATOR_DECLARATIONS (Dots_engraver);
 };
 
-Dots_engraver::Dots_engraver ()
+Dots_engraver::Dots_engraver (Context *c)
+  : Engraver (c)
 {
 }
 
@@ -34,33 +44,36 @@ Dots_engraver::acknowledge_rhythmic_head (Grob_info gi)
     return;
 
   Grob *note = gi.grob ();
-  if (unsmob_grob (note->get_object ("dot")))
+  if (unsmob<Grob> (note->get_object ("dot")))
     return;
-  
-  Duration *dur = unsmob_duration (cause->get_property ("duration"));
+
+  Duration *dur = unsmob<Duration> (cause->get_property ("duration"));
   if (dur && dur->dot_count ())
     {
       Item *d = make_item ("Dots", note->self_scm ());
       Rhythmic_head::set_dots (note, d);
 
-      d->set_property ("dot-count", scm_from_int (dur->dot_count ()));
       d->set_parent (note, Y_AXIS);
     }
 }
 
 
-ADD_ACKNOWLEDGER (Dots_engraver, rhythmic_head);
+void
+Dots_engraver::boot ()
+{
+  ADD_ACKNOWLEDGER (Dots_engraver, rhythmic_head);
+}
 
 ADD_TRANSLATOR (Dots_engraver,
-               "Create @ref{Dots} objects for"
-               " @ref{rhythmic-head-interface}s.",
-
-               /* create */
-               "Dots ",
-
-               /* read */
-               "",
-              
-               /* write */
-               ""
-               );
+                "Create @ref{Dots} objects for"
+                " @ref{rhythmic-head-interface}s.",
+
+                /* create */
+                "Dots ",
+
+                /* read */
+                "",
+
+                /* write */
+                ""
+               );