2
pitch-squash-grav.cc -- implement Pitch_squash_engraver
2
pitch-squash-engraver.cc -- implement Pitch_squash_engraver
4
4
source file of the GNU LilyPond music typesetter
6
(c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
6
(c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
9
8
#include "staff-symbol-referencer.hh"
10
9
#include "note-head.hh"
11
10
#include "rhythmic-head.hh"
12
11
#include "engraver.hh"
14
class Pitch_squash_engraver : public Engraver {
13
class Pitch_squash_engraver : public Engraver
16
16
TRANSLATOR_DECLARATIONS (Pitch_squash_engraver);
17
virtual void acknowledge_grob (Grob_info);
17
DECLARE_ACKNOWLEDGER (note_head);
22
Pitch_squash_engraver::acknowledge_grob (Grob_info i)
21
Pitch_squash_engraver::acknowledge_note_head (Grob_info i)
24
23
SCM newpos = get_property ("squashedPosition");
25
if (gh_number_p (newpos)
26
&& Note_head::has_interface (i.grob_))
28
i.grob_->set_property ("staff-position", newpos);
24
if (scm_is_number (newpos))
25
i.grob ()->set_property ("staff-position", newpos);
34
28
Pitch_squash_engraver::Pitch_squash_engraver ()
38
ENTER_DESCRIPTION (Pitch_squash_engraver,
40
"Set the vertical position of noteheads to "
41
"@code{squashedPosition}, if that "
43
"This can be used to make a single line staff "
44
"demonstrating the rhythm of a melody.",
32
#include "translator.icc"
33
ADD_ACKNOWLEDGER (Pitch_squash_engraver, note_head);
34
ADD_TRANSLATOR (Pitch_squash_engraver,
36
"Set the vertical position of noteheads to "
37
"@code{squashedPosition}, if that "
39
"This can be used to make a single line staff "
40
"demonstrating the rhythm of a melody.",
48
/* acks */ "note-head-interface",
49
/* reads */ "squashedPosition",
44
/* read */ "squashedPosition",