source file of the GNU LilyPond music typesetter
- (c) 2000--2005 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 2000--2008 Jan Nieuwenhuizen <janneke@gnu.org>
*/
#include "engraver.hh"
#include "side-position-interface.hh"
#include "staff-symbol-referencer.hh"
#include "context.hh"
+#include "spanner.hh"
+#include "item.hh"
+
/**
Create line-spanner grobs for lines that connect note heads.
TRANSLATOR_DECLARATIONS (Note_head_line_engraver);
protected:
- DECLARE_ACKNOWLEDGER(rhythmic_head);
+ DECLARE_ACKNOWLEDGER (rhythmic_head);
void process_acknowledged ();
void stop_translation_timestep ();
Note_head_line_engraver::acknowledge_rhythmic_head (Grob_info info)
{
head_ = info.grob ();
- if (to_boolean (get_property ("followVoice")))
+ Context *tr = context ();
+
+ while (tr && !tr->is_alias (ly_symbol2scm ("Staff")))
+ tr = tr->get_parent_context ();
+
+ if (tr
+ && tr->is_alias (ly_symbol2scm ("Staff")) && tr != last_staff_
+ && to_boolean (get_property ("followVoice")))
{
- Context *tr = context ();
- while (tr && !tr->is_alias (ly_symbol2scm ("Staff")))
- tr = tr->get_parent_context ();
-
- if (tr
- && tr->is_alias (ly_symbol2scm ("Staff")) && tr != last_staff_)
- {
- if (last_head_)
- follow_ = true;
- last_staff_ = tr;
- }
+ if (last_head_)
+ follow_ = true;
}
+ last_staff_ = tr;
}
void
}
#include "translator.icc"
-ADD_ACKNOWLEDGER(Note_head_line_engraver, rhythmic_head);
+
+ADD_ACKNOWLEDGER (Note_head_line_engraver, rhythmic_head);
ADD_TRANSLATOR (Note_head_line_engraver,
- /* descr */ "Engrave a line between two note heads, for example a glissando. If "
- " followVoice is set, staff switches also generate a line.",
- /* creats*/ "Glissando VoiceFollower",
- /* accepts */ "glissando-event",
- /* reads */ "followVoice",
- /* write */ "");
+ /* doc */
+ "Engrave a line between two note heads, for example a"
+ " glissando. If @code{followVoice} is set, staff switches"
+ " also generate a line.",
+
+ /* create */
+ "Glissando "
+ "VoiceFollower ",
+
+ /* read */
+ "followVoice ",
+
+ /* write */
+ ""
+ );