X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpitch-squash-engraver.cc;h=d8a4a828de6ce426b6fdf69e9e1975517abc2084;hb=28976d28a04cfb9abe97af7214d7dce11f732604;hp=543ca8959468cffb2117def8849cb82bbd5fc505;hpb=5175fb07679b964a62202f6c900451e88d120f69;p=lilypond.git diff --git a/lily/pitch-squash-engraver.cc b/lily/pitch-squash-engraver.cc index 543ca89594..d8a4a828de 100644 --- a/lily/pitch-squash-engraver.cc +++ b/lily/pitch-squash-engraver.cc @@ -3,24 +3,48 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2000 Han-Wen Nienhuys + (c) 1997--2004 Han-Wen Nienhuys */ #include "staff-symbol-referencer.hh" #include "note-head.hh" -#include "pitch-squash-engraver.hh" #include "rhythmic-head.hh" +#include "engraver.hh" + +class Pitch_squash_engraver : public Engraver { +public: + TRANSLATOR_DECLARATIONS (Pitch_squash_engraver); + virtual void acknowledge_grob (Grob_info); +}; + void -Pitch_squash_engraver::acknowledge_element (Score_element_info i) +Pitch_squash_engraver::acknowledge_grob (Grob_info i) { SCM newpos = get_property ("squashedPosition"); - if (Note_head::has_interface (i.elem_l_)) + if (is_number (newpos) + && Note_head::has_interface (i.grob_)) { - i.elem_l_->set_elt_property ("staff-position", newpos); + i.grob_->set_property ("staff-position", newpos); } } -ADD_THIS_TRANSLATOR (Pitch_squash_engraver); +Pitch_squash_engraver::Pitch_squash_engraver () +{ +} + +ENTER_DESCRIPTION (Pitch_squash_engraver, +/* descr */ + "Set the vertical position of noteheads to " + "@code{squashedPosition}, if that " + "property is set. " + "This can be used to make a single line staff " + "demonstrating the rhythm of a melody.", + +/* creats*/ "", +/* accepts */ "", +/* acks */ "note-head-interface", +/* reads */ "squashedPosition", +/* write */ "");