/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
return unsmob_item (s);
}
+Item *
+Note_column::get_flag (Grob *me)
+{
+ Item *stem = get_stem (me);
+ if (stem)
+ {
+ SCM s = stem->get_object ("flag");
+ return unsmob_item (s);
+ }
+ return 0;
+}
+
Slice
Note_column::head_positions_interval (Grob *me)
{
return st ? Stem::first_head (st) : 0;
}
+/*
+ Return extent of the noteheads in the "main column",
+ i.e. excluding any suspended noteheads.
+*/
+Interval
+Note_column::calc_main_heads_extent (Grob *me)
+{
+ if (get_stem (me))
+ return first_head (me)->extent (me, X_AXIS);
+ else
+ {
+ // no stems => no suspended noteheads.
+ extract_grob_set (me, "note-heads", heads);
+ if (heads.size())
+ return heads[0]->extent (me, X_AXIS);
+ else
+ return Interval (0, 0);
+ }
+}
+
/*
Return the first AccidentalPlacement grob that we find in a note-head.
*/
return 0;
}
-Grob *
-Note_column::arpeggio (Grob *me)
-{
- return unsmob_grob (me->get_object ("arpeggio"));
-}
-
/* If a note-column contains a cross-staff stem then
nc->extent (Y_AXIS, refp) will not consider the extent of the stem.
If you want the extent of the stem to be included (and you are safe
"Stem and noteheads combined.",
/* properties */
- "arpeggio "
"force-hshift "
"horizontal-shift "
"ignore-collision "