void
Note_column::set_interface (Grob* me)
{
- me->set_grob_property ("note-heads", SCM_EOL);
me->set_interface (ly_symbol2scm ("note-column-interface"));
Axis_group_interface::set_interface (me);
Note_column::stem_l (Grob*me)
{
SCM s = me->get_grob_property ("stem");
- return dynamic_cast<Item*> (unsmob_grob (s));
+ return unsmob_item (s);
}
Slice
}
else if (Note_head::has_interface (h))
{
- Pointer_group_interface::add_element (me, ly_symbol2scm ("note-heads"),h);
+ Pointer_group_interface::add_grob (me, ly_symbol2scm ("note-heads"),h);
}
Axis_group_interface::add_element (me, h);
}
{
return me && me->has_interface (ly_symbol2scm ("note-column-interface"));
}
+
+/*
+ Return the first Accidentals grob that we find in a note-head.
+ */
+Grob*
+Note_column::accidentals (Grob *me)
+{
+ SCM heads = me->get_grob_property ("note-heads");
+ for (;gh_pair_p (heads); heads =gh_cdr (heads))
+ {
+ Grob * h = unsmob_grob (gh_car (heads));
+ Grob *a = h ? unsmob_grob(h->get_grob_property ("accidentals")) : 0;
+ if (a)
+ return a;
+ }
+
+ return 0;
+}