2 dots-engraver.cc -- implement Dots_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
10 #include "engraver.hh"
11 #include "duration.hh"
13 #include "rhythmic-head.hh"
14 #include "stream-event.hh"
16 #include "translator.icc"
19 class Dots_engraver
: public Engraver
21 DECLARE_ACKNOWLEDGER (rhythmic_head
);
22 TRANSLATOR_DECLARATIONS (Dots_engraver
);
25 Dots_engraver::Dots_engraver ()
30 Dots_engraver::acknowledge_rhythmic_head (Grob_info gi
)
32 Stream_event
*cause
= gi
.event_cause ();
36 Grob
*note
= gi
.grob ();
37 if (unsmob_grob (note
->get_object ("dot")))
40 Duration
*dur
= unsmob_duration (cause
->get_property ("duration"));
41 if (dur
&& dur
->dot_count ())
43 Item
*d
= make_item ("Dots", note
->self_scm ());
44 Rhythmic_head::set_dots (note
, d
);
46 d
->set_parent (note
, Y_AXIS
);
51 ADD_ACKNOWLEDGER (Dots_engraver
, rhythmic_head
);
53 ADD_TRANSLATOR (Dots_engraver
,
54 "Create @ref{Dots} objects for"
55 " @ref{rhythmic-head-interface}s.",