struct Ottava_bracket
{
DECLARE_SCHEME_CALLBACK (print, (SCM));
- DECLARE_GROB_INTERFACE ();
};
/*
SCM
Ottava_bracket::print (SCM smob)
{
- Spanner *me = dynamic_cast<Spanner *> (Grob::unsmob (smob));
+ Spanner *me = unsmob<Spanner> (smob);
Interval span_points;
Grob *common = me->get_bound (LEFT)->common_refpoint (me->get_bound (RIGHT), X_AXIS);
Item *b = me->get_bound (d);
broken[d] = (b->break_status_dir () != CENTER);
- if (Note_column::has_interface (b))
+ if (has_interface<Note_column> (b))
{
extract_grob_set (b, "note-heads", heads);
common = common_refpoint_of_array (heads, common, X_AXIS);
SCM markup = me->get_property ("text");
Stencil text;
if (Text_interface::is_markup (markup))
- text = *Stencil::unsmob (Text_interface::interpret_markup (layout->self_scm (),
+ text = *unsmob<Stencil> (Text_interface::interpret_markup (layout->self_scm (),
properties, markup));
Drul_array<Real> shorten = robust_scm2interval (me->get_property ("shorten-pair"),
Item *b = me->get_bound (d);
Interval ext;
- if (Note_column::has_interface (b))
+ if (has_interface<Note_column> (b))
{
extract_grob_set (b, "note-heads", heads);
for (vsize i = 0; i < heads.size (); i++)