/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2002--2011 Juergen Reuter <reuter@ipd.uka.de>
+ Copyright (C) 2002--2014 Juergen Reuter <reuter@ipd.uka.de>
Han-Wen Nienhuys <hanwen@xs4all.nl
{
ambitus_ = make_item ("AmbitusLine", SCM_EOL);
group_ = make_item ("Ambitus", SCM_EOL);
- Direction d = DOWN;
- do
+ for (DOWN_and_UP (d))
{
heads_[d] = make_item ("AmbitusNoteHead", SCM_EOL);
accidentals_[d] = make_item ("AmbitusAccidental", SCM_EOL);
Axis_group_interface::add_element (group_, heads_[d]);
Axis_group_interface::add_element (group_, accidentals_[d]);
}
- while (flip (&d) != DOWN);
ambitus_->set_parent (heads_[DOWN], X_AXIS);
Axis_group_interface::add_element (group_, ambitus_);
* may then oversee a clef that is defined in a staff context if
* we are in a voice context; middleCPosition would then be
* assumed to be 0.
+
+ * Don't use middleCPosition as this may be thwarted by a cue
+ * starting here. middleCOffset is not affected by cue clefs.
*/
- start_c0_ = robust_scm2int (get_property ("middleCPosition"), 0);
+ int clef_pos = robust_scm2int (get_property ("middleCClefPosition"), 0);
+ int offset = robust_scm2int (get_property ("middleCOffset"), 0);
+
+ start_c0_ = clef_pos + offset;
start_key_sig_ = get_property ("keySignature");
is_typeset_ = true;
Grob *accidental_placement
= make_item ("AccidentalPlacement", accidentals_[DOWN]->self_scm ());
- Direction d = DOWN;
- do
+ for (DOWN_and_UP (d))
{
Pitch p = pitch_interval_[d];
heads_[d]->set_property ("cause", causes_[d]->self_scm ());
Separation_item::add_conditional_item (heads_[d],
accidental_placement);
Accidental_placement::add_accidental (accidental_placement,
- accidentals_[d]);
+ accidentals_[d], false, 0);
Pointer_group_interface::add_grob (ambitus_,
ly_symbol2scm ("note-heads"),
heads_[d]);
}
- while (flip (&d) != DOWN);
Axis_group_interface::add_element (group_, accidental_placement);
}
else
{
- Direction d = DOWN;
- do
+ for (DOWN_and_UP (d))
{
accidentals_[d]->suicide ();
heads_[d]->suicide ();
}
- while (flip (&d) != DOWN);
ambitus_->suicide ();
}
/* read */
"keySignature "
- "middleCPosition ",
+ "middleCClefPosition "
+ "middleCOffset ",
/* write */
""